ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:21.95KB ,
资源ID:10478919      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10478919.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SQL语句大全实例.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SQL语句大全实例.docx

1、SQL语句大全实例SQL语句实例之巴公井开创作时间:二O二一年七月二十九日表把持 例 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

2、 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= 女 ; 例

3、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 建立一个只包括教师号、姓名和年龄的视图 F

4、ACULTY . ( 在视图界说中不能包括 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 STUDENTS.SNO ENROLLS.SNO AND COURSES.CNO=ENROLLS.CNO 例 11 删除视

5、图 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 ,即当删除数据

6、库模式时,则本数据库模式和其下属的基本表、视图、索引等全部被删除.( 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,

7、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 (与),另外还可以使用的运算符有:(年夜于)、(年夜于即是)、(小于即是)、(不即是

8、)、 NOT (非)、 OR (或)等. 谓词 LIKE 只能与字符串连用,经常是 “ 列名 LIKE pattern” 的格式.特殊字符 “_” 和 “%” 作为通配符. 谓词 IN 暗示指定的属性应与后面的集合(括号中的值集或某个查询子句的结果)中的某个值相匹配,实际上是一系列的 OR (或)的缩写.谓词 NOT IN 暗示指定的属性不与后面的集合中的某个值相匹配. 谓词 BETWEEN 是 “ 包括于 之中 ” 的意思.) SELECT SNAME, SEX FROM STUDENTS WHERE AGE 23 AND BPLACE LIKE 湖 或 SELECT SNAME, SEX

9、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) 例

10、 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 STUDENTS.SNO ENROLLS.SNO

