第三章 数据库的标准语言SQL
第三章 关系数据库标准语言SQL语言
第三章关系数据库标准语言SQL语言一、选择题1. 在SQL语言中授权的操作是通过________________语句实现的。
C A.CREATEB.REVOKEC.GRANTD.INSERT2. 假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。
要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系____。
DA.S B.SC,C C.S,SC D.S,C,SC3. 在 MS SQL Server中建立了表 Student(no,name,sex,birthday),no为表的主码,其他属性的默认值为 null。
表中信息如图所示:能够正确执行的插入操作是________。
A No Name Sex Birthday 101 张丽丽女 1967/05/07 102 李芳女 1970/04/14103 王朋男 1982/10/27 A.INSERT INTO student (no,sex) VALUES(102,′男′) B.INSERT INTO student (name,sex) VALUES(′王中′,′男′)D.INSERT INTO student VALUES(106,′王中′,′男′,′1984/03/08′) C.INSERT INTO stude nt VALUES(102,′男′,′王中′,′1984/03/08′) 4. SQL语言中,删除一个表的命令是________。
B A. DELETE B. DROP C. CLEAR D. REMORE 5. 为数据表创建索引的目的是________ AA.提高查询的检索性能B.创建唯一索引C.创建主键D.归类6. 在SQL语言中,条件“RETWEEN 20 AND 30”表示年龄在20到30之间,且________A. 包括20岁和30岁B. 不包括20岁和30岁C. 包括20岁不包括30岁D. 不包括20岁包括30岁7. 为了使索引键的值在基本表中唯一,在建立索引语句中应使用保留字________ AA. UNIQUEB. COUNTC. DISDINCTD. UNION 8. 下面关于SQL语言的说法中,哪一种说法是错误的? ________ AA. 一个SQL数据库就是一个基本表B. SQL语言支持数据库的三级模式结构C. 一个基本表可以跨多个存储文件存放,一个存储文件可以存放一个或多个基本表D. SQL的一个表可以是一个基本表,也可以是一个视图二、简答题1. 什么是基本表?什么是视图?两者的区别和联系是什么?【解答】基本表是本身独立存在的表,在SQL中一个关系就对应一个表。
sql 课件 第3章 关系数据库标准语言SQL
山东财政学院计算机信息工程学院
3、默认文件组
在每个数据库中,同一时间只能有一个文件组是默认 文件组(Default Filegroup)。 当进行数据库操作时,如果不指定文件组,则系统自 动选择默认文件组。 可使用Transact-SQL语句中的alter database语句指 定数据库的默认文件组。 在不特别指定的情况下,系统将主要文件组认定为默 认文件组。
山东财政学院计算机信息工程学院
2、扩展盘区
由8个连续页面组成的数据结构称为一个盘区。 是SQL Server分配给表和索引的基本单位。 扩展盘区可分为统一扩展盘区和混合扩展盘区。 统一扩展盘区由一个数据库对象所有。 混合扩展盘区可以为多个数据库所有,即其中最多 可以放8种数据库对象。
山东财政学院计算机信息工程学院
山东财政学院计算机信息工程学院
例:创建具有两个文件组的数据库bank2
CREATE DATABASE BANK2 ON PRIMARY (NAME=BANK2_1_DAT, FILENAME='d:\bank\bank2_f1dat.mdf', SIZE=20MB, MAXSIZE=50MB, FILEGROWTH=5MB), (NAME=BANK2_2_DAT, FILENAME='d:\bank\bank2_f2dat.ndf', SIZE=10MB, MAXSIZE=40MB, FILEGROWTH=5MB),
山东财政学院计算机信息工程学院
3.2 数据定义
3.2.1 数据库的定义 3.2.2 表的定义 3.2.3 索引的定义
山东财政学院计算机信息工程学院
数据定义
SQL Server数据库由包含数据的表集合和其他对象( 如视图、索引、存储过程、触发器、用户、角色等)组 成,支持三级模式结构。其中用户模式对应于视图,逻 辑模式对应于基本表,物理模式对应于存储文件、索引 等。
数据库系统概论(第四版)_王珊_萨师煊_chp3-1
课程表:Course(Cno,Cname,Cpno,Ccredit)
学生选课表:SC(Sno,Cno,Grade)
Student表
学 号 Sno
姓 名 Sname
性 别 Ssex
年 龄 Sage
所在系 Sdept
200215121 200215122 200215123 200515125
李勇 刘晨 王敏 张立
查询教师的姓名、职称、应发工资
查询教师的姓名、职称、应发工资 π姓名,职称,应发工资(教师⋈工资)
查询学分大于3的所有课程名称、及其对应的授课 老师姓名和老师所在的系名
查询学分大于3的所有课程名称、及其对应的授课 老师姓名和老师所在的系名 π课程名称,姓名,系名称(σ学分>3(系部⋈教师⋈ 授课⋈ 课程))
3.4.3 嵌套查询
3.4.4 集合查询
3.4.5 Select语句的一般形式
3.4.1 单表查询
查询仅涉及一个表:
一、 选择表中的若干列 二、 选择表中的若干元组 三、 ORDER BY子句 四、 聚集函数 五、 GROUP BY子句
一、 选择表中的若干列
查询指定列
男 女 女 男
20 19 18 19
CS CS MA IS
Course表
课程号 Cno
1 2 3 4 5 6 7
课程名 Cname
数据库 数学 信息系统 操作系统 数据结构 数据处理 PASCAL语言
先行课 Cpno
5 1 6 7 6
学分 Ccredit
4 2 4 3 4 2 4
SC表
学号 Sno
语言简洁,易学易用
SQL语言的动词非常少,主要包括:
第3章:关系数据库标准语言SQL
例6:建立一个“课程”表Course. :建立一个“课程” Create table Course (Cno Cpno Char(4) Primary Key, , Char (4) , Cname Char (40) , Ccredit Smallint, , Foreign Key (Cpno) References Course(Cno) );
不论基本表中原来是否已有数据, 不论基本表中原来是否已有数据 , 新增加 的列一律为空值。 的列一律为空值。
例9:将年龄的数据类型改为整型。
ALTER TABLE Student Alter Column Sage Int; ;
修改原有的列定义有可能会破坏已有数据。 修改原有的列定义有可能会破坏已有数据。
group by:此短语将查询结果按某一列或某几 :
列的值进行分组。Having子句用于与group 列的值进行分组。Having子句用于与group by 子句用于与 子句配合使用,用于说明分组条件。 子句配合使用,用于说明分组条件。
查询分类
单表查询 连接查询 嵌套查询 集合查询
CREATE TABLE Student (Sno Ssex Sage Sdept
CHAR(5) NOT NULL UNIQUE,
Sname CHAR(20) UNIQUE, ,
CHAR(1) , INT, , CHAR(15)); ;
修改
Alter table <表名 表名> 表名
Add <新列名> <新列类型> (列宽度)[完整性约束] Drop Column <列名>|<完整性约束名> Alter Column <列名> <列类型> (列宽度) P87例8,例9,例10 , ,
第3章 关系数据库标准语言SQL_第4版(1-3)
学分 Ccredit 4 2 4 3 4 2 4
SC表
学号 Sno
200215121 200215121 200215121 200215122 200215122
课程号 Cno
1 2 3 2 3
成绩 Grade
92 85 88 90 80
§3.3 数据定义
SQL的数据定义功能: 模式定义、表定义、视图 和索引的定义
被参照建立一个“学生选课”表SC CREATE TABLE SC Cno CHAR(4), Grade SMALLINT, 列级完整性约束条件, Sno是外码,被参照表是 Student
(Sno CHAR(9) REFERENCES Student(Sno) , 主码由两个属性构 成,必须作为表级 完整性进行定义
用户数据库投入运行后,可根据需要随时逐步修 改模式,不影响数据的运行。 数据操作符统一
2.高度非过程化
非关系数据模型的数据操纵语言“面向过程”,
必须制定存取路径
SQL只要提出“做什么”,无须了解存取路径。 存取路径的选择以及SQL的操作过程由系统自动 完成。
3.面向集合的操作方式
SQL
数据流(Data) 元数据流(Meta Data) 对应于视图和部 分基本表
视图1
视图2
外模式
对应于基本表
基本表1 基本表2 基本表3 基本表4
数据词典
(元数据)
模式
对应于存储 文件
存储文件1 存储文件2 内模式
SQL的基本概念(续)
基本表(BASE TABLE):
是独立存在的表, 一个关系对应一个基本表,
嵌入式语言:嵌入高级语言如C,COBOL, FORTRAN,PB等
数据库的标准语言SQL
学时数:12学时课程类型:理论课程章节:第三章 数据库的标准语言SQL§3.1SQL查询§3.2 SQL数据定义§3.3 SQL数据操作§3.4 SQL数据控制§3.5数据字典教学目的:了解SQL的背景知识掌握SQL查询语句掌握SQL数据定义语句CREATE、DROP、ALTER掌握数据操纵语句INSERT、DELETE、UPDATE掌握数据控制语句GRANT、REVOKE教学要求:牢记有关概念,掌握SQL查询教学重点:1. SQL数据定义:基本表、视图、别名,建立索引2. SQL数据操纵:插入、更新、删除3. SQL数据查询教学难点:SQL查询:简单查询、联接查询、嵌套查询、库函数查询、集合运算教学手段:讲解、分组讨论、习题主要教学内容:1.SQL查询:简单查询、联接查询、嵌套查询、库函数查询、集合运算2.SQL数据定义:基本表、视图、别名,建立索引3.SQL数据操作:插入、更新、删除4.SQL数据控制5.数据字典第三章 数据库的标准语言SQLSQL是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询。
SQL是一个通用的、功能极强的关系数据库语言。
SQL的特点SQL语言之所以能够为用户和业界所接受,并成为国际标准,是因为它是一个综合的、功能极强同时又简捷易学的语言。
SQL语言集数据查询(Data Query)、数据操纵(Data Manipulation)、数据定义(Data Definition)和数据控制(Data Control)功能于一体,主要特点包括:1.综合统一数据库系统的主要功能是通过数据库支持的数据语言来实现的。
非关系模型(层次模型、网状模型)的数据语言一般都分为模式数据定义语言(Schema Data Definition Language,简称模式DDL)、外模式数据定义语言(Subschema Data Definition Language,简称外模式DDL或子模式DDL)、与数据存储有关的描述语言(Data Storage Description Language,简称DSDL)及数据操纵语言(Data Manipulation Language,简称DML),分别用于定义模式、外模式、内模式和进行数据的存取与处置。
数据库第三章习题及答案
第3章关系数据库标准语言SQL一、选择题1、SQL语言是的语言,易学习。
A.过程化 B.非过程化 C.格式化 D.导航式答案:B2、SQL语言是语言。
A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库答案:C3、SQL语言具有的功能。
A.关系规范化、数据操纵、数据控制 B.数据定义、数据操纵、数据控制C.数据定义、关系规范化、数据控制 D.数据定义、关系规范化、数据操纵答案:B4、SQL语言具有两种使用方式,分别称为交互式SQL和。
A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL 答案:C5、假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。
要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系。
A.S B.SC,C C.S,SC D.S,C,SC 答案:D6、若用如下的SQL语句创建一个student表:CREATE TABLE student(NO C(4) NOT NULL,NAME C(8) NOT NULL,SEX C(2),AGE N(2))可以插入到student表中的是。
A.(‘1031’,‘曾华’,男,23) B.(‘1031’,‘曾华’,NULL,NULL)C.(NULL,‘曾华’,‘男’,‘23’) D.(‘1031’,NULL,‘男’,23) 答案:B7、当两个子查询的结果时,可以执行并,交,差操作.A.结构完全不一致 B.结构完全一致C.结构部分一致D.主键一致答案:B第8到第10题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:S(S#,SN,SEX,AGE,DEPT)C(C#,CN)SC(S#,C#,GRADE)其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。
《数据库原理及应用》教学课件 第三章SQL基础
第三章 SQL基础
本章导读
结构化查询语言(Structured Query Language,SQL) 是关系数据库的标准语言,是集数据查询、数据操纵、数 据定义与数据控制于一体的综合性语言。在关系数据库 中,可以通过它完成数据库内的所有操作。本章首先介绍 SQL的发展及特点,然后通过实例介绍数据库和数据表的 基本操作。
④ MODIFY FILE:指定要修改的文 件。
⑤ ADD FILEGROUP:向数据库中 添加文件组。
⑥ REMOVE FILEGROUP:从数据 库中删除文件组。若文件组不为空,则 无法删除。
⑦ “[ , … N]”表示在前一语句后可 接N个同格式语句。
⑧ “|”表示用其隔开的语句在一次 命令中不可同时选用。
20
3.2 数据库基本操作
3.2.4 修改数据库
【例3-2】 将数据库 test 的名称改为 test1。 ALTER DATABASE test MODIFY NAME=test1
【例3-3】 将数据库SRS的日志文件最大容量改为100 MB。
ALTER DATABASE SRS MODIFY FILE (NAME=SRS_Data, MAXSIZE=100MB)
系列 1, 锐系普列PP2T, 锐, 2普.8 PPT, 2.8
日志文件由一系列日志记录组成,它 记录了数据库的更新情况和用户对数据库 的修改操作等。
当数据库发生损坏时,可以通过日志 文件分析出错原因;当数据丢失时,也可 以使用日志文件恢复数据库。
16
3.2 数据库基本操作
3.2.3 创建数据库
02 用SSMS创建数据库
在 SSMS 中可按如下步骤创建数据库。
关系数据库标准查询语言SQL
SELECT Sname, ‘Year of Birth:’, 2008-Sage ,
ISLOWER(Sdept)
FROM Student ; 结果为:
Sname ‘ Yearof Birth:’ 2008-Sage ISLOWER(Sdept)
李勇 Yearof Birth: 1986
第三章关系数据库标准查询语言sql第三章第三章关系数据库标准语言关系数据库标准语言sqlsql结构化查询语言sqlstructuredquerylanguage是一种介于关系代数与关系演算之间的语言它具有查询操纵定义和控制功能是一种通用的功能极强的标准的关系数据库语言
第三章 关系数据库标 准查询语言SQL
例4:删除关于学号必须取唯一值的约束。 ALTER TABLE Student DROP UNIQUE(Sno);
3.删除基本表
基本格式: DROP TABLE〈表名〉
例5. 删除student表 DROP TABLE Student ;
3.2.2.建立与删除索引
1. 建立索引 基本格式: CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>[,<列名>[〈次序>]]…..); 次序:ASC,DESC 例 6: 为Student, Course, SC 3个表 建立索引,Student
2.选择表中的若干元组
1).消除重复的行 例6.查询所有选修过课的学生学号。
SELECT Sno
FROM SC ;
Sno
Cno Grade
数据库 第三章 关系数据库标准语言SQL习题
第三章关系数据库标准语言SQL一、单项选择题1.SQL语言是 D 。
A.过程化语言B.宿主语言C.汇编语言D.非过程化语言2.在视图上不能完成的操作是 C 。
A.更新视图B.查询C.在视图上定义基本表D.在视图上定义新的视图3.SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中CREA TE、DROP、ALTER语句实现 C 功能。
A.数据查询B.数据操纵C.数据定义D.数据控制4.在SQL语言中,删除一个视图的命令是 B 。
A.DELETE B.DROP C.CLEAR D.REMOVE5.在SQL语言中,视图对应于数据库的__A____。
A.外模式B.模式C.内模式D.存储模式6.在下列SQL语句中,___D___不是数据定义语句。
A.CREA TE TABLE B.DROP VIEWC.CREA TE VIEW D.GRANT7.若要除去数据库中已经存在的表S,可用 C 。
A.DELETE TABLE S B.DELETE SC.DROP TABLE S D.DROP S8.若要在基本表S中增加一列CN,可用 C 。
A.ADD TABLE S(CN CHAR(8)) B.ADD TABLE S ALTER(CN CHAR(8)) C.ALTER TABLE S ADD (CN CHAR(8)) D.ALTER TABLE S (ADD CN CHAR(8)) 9.若要删除关系模式S(Sno, Sname, Ssex, Sage)的Sage属性,可用 B 。
A.DELETE Sage FROM S B.ALTER TABLE S DROP SageC.UPDA TE S Sage D.ALTER TABLE S …Sage‟10.设有学生关系S(Sno, Sname, Sage),课程关系C(Cno, Cname),选修关系SC(Sno, Cno, Grade),其中Sno是学号,Sname是学生姓名,Sage是学生年龄,Cno是课程号,Cname 是课程名,Grade是成绩。
数据库原理 第三章:关系数据库标准语言SQL
例5:查询选修全部课程的学生姓名。
RANGE SC X Course CX GET W (Student.SN) : CXSCX (SCX.SNO=Student.SNO∧O=O)
1、除运算÷(Division,亦称商)
用途:除法运算同时从行和列的角度进行运算,在表达某 些查询时有用,适合于包含“全部”之类的短语的查询, 例如“查询已注册选修了所有课程的学生名字”。
定义:给定关系 R(X,Y),S(Y,Z),X,Y,Z为属 性列,关系R和关系S中的Y出自相同域集,则: R÷S={tr[X]|tr∈R∧Πy(S)Yx} 其中,Yx为x在R中的象集,x= tr[X]。
② 逻辑运算符:∧(与),∨(或),┐(非)
③ 表示执行次序的括号:()
其中,比较运算符的优先级高于逻辑运算符,可以使用()改
变它们的优先级。
例1:查询所有男学生的姓名。
GET W (Student.Sname) : Student. Ssex = „男’
例2:查询信息系(IS)中年龄小于20岁的学生的学号和年龄
例3:查询S3同学所选课程名
RANGE SC X Course CX GET W (ame):X CX (o=o∧X.Sno=‟S3‟)
此查询涉及两个关系,对两个关系(Course和SC)作用存在 量词,所以用了两个元组变量。
例4:查询至少选修一门其先行课为6号课程的学生名字
操作条件中使用量词时必须用元组变量 例1:查询S3同学所选课程号
第三单元 关系数据库标准语言--SQL 练习
第三单元关系数据库标准语言—SQL学号: 姓名: 成绩:一、选择题1.SQL语言是____的语言,易学习A、过程化B、非过程化C、格式化D、导航式2.SQL语言是____语言。
A、层次数据库B、网络数据库C、关系数据库D、非数据库3..SQL语言具有____的功能。
A、关系规范化、数据操纵、数据控制B、数据定义、数据操纵、数据控制C、数据定义、关系规范化、数据控制D、数据定义、关系规范化、数据操纵4.SQL语言的数据操纵语句包括SELECT,INSERT,UPDA TE和DELETE,最重要的,也是使用最频繁的语句是____。
A、INSERTB、SELECTC、UPDA TE;D、DELETE5.SQL语言具有两种使用方式,分别称为交互式SQL和____。
A、提示式SQLB、多用户SQLC、嵌入式SQLD、解释式SQL6.SQL语言中,实现数据检索的语句是____。
A、INSERTB、SELECTC、UPDA TED、DELETE7. 下列SQL语句中,修改表结构的是____。
A、CREATEB、ALTERC、UPDA TED、INSERT8.SQL为用户授权的命令是。
A.GRANT B. REVOKE C. SELECT D. PUT9.SQL收回用户权力的命令是。
A.GRANT B. REVOKE C. SELECT D. PUT10.SQL规定具有执行授权和收回权力命令的用户是。
A.只能是该数据库(表)的使用者 B. 只能是该数据库(表)的建立者C.只能是DBA D. 只能是DBA和该数据库(表)的建立者11.结构化查询语言SQL 。
A.是一种自含式语言 B. 是一种嵌入式语言C.既是自含式语言又是嵌入式语言 D. 以上说法都不对12. 以下关于SQL的叙述中,哪个不是SQL的特点。
A.综合统一,即集DDL、DML、DCL等多种功能于一体B.高度过程化C.面向集合的操作方式D.提供交互式和嵌入式两种使用方式13.基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:S(S#, SN, SEX, AGE, DEPT)C(C#, CN)SC(S#, C#, GRADE)其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE.为成绩。
第3章数据库的标准语言SQL 一简答题 1试述SQL语言的特点 2.doc
第3章数据库的标准语言SQL一、简答题1.试述SQL语言的特点。
2.试述SQL的定义功能。
3.在嵌入式SQL中,如何区分SQL语句和主语言语句?4.在嵌入式SQL中,如何解决数据库工作单元与源程序工作单元之间的通信?5.在嵌入式SQL中,如何协调SQL语言的集合处理方式和主语言的单记录处理方式?6.什么是基本表?什么是视图?两者的区别和联系是什么?7.试述视图的优点。
8.设有三个关系,A (AttANAMEWQTYCITY) , B (BWBNAMEPRICE) , AB (A#B#QTY)。
其中各属性含义如下:A# (商店代号)、ANAMR (商店名)、WQTY (店员人数)、CITY (所在城市)、B# (商品号)、BNAME (商品名称)、PRICE (价格)、QTY (商品数量)。
试用SQL 语言写出下列查询。
(1)找出店员为人数不超过100人或者在长沙市的所有商店的代号和商店名9.题干同8, (2)找出供应书包的商店名10.有三个表即学生表S、课程表C和学生选课表SC,它们结构如下:S (S#, SN, SEX, AGE, DEPT)C (C#, CN)SC (S#, C#, GRADE)其中:S#为学号,SN为姓名,SEX为姓名,AGE为年龄,DEPT为系别,C#为课程号,CN 为课程名,GRADE为成绩。
(1)检索所有比“王华”年龄大的学生姓名、年龄和性别。
11.题干同10, (2)检索选修课程“C2”的学生中成绩最高的学生的学号。
12.题干同10, (3)检索学生姓名及其所选修课程的课程号和成绩。
13.题干同10, (4)检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。
14.设有关系模式:SB(SN, SNAME, CITY) , SB表示供应商,SN为供应商代号,SNAME为供应商名字,CITY 为供应商所在城市,主关键字为SN。
(3)取出重量最的零件代17.题干同(4)取出为工程J1提供零件的供应商18.题干同(5)取出为工种J1提供零件P1的供应19.题干同(6)取出由供应商S1提供零件的工程20.题干同(7)取出供应商S1提供的零件的21.题干同(8)取出为工程J1和J2提供零件的供应22.题干同(9)取出为工程J1提供红色零件的供应23. 题干同(10)取为所在城市为上海的工程提供零件的供应24.题干同(11)取出为所在城市为上海或北京的工程提供红色零件的号25. 题干同(12)取出供应商与工程所在城市相同的供应商提供的零26. 题干同(13)取出上海的供应商提供给上海的任一工程的零件27. 题干同(14)取出至少由一个和工程不在同一城市的供应商提供零28. 题干同(15)取出上海供应商不提供任何零件的工程29. 题干同(16)取出这样一些供应商代号,它们能够提供至少一种山16.题干同PB (PN, PNAME, COLOR, WEIGHT) , PB 表示零件,PN 为零件代号,PNAME 为零件名字, COLOR 为零件颜色,WEIGHT 为零件重量,主关键字为PN 。
关系模型概述
П Sname,Sage(σSage<20 (Student))
第三章 关系数据库标准语言SQL
3. 3 查询
查询条件运算符
查询条件 比 较 谓词
=, >, <, >=, <=, !=, <>, !>, !< BETWEEN AND, NOT BETWEEN AND IN, NOT IN LIKE, NOT LIKE IS NULL, IS NOT NULL
ALTER TABLE语句
格式:
返回
ALTER TABLE <表名> [ADD <新列名><数据类型>[<列完整性约 束>]] [DROP<列完整性约束名>][MODIFY <列名><数据类型>];
功能:修改已建的基本表 例2:向学生表增加“入学时间”属性列
ALTER TABLE Student ADD Scome DATE;
第三章 关系数据库标准语言SQL
3.3 查询
例4:查询选修课程的学生学号 SELECT Sno П Sno(σGrade≠ ‘’ (Student)) FROM SC; 例4-1:查询选修课程的学生学号 SELECT DISTINCT Sno FROM SC; 例5:查询20岁以下的学生姓名及年龄 SELECT Sname,Sage FROM Student WHRER Sage<20;
例3:修改学生表的“年龄”属性类型为半字长整数
ALTER TABLE Student MODIFY Sage SMALLINT;
例4:删除学生表“姓名”属性列取唯一值的约束
ALTER TABLE Student DROP UNIQUE(Sname);
数据库第三章关系数据库标准语言SQL
数据库第三章关系数据库标准语言SQL第三章关系数据库标准语言SQL习题1.试述SQL语言的特点。
2.试述SQL的定义功能。
3.用SQL语句建立第二章习题5中的4个表。
4.针对上题中建立的4个表试用SQL语言完成第二章习题5中的查询。
5.针对习题3中的4个表试用SQL语言完成下列各项操作:(1)找出所有供应商的姓名和所在城市。
(2)找出所有零件名称、颜色、重量。
(3)找出使用供应商SI所供应零件的工程号码。
(4)找出工程项目J2使用的各种零件的名称及其数量。
(5)找出上海厂商供应的所有零件号码。
(6)找出使用上海产的零件的工程名称。
(7)找出没有使用天津产的零件的工程号码。
(8)把全部红色零件的颜色改成蓝色。
(9)由S5供给J4的零件P6改为由S3供应,请做必要的修改。
(10)从供应商关系中见风删除S2的记录,并从供应情况关系中删除相应的记录。
6.什么是基本表?什么是视图?两者的区别和联系是什么?7.试述视图的优点。
8.所有的视图是否都可以更新?为什么?9.哪类视图是可以更新的?哪类视图是不可以更新的?各举一例说明。
10.试述某个你熟悉的实际系统中对视图更新的规定。
11.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。
针对该视图完成下列查询:(1)找出三建工程项目使用的各种零件代码及其数量。
(2)找出供应商S1的供应情况。
12.针对习题3建立的表,用SQL语言完成以下各项操作:(1)把对表S的INSERT权限授予用户张勇,并允许他在将此权限授予其他用户。
(2)把查询SPJ表和修改QTY属性的权限授给用户李天明。
13.在嵌入式SQL中是如何区分SQL语句和主语言语句的。
14.在嵌入式SQL中是如何解决数据库工作单元与源程序工作单元之间通信的?15.在嵌入式SQL中是如何协调SQL语言的集合处理方式和主语言的单记录处理方式的?参考答案1.答:(1)综合统一。
第三章利用SQL语言操作数据库
任务一 认知标准SQL语言 任务二 利用SELECT语句从数据表中提取数据 任务三 利用INSERT语句向数据表中插入数据 任务四 利用DELETE语句在数据表中删除数据 任务五 利用UPDATE语句更新(修改)数据表中的数据
任务六 利用数据定义语言(DDL)创建和删除数据库
任务七 认知数据控制语言(DCL)*
小结
单元三 利用标准SQL语句对数据库操作
任务一 认知SQL语言
SQL是Structured Query Language的缩写,其汉语意思为结构化查询语言。 SQL是一种介于关系代数与关系演算之间的语言,它集数据定义语言(Data Definition Language,简称DDL)、数据操纵语言(Data Manipulation Language,简称DML)、数 据控制语言(Data Control Language,简称DCL)于一体,是一个综合的、通用的、功 能极强又简洁易学的关系数据库语言。 数据操纵语言(database manufacture language,简称DML)具有数据查询 (SELECT)、插入(INSERT)、删除(DELETE)和修改(UPDATE)等功能,是 动态网页设计和信息管理系统开发方面必备的知识。 SQL语言是一种非过程化语言,它允许用户在高层的数据结构上操作,而不对单 个记录进行操作。在使用SQL语言的过程中,用户完全不用考虑诸如数据的存储格式、 数据的存储路径等复杂的问题。用户所需要做的只是使用SQL语言提出自己的要求, 至于如何实现这些要求,则是关系数据库管理系统的任务。
二、使用“*”查询表中的所有列 当需要显示表中所有列的数据时,有些表的列多达十几个甚至几十个,如果把 这些列的名称全部书写在SELECT语句中,不仅工作量大,而且容易出现错误,可使 用“*”来表示表中的所有列,这样简洁方便。 【例3.2】查询XSGL数据库的XS表中所有列的信息。 可在SQL Query标签页中输入并执行如下的SQL语句: USE XSGL SELECT * FROM XS GO
第03章-关系数据库标准语言SQL
语句 CREATE
功能 创建数据库或数据库对象
ALTER
修改数据库或数据库对象
DROP
删除数据库或数据库对象
说明 不同数据库对象参数不同 不同数据库对象参数不同 不同数据库对象参数不同
SQL的组成(续) ❖ 数据操纵语言DML(Data Manipulation Language):用于执行对数据库检索和更新。
定义基本表(续)
❖ 表的完整性约束条件 创建表时可指定表的完整性约束条件,也称为约束: 列级完整性约束条件 完整性约束条件涉及到该表的当前一个属性列 表级完整性约束条件 完整性约束条件涉及到该表的一个或多个属性列
➢ RDBMS自动检查对表的操作是否违背表的完整性约束条件
学生表Student
数据库 模式
表 视图
模式 表
索引
定义模式(续)
❖ 基本格式: CREATE SCHEMA [<模式名>] AUTHORIZATION <用户名> CREATE、SCHEMA 、AUTHORIZATION为保留字 保留字习惯使用大写 CREATE SCHEMA 为定义模式的语句 <模式名>为所创建的模式的名称 尖括号表示用户提供的参数 方括号表示参数可选 AUTHORIZATION <用户名> 子句用于指定模式的所有者 <用户名>指定一个用户
❖ 也可以使用带指定参数值的命令创建数据库
3.3 数据定义
3.3.1 模式的定义与删除 3.3.2 基本表的定义、删除与修改 3.3.3 索引的建立与删除
定义模式
❖ 模式(SCHEMA) 定义模式实际上是定义了一个命名空间(或容器)。 在这个空间中可以定义该模式包含的数据库对象 例如基本表、视图、索引、存储过程等。 定义模式能更好的管理数据库中的对象
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
数据库的标准语言SQL 第三章 数据库的标准语言SQL
教学重点
• SQL数据定义:基本表、视图、别名,建立索引 • SQL数据操纵:插入、更新、删除 • SQL数据查询
教学难点
SQL查询:简单查询、联接查询、嵌套查询、库函数查询、集合运算
2010-12-31
天津中德职业技术学院 信息工程系
4
数据库的标准语言SQL 第三章 数据库的标准语言SQL
SQL的特点 SQL语言集数据查询(Data Query)、数据操纵(Data Manipulation)、数据定义(Data Definition)和数据 控制(Data Control)功能于一体,主要特点包括: 1.综合统一 2.高度非过程化 3.面向集合的操作方式 4.以同一种语法结构提供两种使用方式 5.语言简捷,易学易用
注:列名IS [NOT] NULL不能写成 列名=NULL 列名IS NOT] NULL不能写成 列名=
2010-12-31
天津中德职业技术学院 信息工程系
18
数据库的标准语言SQL 第三章 数据库的标准语言SQL
3.1.2 联接查询
查询目标涉及到两个或几个关系 1.等值与非等值连接查询 连接查询中用来连接两个表的条件称为连接条件或连接谓词。 2.自身连接 连接操作不仅可以在两个表之间进行,也可以是一个表与其自 己进行连接,称为表的自身连接。 3.外连接 在通常的连接操作中,只有满足连接条件的元组才能作为结果 输出。 4.复合条件连接 上面各个连接查询中,WHERE子句中只有一个条件,即连接谓词。 WHERE子句中可以有多个连接条件,称为复合条件连接。
天津中德职业技术学院 信息工程系
16
数据库的标准语言SQL 第三章 数据库的标准语言SQL
例8:检索借了总编号为500088和100909两本书的借书证号 SELECT X.借书证号 FROM 借阅 X,借阅 Y WHERE X.借书证号=Y.借书证号 AND X.总编号=”500088” AND Y.总编号=”100909”;
注:这里*代表图书和借阅两个关系联接后的所有属性 这里*
2010-12-31
天津中德职业技术学院 信息工程系
21
数据库的标准语言SQL 第三章 数据库的标准语言SQL
3.1.3 嵌套查询
在SQL语言中,一个SELECT-FROM-WHERE语句称为一个查询块。将一个查询块 嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询。 1.带有IN谓词的子查询 在嵌套查询中,子查询的结果往往是一个集合,所以谓词IN是嵌套查询中最 经常使用的谓词。 2.带有比较运算符的子查询 带有比较运算符的子查询是指父查询与子查询之间用比较运算符进行连接。 3.带有ANY或ALL谓词的子查询 子查询返回单值时可以用比较运算符 ,而使用ANY或ALL谓词时则必须同时 使用比较运算符。 4.带有EXISTS谓词的子查询 EXISTS代表存在量词 $。带有EXISTS谓词的子查询不返回任何数据,只产生 逻辑真值“true”或逻辑假值“false”。
教学要求
• 牢记有关概念,掌握SQL查询
2010-12-31
天津中德职业技术学院 信息工程系
2
数据库的标准语言SQL 第三章 数据库的标准语言SQL
课程章节
§3.1 SQL查询 §3.2 SQL数据定义 §3.3 SQL数据操作 §3.4 SQL数据控制 §3.5 数据字典
2010-12-31
天津中德职业技术学院 信息工程系
例6:查出人民出版社的所有图书及单价,结果按单价 降序排列 SELECT 书名,出版单位,单价 FROM 图书; WHERE 出版单位=“人民出版社” ORDER BY 单价 DESC;
2010-12-31
天津中德职业技术学院 信息工程系
15
数据库的标准语言SQL 第三章 数据库的标准语言SQL
例7:查找价格介于10和20元之间的图书,结果按分类号和单价升序排列 方法一: SELECT 书名,作者,单价,分类号 FROM 图书 WHERE 单价 BETWEEN 10 AND 20 ORDER BY 分类号,单价[ASC]; 方法二: SELECT 书名,作者,单价,分类号 FROM 图书 WHERE 单价>=10 AND 单价<=20 ORDER BY 分类号,单价[ASC];
注:用ORDER BY可对查询结果排序 BY可对查询结果排序 DESC(descending)降序 DESC(descending) ASC(ascending)升序 ASC(ascending) 多重排序:主关键字,次关键字,关键字3,…… 多重排序:主关键字,次关键字,关键字3
2010-12-31
2010-12-31
天津中德职业技术学院 信息工程系
9
数据库的标准语言SQL 第三章 数据库的标准语言SQL
8.测试空值 • IS NULL:为空时为真; • IS NOT NULL:不为空时为真。 9. GROUP BY子句将查询结果表按某一列或多列值分组,值相等的 为一组。 10. 对查询结果排序 用户可以用ORDER BY子句对查询结果按照 一个或多个属性列的升序(ASC)或降序(DESC)排列,缺省值为 升序。
例3:查找人民出版社和科学出版社的所有图书及作者 方法一: SELECT 书名,作者,出版单位 FROM 图书 WHERE 出版单位=“人民出版社” OR 出版单位=“科学出版 社”; 方法二: SELECT 书名,作者,出版单位 FROM 图书 WHERE 出版单位 IN (“人民出版社”,“科学出版社”);
2010-12-31
天津中德职业技术学院 信息工程系
13
数据库的标准语言SQL 第三章 数据库的标准语言SQL
例4:查找书名以“数据库”打头的所有图书及作者 SELECT 书名,作者 FROM 图书 WHERE 书名 LIKE “数据库%”;
注:谓词LIKE后面必须是字符串常量,其中可以使用两个通配符: 谓词LIKE后面必须是字符串常量,其中可以使用两个通配符: LIKE后面必须是字符串常量 _ 下划线 任何一个字符 任何多个字符(包括0个) % 任何多个字符(包括0
第三章 数据库的标准语言SQL 数据库的标准语言
学时数:12学时 课程类型:理论
数据库的标准语言SQL 第三章 数据库的标准语言SQL
教学目的
• • • • • 了解SQL的背景知识 掌握SQL查询语句 掌握SQL数据定义语句CREATE、DROP、ALTER 掌握数据操纵语句INSERT、DELETE、UPDATE 掌握数据控制语句GRANT、REVOKE
2010-12-31
天津中德职业技术学院 信息工程系
10
数据库的标准语言SQL 第三章 数据库的标准语言SQL
查询实例
例题:设图书管理关系数据模型的三个关系模式: 图书(总编号,分类号,书名,作者,出版单位,单价) 读者(借书证号,姓名,性别,单位,职称,地址) 借阅(借书证号,总编号,借阅日期,备注)
例2:查看所有读者的全部情况 : SELECT * FROM 读者;
注:SELECT子句中的*表示全部属性的通配符 子句中的* 在查询中无条件限制时,可省略WHERE子句 在查询中无条件限制时,
2010-12-31
天津中德职业技术学院 信息工程系
12
数据库的标准语言SQL 第三章 数据库的标准语言SQL
例5:列出图书馆中所有藏书的书名及出版单位 SELECT DISTINCT 书名,出版单位 FROM 图书;
注:DISTINCT从查询结果中去掉重复元组 DISTINCT从查询结果中去掉重复元组
2010-12-31 14
天津中德职业技术学院 信息工程系
数据库的标准语言SQL 第三章 数据库的标准语言SQL
注:同一个关系借阅在一个查询模块中出现两次,则必须引入 同一个关系借阅在一个查询模块中出现两次, 别名X,Y 别名X 用相同属性时用“.”分开 用相同属性时用“
2010-12-31
天津中德职业技术学院 信息工程系
17
数据库的标准语言SQL 第三章 数据库的标准语言SQL
例9:求缺少职称的读者姓名
SELECT姓名 FROM 读者 WHERE 职称 IS NULL;
2010-12-31
天津中德职业技术学院 信息工程系
8
数据库的标准语言SQL 第三章 数据库的标准语言SQL
5.集合成员资格的确认 IN:当指定元素在集合中时为真; NOT IN:当指定元素不在集合中时为真。
6.集合的比较 SOME:“至少比一个……”; ALL:“比所有的都……”。
7.集合基数的测试 (1)测试一个子查询的结构是否为空 EXISTS:子查询的结果不为空时为真; NOT EXISTS:子查询的结果为空时为真。 (2)测试一个子查询的结果是否存在重复元组 UNIQUE:子查询的结果不存在重复元组时为真; NOT UNIQUE:子查询的结果存在重复元组时为真。
2010-12-31
天津中德职业技术学院 信息工程系
6
数据库的标准语言SQL 第三章 数据库的标准语言SQL
注释: 注释:
1. 选择表中的全部列或部分列,这就是投影运算。 2. 消除取值重复的行 两个本来并不完全相同的 元组,投影到指定的某些列上后,可能变成相同的行了。 3. 如果指定DISTINCT短语,则表示在计算时要取消指定列中的重 复值。如果不指定DISTINCT短语或指定ALL短语(ALL为缺省 值),则表示不取消重复值。
2010-12-31
天津中德职业技术学院 信息工程系
7
数据库的标准语言SQL 第三章 数据库的标准语言SQL
4.条件表达式 (1)关系运算 (2)逻辑运算 (3)谓词 (4)几种特殊的