第4章 结构化查询语言—SQL_第1页
第4章 结构化查询语言—SQL_第2页
第4章 结构化查询语言—SQL_第3页
第4章 结构化查询语言—SQL_第4页
第4章 结构化查询语言—SQL_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第 4 4 章章 结构化查询语言结构化查询语言SQLSQLSQL 语言之所以能够为用户和业界所接受,并成为国际标准,是因为它是一个综合的、功能极强同时又简捷易学的语言。SQL 语言集数据查询、数据操纵、数据定义和数据控制功能于一体,主要特点包括:1.综合统一2.高度非过程化3.面向集合的操作方式4.以同一种语法结构提供两种使用方式SQL 语言既是自含式语言,又是嵌入式语言。自含和嵌入的含义。4.14.1 数据库模式的建立和删除数据库模式的建立和删除.1 建立数据库模式建立数据库模式建立一个新数据库create database 数据库名.2 删除数据库模式删除

2、数据库模式撤消一个数据库drop database 数据库名4.24.2 表结构的建立、修改和删除表结构的建立、修改和删除4.14.1 建立表结构建立表结构SQL 语言使用 CREATE TABLE 语句定义基本表,其一般格式如下:CREATE TABLE (列级完整性约束,列级完整性约束,);如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。注意:定义表时每一个定义语句之间用逗号分隔,最后一条语句不用逗号。每个 SQL 语句以分号结束。例:CREATE TABLE C(cno char(4) not null,cname char(10) n

3、ot null,PRIMARY KEY(CNO) );CREATE TABLE SC(SNO CHAR(4) NOT NULL,CNO CHAR(4) NOT NULL,GRADE SMALLINT,PRIMARY KEY(SNO,CNO) ,FOREIGN KEY(SNO) REFERENCES S(SNO) ,FOREIGN KEY(CNO) REFERENCES C(CNO) ) ;.2 修改表结构修改表结构修改基本表SQL 语言用 ALTER TABLE 语句修改基本表,其一般格式为:ALTER TABLE ADD 完整性约束DROP MODIFY ;ADD 子句用于增

