关键词不能为空

当前您在: 主页 > 英语 >

SQL语句大全实例

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-08 16:36
tags:

-

2021年2月8日发(作者:around是什么意思)


SQL


语句实例





表操作









1


对于表的教学管理数据库中的表



STUDENTS


,可以定义如下:





CREATE


TABLE


STUDENTS




(SNO


NUMERIC (6, 0) NOT NULL




SNAME


CHAR (8) NOT NULL




AGE


NUMERIC(3,0)




SEX


CHAR(2)




BPLACE


CHAR(20)




PRIMARY KEY(SNO))





2


对于表的教学管理数据库中的表



ENROLLS


,可以定义如下:





CREATE


TABLE


ENROLLS




(SNO


NUMERIC(6,0)


NOT NULL




CNO


CHAR(4)


NOT NULL




GRADE


INT




PRIMARY KEY(SNO,CNO)




FOREIGN KEY(SNO) REFERENCES STUDENTS(SNO)




FOREIGN KEY(CNO) REFERENCES COURSES(CNO)




CHECK ((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100)))





3


根据表的



STUDENTS


表,建立一个只包含学号、姓名、年龄的女学生表。





CREATE TABLE GIRL




AS SELECT SNO, SNAME, AGE




FROM STUDENTS




WHERE SEX='




';









4


删除教师表



TEACHER






DROP


TABLE


TEACHER





5


在教师表中增加住址列。





ALTER TABLE TEACHERS




ADD (ADDR CHAR(50))





6




STUDENTS


表中的



BPLACE


列删除,并且把引用



BPLACE


列的所有视图和


约束也一起删除。





ALTER TABLE STUDENTS




DROP BPLACE CASCADE





7


补充定义



ENROLLS


表的主关键字。





ALTER TABLE ENROLLS




ADD PRIMARY KEY (SNO,CNO)







视图操作(虚表)








9


建立一个只包括教师号、


姓名和 年龄的视图



FACULTY




(


在视图定义中不能包含



ORDER BY


子句



)




CREATE VIEW FACULTY




AS SELECT TNO, TNAME, AGE




FROM TEACHERS





10


从学生表、


课程表和选课表中产生一个视图


GRADE_TABLE




它包括学生姓名、


课程名和成绩。





CREATE VIEW GRADE_TABLE




AS SELECT


SNAME,CNAME,GRADE




FROM


STUDENTS,COURSES,ENROLLS




WHERE





AND




=





11


删除视图



GRADE_TABLE




DROP VIEW GRADE_TABLE RESTRICT





索引操作








12


在学生表中按学号建立索引。





CREATE


UNIQUE


INDEX


ST




ON STUDENTS (SNO,ASC)





13


删除按学号所建立的索引。





DROP INDEX ST





数据库模式操作








14


创建一个简易教学数据库的数据库模式




TEACHING_DB


,属主为



ZHANG






CREATE SCHEMA TEACHING_DB


AUTHRIZATION


ZHANG





15


删除简易教学数据库模式



TEACHING_DB


。((



1


)选用



CASCADE


,即当


删除数据库模 式时,


则本数据库模式和其下属的基本表、


视图、


索引等全部被删除。




2



选用



RESTRICT


,即本数据库模式下属的基本表、视图、索 引等事先已清除,才能删除


本数据库模式,否则拒绝删除。)





DROP SCHEMA TEACHING_DB CASCADE



单表操作








16


找出



3


个学分的课程号和课程名。





SELECT CNO, CNAME




FROM




COURSES




WHERE




CREDIT




3





17


查询年龄大于



22


岁的学生情况。





SELECT


*




FROM


STUDENTS




WHERE


AGE




22





18


找出籍贯为河北的男生的姓名和年龄。





SELECT SNAME, AGE




FROM




STUDENTS




WHERE




BPLACE




'


河北



'


AND


SEX




'




'





19


找出年龄在



20




23


岁之间的学生的学号、姓名和年龄,并按年龄升序排序。



(ASC


(升序)或



DESC


(降序)声明排序的方式,缺省为升序。



)




SELECT SNO, SNAME, AGE




FROM


STUDENTS




WHERE


AGE BETWEEN 20 AND 23




ORDER


BY


AGE





20


找出年龄小于



23


岁、籍贯是湖南或湖北的学生的姓名和性别。(条件比较运算符


=、<



和逻辑运算符



AND


(与),此外还可以使用的运算符有:>(大于)、> =(大


于等于)、<=(小于等于)、<>(不等于)、



NOT


(非)、



OR


(或)等。




谓词



LIKE


只能与字符串联用,常常是




<列名>




LIKE


pattern”


的格式。特殊字符



“_”




“%



作为通配符。




谓词



IN


表示指定的属性应与后面的集合(括号中的值集或某个查询子句的结果)中的某


个值相匹 配,


实际上是一系列的



OR


(或)


的缩写。


谓词



NOT IN


表示指定的属性不与后


面的集合中的某个值相匹配。




谓词



BETWEEN





包含于




之中




的意思。)





SELECT SNAME, SEX




FROM


STUDENTS




WHERE


AGE




23


AND


BPLACE


LIKE'


湖%



'








SELECT SNAME, SEX




FROM


STUDENTS




WHERE


AGE




23


AND


BPLACE


IN




'


湖南



'




'


湖北



'







22


