第3章 关系数据库语言SQL(1)
第三章 关系数据库查询语言SQL
20112011-2-25
主讲:王颂华
9
3.2 数据定义
3.2.3 索引的建立与删除
1.建立索引 1.建立索引 索引是数据库随机检索的常用手段,它实际上是记 录的关键字与其相应地址的对应表。借助于索引结构,可 以迅速查找到某个属性A 以迅速查找到某个属性A具有指定值的那些元组。对一个 基本表,可以按需要建立若干个索引,以便提供多种存取 路径。 建立索引的语句格式为: CREATE[UNIQUE][CLUSTER]INDEX<索引名 CREATE[UNIQUE][CLUSTER]INDEX<索引名 > ON<表名>(<列名1>[<次序>],[<列名2>[<次序 ON<表名>(<列名1>[<次序>],[<列名2>[<次序 >]]… >]]…);
3.2 数据定义
2)主关键字的定义 一个关系可能有多个候选关键字,但在定义基本表 时只能定义一个主关键字。一个关系的主关键字由一个或 几个属性构成,在CREATE TABLE中声明主关键字有两 几个属性构成,在CREATE TABLE中声明主关键字有两 种方法: (1)在列出关系模式的属性时,在属性及其类型后加 上保留字PRIMARY KEY,表示该属性是主关键字。 上保留字PRIMARY KEY,表示该属性是主关键字。 (2)在列出关系模式的所有属性后,再附加一个声明: PRIMARY KEY(<属性1>[,<属性2>,…]) KEY(<属性1 ,<属性2>,… 如果关键字由多个属性构成,则必须使用第二种方 法。
20112011-2-25 主讲:王颂华 12
3.3 数据查询
3.3.1 单表查询
关系数据库标准语言SQL
第三章关系数据库标准语言SQL1、视图:2、SQL:3、基本表:4、索引:5、下列的SQL语句中,()不是数据定义语句。
A、CREA TE INDEXB、DELETE TABLEC、CREA TE VIEWD、ALTER TABLE6、有关系S(S#,SNAME,SEX),C(C#,CNAME),SC(S#,C#,GRADE)。
其中S#是学生号,SNAME是学生姓名,SEX是性别,C#是课程号,CNAME是课程名称。
要查询选修“数据库”课的全体男生姓名的SQL语句是SELECT SNAME FROM S,C,SC WHERE子句。
这里的WHERE子句的内容是()。
A、S、S# = SC、S# and C、C# = SC、C# and SEX=’男’and CNAME=’数据库’B、S、S# = SC、S# and C、C# = SC、C# and SEX in’男’and CNAME in’数据库’C、SEX ’男’and CNAME ’数据库’D、S、SEX=’男’and CNAME=’数据库’7、在数据库技术中,NULL是指()。
A、0B、空格C、无任何值D、空字符串8、SQL语言中,删除一个视图所用的动词是()。
A、DELETEB、DROPC、CLEARD、REMOVE9、若要在一个查询中联接3个表,则需要()个联接条件。
A、1B、2C、3D、不确定10、假设学生关系S(S#,SNAME,SEX),课程关系C(C#,CNAME),学生选课关系SC (S#,C#,GRADE)。
要查询选修“Computer”课的男生姓名,将涉及到关系()A、SB、S,SCC、C,SCD、S,C,SC11、若要在一个等值连接查询中联接N个表,则需要()个联接条件。
A、N- 1B、NC、N+1D、不确定12、对由SELECT--FROM—WHERE—GROUP--ORDER组成的SQL语句,其在被DBMS处理时,各子句的执行次序为()。
数据库系统概论习题及答案-其它题
数据库系统概论复习资料:第一章假定教课管理规定:①一个学生可选修多门课,一门课有若干学生选修;②一个教师可讲解多门课,一门课只有一个教师讲解;③一个学生选修一门课,仅有一个成绩。
学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、课程名。
要求:依据上述语义画出ER 图,要求在图中画出实体的属性并注明联系的种类;解答:课程号课程名学号m n选修学生课程姓名n成绩讲解1教师教师编号教师姓名第 2 章关系数据库1、设有以下所示的关系S(S#,SNAME,AGE,SEX) 、C(C#,CNAME,TEACHER)和 SC(S#,C#,GRADE) ,试用关系代数表达式表示以下查问语句:(1) 检索“程军”老师所讲课程的课程号(C#) 和课程名 (CNAME) 。
(2)检索年纪大于 21 的男学生学号 (S#)和姓名 (SNAME) 。
(3) 检索起码选修“程军”老师所授所有课程的学生姓名(SNAME) 。
(4)检索”李强”同学不学课程的课程号(C#) 。
(5)检索起码选修两门课程的学生学号(S#)。
(6) 检索所有学生都选修的课程的课程号(C#) 和课程名 (CNAME) 。
(7) 检索选修课程包含“程军”老师所讲课程之一的学生学号(S#)。
(8)检索选修课程号为 k1 和 k5 的学生学号 (S#)。
(9)检索选修所有课程的学生姓名 (SNAME) 。
(10)检索选修课程包含学号为 2 的学生所修课程的学生学号 (S#)。
(11)检索选修课程名为“ C 语言”的学生学号 (S#)和姓名 (SNAME) 。
解:此题各个查问语句对应的关系代数表达式表示以下:(1). ∏ C#,CNAME( σ TEACHER= ‘程军’ (C))(2). ∏ S#,SNAME( σAGE>21 ∧ SEX= ”男” (C))(3). ∏ SNAME{s[ ∏S#,C#( sc)÷∏ C#( σ TEACHER= ‘程军’ (C))]}(4). ∏ C#(C)- ∏ C#( σ SNAME= ‘李强’ (S) SC)(5). ∏ S#(σ[1]=[4] ∧ [2] ≠ [5] (SC × SC))(6). ∏ C#,CNAME(C(∏ S#,C#(sc)÷∏ S#(S)))(7). ∏ S#(SC∏ C#(σ TEACHER=‘程军’ (C)))(8). ∏ S#,C#( sc)÷∏ C#(σ C#= ’k1’∨ C#=’ k5’ (C))(9). ∏ SNAME{s[ ∏S#,C#( sc)÷∏ C#(C)]}(10). ∏ S#,C#( sc)÷∏ C#(σ S#=’2’ (SC))(11). ∏S#,SNAME{s[∏ S#(SCσ CNAME=‘ C语言’(C))]}2、关系 R 和 S 以以下图所示,试计算R÷S。
《数据库应用》全套PPT电子课件教案-第三章(关系数据库标准语言SQL)
库文件。
16
第3章 关系数据库标准语言SQL
3.3 数据查询
SQL的核心是查询。SQL的查询命令也称作SELECT命令,它 的基本形式由SELECT-FROM-WHERE查询块组成,多个查 询块可以嵌套执行。SQL查询命令格式:
DISTINCT短语的作用是去掉查询结果中的重复值.
19
第3章 关系数据库标准语言SQL
SELECT * FROM 仓库 其中“*”是通配符,表示所有属性,即字段,这里的命令 等同于:
SELECT 仓库号,城市,面积 FROM 仓库 SELECT DISTINCT 仓库号 FROM 职工 WHERE 工资 > 1210
SQL语言是当前最为成功、应用最为广泛的关 系数据库语言,其主要特点包括:
1. SQL语言非常简洁 2. 综合统一 3. 高度非过程化 4. 面向集合的操作方式 5. 以同一种语法结构提供两种使用方式
4
第3章 关系数据库标准语言SQL
3.1.2 SQL语言功能概述
SQL功能可分为四大部分:数据定义功能、数据 控制功能、数据查询功能和数据操纵功能。
21
第3章 关系数据库标准语言SQL
匹配串中可包含如下四种通配符: _(下划线):匹配任意一个字符。 %(百分号):匹配0个或多个字符。 [ ]:匹配[ ]中的任意一个字符。如[abcd]表示匹配a、b、
c和d中的任何一个。 [^]:不匹配[ ]中的任意一个字符。如[abcd]表示不匹配
a、b、c和d。
SELECT 职工号,城市 FROM 仓库,职工 WHERE ( 面积 > 400) AND
第三章 关系数据库标准语言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语言的动词非常少,主要包括:
数据库系统原理与应用 目录
5.3 完整性
第6章 数据库的事务处理与数据恢复
6.1 事务管理的基本概念 6.2 并发控制
6.3 数据库恢复
第7章 SQL Server 2000
7.1 SQL Server 2000的安装 7.2 SQL Server 2000的管理工具
7.3 SQL Server 2000数据库对象的操作
第9章 数据库应用程序开发
9.1 数据库应用程序设计方法 9.2 数据库应用程序的体系结构
9.3 数据库与应用程序的接口
9.4 数据库应用程序开发
3.1 SQL概述 3.2 数据定义 3.3 数据查询 3.4 数据更新
3.5 视图
3.6 数据控制
第4章 关系数据库设计理论
4.1 数据依赖 4.2 范式 4.3 关系模式的分解
第5章 数据库安全性和完整性
5.1 数据库的安全性 5.2 SQL Server数据库的安全性
7.4 SQL Server 2000数据库管理 7.5 SQL Server 2000程序设计 7.6 SQL Server 2000安全性管理 7.7 链接服务器
第8章 数据库设计
8.1 数据库设计概述 8.2 需求分析
8.3 概念结构设计
8.4 逻辑结构设计 8.5 数据库的物理设计 8.6 数据库实施 8.7 数据库运行与维护
21世纪高职高专新概念教材
数据库系统原理与应用
目录
第1章 数据库基本知识 第2章 关系数据库
第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等
数据库第三章习题及答案
第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
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
例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同学所选课程号
第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 。
DBS第三章1
需装入数据才可使用 数据的装入可用 Insert命令、数据装载程序
复制某表结构的命令如下:
create table 名 as select * from
第三章 关系数据库语言SQL 3.2 SQL的数据定义
二、基表结构的修改(列.主键.外键.别名) --ALTER TABLE
3.3 SQL的数据查询 CREATE SCHEMA TL AUTHORIZATION U1;
3.1 SQL的体系结构
2. SQL模式的撤销
3.4 SQL的数据更新 3.5 视图
DROP SCHEMA <模式名> [CASCADE | RESTRICT] 3.6 嵌入式SQL
CASCADE:该模式下的数据库对象随模式而撤消 RESTRICT:只当该模式下无元素时才可撤消
DROP SCHEMA TL CASCADE;
第三章 关系数据库语言SQL 3.2 SQL的数据定义
3.2.2 基本的数据类型
数据类型 整 数 短整数 十进制数 浮点数 定长字符串 说 明 符 INT SMALLINT 备 字长32位 字长16位 m为总位数(不包括小数点),n为小数位数 一般指双精度浮点数,即字长64位 注
3.2.1 SQL模式的创建和撤销 一、SQL模式的创建和撤销
第三章 关系数据库语言SQL 二、基本数据类型 1. SQL模式的创建 三、基表的创建、修改和撤销 CREATE SCHEMA <模式名> AUTHORIZATION <用户名>
四、索引的创建和撤销 3.2 SQL的数据定义 SQL模式由模式名和拥有者的用户名或帐号确定
查询语言QL ――用于查询数据 数据操纵语言DML――用于增、删、改数据 数据控制语言DCL――用于数据访问权限的控制 完整性规则描述 事务控制等 两种使用方法: 交互式SQL(ISQL)→单独使用的SQL,不能编程
第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) 基本数据类型:
整型:int、smallint、tinyint、bit 压缩十进制数:decimal(p[,q]) 、numeric 双字长浮点数 :float、real 字符型:char(n)、 varchar(n)、text 统一编码字符型:nchar(n) 、 ntext(n)
日期时间型:datetime, 1753年1月1日~9999年12月3 Smalldatetime, 1900年1月1日~2079年6月6日
27
1)对表增加列:
语法:ALTER TABLE <表名> ADD (<列名><数据类型> [NULL|NOT NULL],…); 例:给Student表增加一列ADDR,语句如
下:
ALTER TABLE Student
ADD ADDR CHAR(20) ;
★ 如果原表中已存在数据,则新定义的列必 须设置为NULL,表中原有元组在新增加的列上 的值均被定义为空值; 28
Student
sno
s1 s2 …
sn
wang li …
age
18 19 …
sex
F M
addr
null null null
…
29
2)增大某个列的宽度
语法:ALTER TABLE <表名> MODIFY(<列名>[<数据类型>] 此处改为20 [NULL|NOT NULL],…); 以下的数就 例:ALTER TABLE Student 不可 MODIFY ADDR CHAR(30) ;
条件:列值为空,可以改变类型和缩短 长度
★ 如果列中已存在数据,则不能改变数据 类型,且不能缩短列的宽度,但可以增大列 宽;
30
3)删除原有的列
语法:ALTER TABLE <表名> DROP <列名> [CASCADE|RESTRICT]; 例:ALTER TABLE Student DROP column ADDR ;
);
16
例2:建立部门关系模式
dept(dno,dname,loc)
CREATE TABLE dept (
dno VARCHAR(6), dname VARCHAR (8), loc VARCHAR (10) );
17
2.列的默认值
CREATE TABLE emp( eno NUMBER(10) default 0, ename VARCHAR(10), dno VARCHAR (6), sex VARCHAR (2) default ‘M’, birthday date default ’01-1月2010’ );
25
例3:建立选课关系模SC(SNO,CNO,Grade) CREATE TABLE SC ( SNO CHAR(4) references Student(SNO), CNO CHAR(4) references Course(CNO), Grade SMALLINT, PRIMARY KEY (SNO, CNO), /*表级约束*/ CHECK ( (Grade IS NULL) OR (Grade BETWEEN 0 AND 100) ) /*表级约束*/ );
SCHห้องสมุดไป่ตู้MA TABLE VIEW INDEX
8
(1)CREATE
(2)ALTER TABLE SCHEMA TABLE (3)DROP VIEW INDEX 2)、数据查询语言(DQL) 按照指定的组合、条件表达式或排序 检索已存在的数据库中数据,不改变数据 库中数据。 命令:SELECT…FROM…WHERE…
如果完整性约束条件涉及到该表的多 个属性列时,必须在表级定义该约束条件, 否则既可以定义在列级,也可以定义在表 级。
12
创建基本表的三个组成部分
必须要写的关键字
CREATE TABLE <基本表名> ( <列名 ><数据类型> [列级完整性约束条件] [,<列名 ><数据类型> [列级完整性约束条件]] [,表级完整性约束条件]);
特殊数据型:TIMESTAMP
15
例1:建立职工关系模式 emp(eno,ename,dno,sex,birthday) CREATE TABLE emp(
eno VARCHAR (10),
ename VARCHAR(10),
dno INT,
sex VARCHAR (2),
birthday DATE
例1:建立学生关系模式
Student( SNO, SN, age, sex)
CREATE TABLE Student ( SNO CHAR(4) PRIMARY KEY , /*列级约束*/ Sname CHAR(8) unique, /*列级约束*/ age SMALLINT check(age>15), sex CHAR(2) check(sex in (‘男’,’女’)));
① 列名 表名
② 数据类型 ③ 完整性约束条件
13
(2)建表时的注意事项: • 表名或列名不得超过30个字符。
• 表名或列名命名规则:第一个字符必须是字 母, 后面可以跟字母、数字、三个特殊符号 (_、$、#) ,表名或列名中不可以包含空格。 • 一个用户中表名要唯一,一个表中列名要唯 一。 • 表名和列名不区分大小写,但显示出来都是 大写。 • 保留字不能用作表名或列名。 • 数据类型是系统所提供的基本数据类型。
4、SQL语言的分类
SQL功能
数据定义 数据操纵
命令动词
CREATE、DROP、ALTER INSERT、UPDATE、DELETE
数据查询
数据控制
SELECT
GRANT、REVOKE、COMMIT、 ROLLBACK
7
SQL语言主要的九种命令通常分为四类: 1)、数据定义语言(DDL) 创建、修改或删除数据库中各种对象, 包括SQL模式、基本表、视图、索引等。 命令:
第三章 关系数据库标准语言SQL
第一节 第二节 第三节 第四节 第五节 第六节 第七节 SQL概述 数据定义 Microsoft SQL函数 查询 数据更新 数据控制 嵌入式SQL
1
第一节
1、什么是SQL语言
SQL概述
SQL(Structured Query Language)是结构化查询语言。 SQL语言集数据定义、查询、更 新和控制功能于一体。
3
SQL语言已经成为关系数据库 的标准语言,是关系数据库的基础, Oracle,SQL Server和DB2都使用 SQL。 目前,很多数据库产品都对SQL 语句进行再开发与扩展,如Oracle 提供的PL/SQL(Procedure Language and SQL)就是对SQL的一 种扩展。
4
• FOREIGN KEY 约束:用于指定一列或多 19 列的组合作为一个外键。
CREATE TABLE dept ( dno varchar2(10) primary key, dname varchar2(10) not null, loc varchar2(3) );
20
列级约束:
CREATE TABLE emp
18
3.表的约束条件
• NOT NULL 约束:用于指定某列不为空。
• UNIQUE 约束:用于将一列或多列的组合 作为唯一键,确保被作用的列中没有两行包含 重复。
• CHECK 约束:用来定义一个条件,使表中 的每条记录必须符合该条件。 • PRIMARY KEY 约束:用于指定一列或多 列的组合作为表的主键。
9
3)、数据操纵语言(DML) 对已经存在的数据库进行元组的插入、 删除、修改等操作。 命令:INSERT、UPDATE、DELETE 4)、数据控制语言(DCL) 用来授予或收回访问数据库的某种特 权、控制数据操纵事务的发生时间及效果、 对数据库进行监视。 命令:GRANT、REVOKE、 COMMIT、ROLLBACK
3、SQL语言的特点
(1)SQL是一种一体化的语言
集数据定义、查询、更新和控制功能于一体, 能够完成数据库生命周期中的全部活动,以及 合并、求差、相交、乘积、投影、选择、连接 等所有关系运算。
(2)语言简捷、易学易用 完成核心功能只用9个动词,SQL接近英语口 语或自然语言,简单易学。这9个动词为: CREATE、DROP、ALTER 、 INSERT、 UPDATE、DELETE、SELECT、GRANT、 5 REVOKE。
26
4.修改基本表结构
修改基本表的结构包括增加、删除和修改表 的属性列,默认值和约束条件。 语法:ALTER TABLE <表名>
[ADD <新列名><数据类型>[DEFAULT expr][列级完 整性约束]…[表级约束条件]] |[MODIFY <列名> <数据类型>[DEFAULT expr][列 级完整性约束]…[表级约束条件]] |[DROP COLUMN <列名> [CASCADE| RESTRICT]] |[DROP CONSTRAINT <完整性约束名>] ;
10
第二节 数据定义
SQL的数据定义部分包括对数据库、 SQL模式、基本表、视图和索引、存储过 程、触发器、数据库链路等对象的创建、 修改、删除操作。 本节只介绍基本表的创建、删
除、修改等操作,以及约束条件
的问题。
11
一、基本表的创建、修改和删除
1、创建基本表 (1)创建基本表的语法
CREATE TABLE <SQL模式名.基本表名> ( <列名 ><数据类型> [列级完整性约束条件] [,<列名 ><数据类型> [列级完整性约束条件]] [,表级完整性约束条件]);