4、加新列和新的完整性约束条件,DROP 子句用于删除制定的完整性约束条件,MODIFY 子句用于修改原有的列定义,包括修改列名和数据类型。简单介绍教材上的例子。.3 删除表结构删除表结构当某个基本表不再需要时,可以用 DROP TABLE 删除,其格式为:DROP TABLE 基本表一旦删除,表中的数据、此表上建立的索引和视图都将自动被删除掉。因此执行删除基本表的操作一定要格外小心。4.34.3 表内容的插入、修改和删除表内容的插入、修改和删除.1 插入记录插入记录命令insert into 表名 (列名,列名values (值 ,值)插入一条指定好值的元组ins

5、ert into 表名 (列名,列名(子查询)插入子查询结果中的若干条元组示例 insert into PROF values ( P123, “王明”, 35, D08, 498 ) insert into PROF (PNO, PNAME, DNO)values ( P123, “王明”, D08 ).2 修改操作修改操作命令update 表名 set 列名 = 表达式 | 子查询 列名 = ,表达式 | 子查询where 条件表达式指定对哪些列进行更新,以及更新后的值是什么示例 老师工资上调 5%update PROFset SAL = SAL * 1.054.3.34.

6、3.3 删除记录删除记录命令delete from 表名 where 条件表达式从表中删除符合条件的元组,如果没有 where 语句,则删除所有元组示例 清除所有选课记录delete from SC 删除王明老师所有的任课记录delete from PCwhere PNO in (select PNO from PROF where PNAME = “王明”) 4.44.4 视图的建立、修改和删除视图的建立、修改和删除.1 建立视图建立视图定义视图create view view_name(列名,列名 ) as (查询表达式)with check option 视图的属性名缺省

7、为子查询结果中的属性名,也可以显式指明 with check option 指明当对视图进行 insert,update 时,要检查是否满足视图定义中的条件.2 修改视图内容修改视图内容UPDATE .SET=,.FROM,.WHERE.2 修改视图定义修改视图定义 ALTER VIEW (,.)AS .4 删除视图删除视图撤消视图drop view view_name4.54.5查询查询.1 SELECTSELECT 语句格式语句格式 SELECT ALL|DISTINCT , FROM , WHERE GROUP BY HAV

8、ING ORDER BY ASC|DESC;整个 SELECT 语句的含义是,根据 WHERE 子句的条件表达式,从FROM 子句指定的基本表或视图中找出满足条件的元组,再按 SELECT子句中的目标列表达式,选出元组中的属性值形成结果表。如果有GROUP 子句,则将结果按的值进行分组,该属性列值相等的元组为一组。通常会在每组中作用集函数。如果 GROUP 子句带HAVING 短语,则只有满足指定条件的组才予输出。如果有 ORDER BY子句,则结果表还要按的值的升序或降序排序。.2 SELECTSELECT 选项选项目标列形式 可以为列名,* ,算术表达式,聚集函数 “* *”

9、:表示“所有的属性”给出所有老师的信息SELECTSELECT *FROMFROMPROF 带, , 的算术表达式给出所有老师的姓名及税后工资额SELECTSELECT PNAME,SAL 0.95FROMFROM PROF语法约束 缺省为保留重复元组,也可用关键字 ALLALL 显式指明。若要去掉重复元组,可用关键字 DISTINCTDISTINCT 或 UNIQUEUNIQUE 指明示例 找出所有选修课程的学生 SELECTSELECT DISTINCTDISTINCT SNO FROMFROM SC.3FROMFROM 选项选项说明 FROM 子句列出查询的对象表 当目标

10、列取自多个表时,在不混淆的情况下可以不用显式指明来自哪个关系示例 例:找出工资低于 500 的职工的姓名、工资、系别 SELECTPNAME , SAL , DNAME FROM PROF , DEPT WHERE SAL 500 AND PROF.DNO = DEPT.DNO 例:列出教授“哲学”课程的老师的教工号及姓名 SELECT PROF. PNO , PNAME FROM PROF , PC , COURSE WHERE PROF.PNO = PC.PNOAND PC.CNO = COURSE.CNOAND COURSE.CNAME = “哲学”.4 选项选项语法成分

11、比较运算符、 、=、 逻辑运算符AND,OR,NOTBETWEEN 条件判断表达式的值是否在某范围内示例 列出工资在 500800 之间的老师姓名 SELECT PNAME FROM PROF WHERE SAL BETWEEN 500 AND 800.5 BROUPBROUP BYBY 选项选项命令ORDER BY 列名 ASC | DESC示例 按系名升序列出老师姓名,所在系名,同一系中老师按姓名降序排列 SELECT DNAME,PNAME FROM PROF,DEPT WHERE PROF.DNO = DEPT.DNO ORDER BY DNAME ASC,PNAME

12、DESC.6 HAVINGHAVING 选项选项分组命令GROUP BY 列名 HAVING 条件表达式 GROUP BY 将表中的元组按指定列上值相等的原则分组,然后在每一分组上使用聚集函数,得到单一值HAVING 则对分组进行选择,只将聚集函数作用到满足条件的分组上.7 ORDERORDER BYBY 选项选项ORDER BY ASC|DESC;.8 INTOINTO 选项选项SELECT 语句中使用 INTO 选项可以将查询结果写进新表,新表结构与 SELECT 语句选择列表中的字段相同。例如:SELECT FIELDS AS KEYSTRING, COUNT(FIELDS) AS HITCOUNTINTO #TEMP/*INTO*/FROM ENGLISHBOOKS.KEYS WHERE( KEYS LIKE %鲁迅% )ANDFRM LIKE 24_*AAND (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论