找出学生表中籍贯是空值的学生的姓名和性别。(在



SQL


中不能使用条件:<列


名>=



NULL


。在



SQL


中只有一个特殊的查询条件允许查询



NULL


值:)





SELECT SNAME, SEX




FROM


STUDENTS




WHERE


BPLACE IS NULL







多表操作








23


找出成绩为



95


分的学生的姓名。(子查询)





SELECT SNAME




FROM




STUDENTS




WHERE




SNO






(SELECT SNO




FROM


ENROLLS




WHERE


GRADE




95)





24


找出成绩在



90


分以上的学生的姓名。





SELECT


SNAME




FROM


STUDENTS




WHERE


SNO IN




(SELECT SNO




FROM ENROLLS




WHERE GRADE




90)








SELECT


SNAME




FROM


STUDENTS




WHERE


SNO




ANY




(SELECT SNO




FROM ENROLLS




WHERE GRADE




90)





25


查询全部学生的学生名和所学课程号及成绩。(连接查询)





SELECT


SNAME, CNO, GRADE




FROM


STUDENTS, ENROLLS




WHERE









26


找出籍贯为山西或河北,成绩为



90


分以上的学生的姓名、籍贯和成绩。(当构造


多表连接查询命令 时,必须遵循两条规则。第一,连接条件数正好比表数少



1


(若有三个


表,就有两个连接条件



)


;第二,若一个表中的主关键字是由多个列组成,则对此主 关键


字中的每一个列都要有一个连接条件(也有少数例外情况))





SELECT


SNAME, BPLACE, GRADE




FROM


STUDENTS, ENROLLS




WHERE


BPLACE IN (?


山西



?




?


河北



?)



AND


GRADE


>=



90


AND




=





28


查出课程成绩在



80


分以上的女学生的姓名、课程名和成绩。(



FROM


子句中的


子查询)





SELECT


SNAME,CNAME, GRADE




FROM


(SELECT SNAME, CNAME , GRADE




FROM


STUDENTS, ENROLLS,COURSES




WHERE


SEX




'




')




AS TEMP (SNAME, CNAME,GRADE)




WHERE


GRADE




80











表达式与函数的使用








29


查询各课程的学时数。


(算术 表达式由算术运算符+、-、



*


、/与列名或数值常


量所组成。)





SELECT


CNAME,COURSE_TIME




CREDIT*16




FROM


COURSES





30


找出教师的最小年龄。



内部函数:



SQL


标准中只使用



COUNT




SUM




AVG




MAX




MIN


函数,称之为聚集函数(



Set Function


)。



COUNT


函数的结果是该列


统计值的总数目,



SUM


函数求该列统计值之和,



AVG


函数求该列统计值之平均值,



MAX


函数求该列最大值,



MIN


函数求该列最小值。)





SELECT


MIN(AGE)




FROM


TEACHERS





31


统计年龄小于等于



22


岁的学生人数。(统计)





SELECT


COUNT(*)




FROM


STUDENTS




WHERE


AGE <




22





32


找出学生的平均成绩和所学课程门数。





SELECT


SNO, AVG(GRADE), COURSES




COUNT(*)




FROM


ENROLLS




GROUP


BY SNO







34


找出年龄超过平均年龄的学生姓名。




SELECT SNAME



FROM STUDENTS



WHERE AGE






(SELECT


AVG(AGE)




FROM


STUDENTS)









35


找出各课程的平均成绩,按课程号分组,且只选择学生超过



3


人的课程的成绩。




GROUP BY




HAVING




GROUP BY


子句把一个表按某一指定列(或一些列)上 的值相等的原则分组,然后


再对每组数据进行规定的操作。





GROUP BY


子句总是跟在



WHERE


子句后面,当



WHERE


子句缺省时,它跟在



FROM


子句后面。





HAVING


子句常用于在计算出聚集之后对行的查询进行控制。)





SELECT CNO, AVG(GRADE), STUDENTS




COUNT(*)




FROM ENROLLS




GROUP BY CNO




HAVING COUNT(*) >= 3





相关子查询








37


查询没有选任何课程的学生的学号和姓名。(当一个子 查询涉及到一个来自外部查


询的列时,称为相关子查询(



Correlated Subquery)


。相关子查询要用到存在测试谓词



EXISTS




NOT EXISTS


,以及



ALL




ANY




SOME


)等。)





SELECT SNO, SNAME




FROM


STUDENTS




WHERE


NOT EXISTS




(SELECT *




FROM ENROLLS




WHERE =)





38


查询哪些课程只有男生选读。





SELECT DISTINCT CNAME




FROM


COURSES C




WHERE '




'




ALL




(SELECT SEX




FROM


ENROLLS




STUDENTS




WHERE = AND




=)





39


要求给出一张学生、籍贯列表,该表中的学生的籍贯省 份,也是其他一些学生的籍


贯省份。





SELECT


SNAME, BPLACE




FROM


STUDENTS A




WHERE


EXISTS




(SELECT *




FROM STUDENTS B




WHERE = AND




< > )











40


找出选修了全部课程的学生的姓名。





本查询可以改为:查询这样一些学生,没有一 门课程是他不选修的。





SELECT


SNAME




FROM


STUDENTS




WHERE


NOT EXISTS


-


-


-


-


-


-


-


-



本文更新与2021-02-08 16:36,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/615644.html

SQL语句大全实例的相关文章