11、例 26 找出籍贯为山西或河北,成果为 90 分以上的学生的姓名、籍贯和成果.(当构造多表连接查询命令时,必需遵循两条规则.第一,连接条件数正好比表数少 1 (若有三个表,就有两个连接条件 ) ;第二,若一个表中的主关键字是由多个列组成,则对此主关键字中的每一个列都要有一个连接条件(也有少数例外情况) SELECT SNAME, BPLACE, GRADE FROM STUDENTS, ENROLLS WHERE BPLACE IN ( 山西 , 河北 ) AND GRADE 90 AND STUDENTS.SNO=ENROLLS.SNO 例 28 查出课程成果在 80 分以上的女学生的姓名、

12、课程名和成果.( 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 找出教师的最小年龄.(内部函数: SQ

13、L 标准中只使用 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 = 3 相关子查询 例 37 查询没有选任何课程的学生的学号和姓名.(当一个子查询涉及到一个来

14、自外部查询的列时,称为相关子查询( Correlated Subquery) .相关子查询要用到存在测试谓词 EXISTS 和 NOT EXISTS ,以及 ALL 、 ANY ( SOME )等.) SELECT SNO, SNAME FROM STUDENTS WHERE NOT EXISTS (SELECT * FROM ENROLLS WHERE ENROLLS.SNO=STUDENTS.SNO) 例 38 查询哪些课程只有男生选读. SELECT DISTINCT CNAME FROM COURSES C WHERE 男 ALL (SELECT SEX FROM ENROLLS ,

15、STUDENTS WHERE ENROLLS.SNO=STUDENTS.SNO AND ENROLLS.CNO=C.CNO) 例 39 要求给出一张学生、籍贯列表,该表中的学生的籍贯省份,也是其他一些学生的籍贯省份. SELECT SNAME, BPLACE FROM STUDENTS A WHERE EXISTS (SELECT * FROM STUDENTS B WHERE A.BPLACE=B.BPLACE AND A.SNO B.SNO) 例 40 找出选修了全部课程的学生的姓名. 本查询可以改为:查询这样一些学生,没有一门课程是他不选修的. SELECT SNAME FROM STU

16、DENTS WHERE NOT EXISTS (SELECT * FROM COURSES WHERE NOT EXISTS (SELECT * FROM ENROLLS WHERE ENROLLS.SNO STUDENTS.SNO AND ENROLLS.CNO COURSES.CNO) 关系代数运算 例 41 设有某商场工作人员的两张表:营业员表 SP_SUBORD 和营销经理表 SP_MGR ,其关系数据模式如下: SP_SUBORD (SALPERS_ID, SALPERS_NAME, MANAGER_ID, OFFICE) SP_MGR (SALPERS_ID, SALPERS_NA

17、ME, MANAGER_ID, OFFICE) 其中,属性 SALPERS_ID 为工作人员的编号 , SALPERS_NAME 为工作人员的姓名 , MANAGER_ID 为所在部份经理的编号 , OFFICE 为工作地址. 若查询全部商场工作人员,可以用下面的 SQL 语句: (SELECT * FROM SP_SUBORD) UNION (SELECT * FROM SP_MGR) 或等价地用下面的 SQL 语句: SELECT * FROM (TABLE SP_SUBORD UNION TABLE SP_MGR) ( 2 ) INTERSECT (SELECT * FROM SP_SU

18、BORD) INTERSECT (SELECT * FROM SP_MGR) 或等价地用下面的 SQL 语句: SELECT * FROM (TABLE SP_SUBORD INTERSECT TABLE SP_MGR) 或用带 ALL 的 SQL 语句: (SELECT * FROM SP_SUBORD) INTERSECT ALL (SELECT * FROM SP_MGR) 或 SELECT * FROM (TABLE SP_SUBORD INTERSECT ALL TABLE SP_MGR) ( 3 ) EXCEPT (SELECT * FROM SP_MGR) EXCEPT (SEL

19、ECT * FROM SP_SUBORD) 或等价地用下面的 SQL 语句: SELECT * FROM (TABLE SP_MGR EXCEPT TABLE SP_ SUBORD) 或用带 ALL 的 SQL 语句: (SELECT * FROM SP_MGR) EXCEPT ALL (SELECT * FROM SP_SUBORD) 例 42 查询籍贯为四川、课程成果在 80 分以上的学生信息及其成果.(自然连接) (SELECT * FROM STUDENTS WHERE BPLACE= 四川 ) NATURAL JOIN (SELECT * FROM ENROLLS WHERE GRA

20、DE =80) 列出全部教师的姓名及其任课的课程号、班级. (外连接与外部并外连接允许在结果表中保管非匹配元组,空缺部份填以 NULL .外连接的作用是在做连接把持时防止丧失信息. 外连接有 3 类: ( 1 )左外连接( Left Outer Join ).连接运算谓词为 LEFT OUTER JOIN ,其结果表中保管左关系的所有元组. ( 2 )右外连接( Right Outer Join ).连接运算谓词为 RIGHT OUTER JOIN ,其结果表中保管右关系的所有元组. ( 3 )全外连接( Full Outer Join ).连接运算谓词为 FULL OUTER JOIN ,其

21、结果表中保管左右两关系的所有元组.) SELECT TNAME, CNO, CLASS FROM TEACHERS LEFT OUTER JOIN TEACHING USING (TNO) SQL 的数据把持 例 44 把教师李映雪的记录加入到教师表 TEACHERS 中.(拔出) INSERT INTO TEACHERS VALUES(1476 , 李映雪 , 44 , 副教授 ) 例 45 成果优秀的学生将留下当教师. INSERT INTO TEACHERS (TNO , TNAME) SELECT DISTINCT SNO , SNAME FROM STUDENTS , ENROLLS

22、 WHERE STUDENTS.SNO ENROLLS.SNO AND GRADE 90 例 47 把所有学生的年龄增加一岁.(修改) UPDATE STUDENTS SET AGE AGE+1 例 48 学生张春明在数据库课考试中作弊,该课成果应作零分计. UPDATE ENROLLS SET GRADE 0 WHERE CNO C1 AND 张春明 (SELECT SNAME FROM STUDENTS WHERE STUDENTS.SNO=ENROLLS.SNO) 例 49 从教师表中删除年龄已到 60 岁的退休教师的数据.(删除) DELETE FROM TEACHERS WHERE AGE 60 SQL 的数据控制 例 50 授予 LILI 有对表 STUDENTS 的查询权.(表视图特权的授予 一个 SQL 特权允许一个被授权者在给定的数据库对象上进行特定的把持.授权把持的数据

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1