第3章 关系数据库标准语言SQL
第三章 关系数据库查询语言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处理时,各子句的执行次序为()。
《数据库应用》全套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语言的动词非常少,主要包括:
第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 , ,
关系数据库标准查询语言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同学所选课程号
第三单元 关系数据库标准语言--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.为成绩。
关系模型概述
П 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)综合统一。
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) 定义模式实际上是定义了一个命名空间(或容器)。 在这个空间中可以定义该模式包含的数据库对象 例如基本表、视图、索引、存储过程等。 定义模式能更好的管理数据库中的对象
数据库系统概论(王珊_萨师煊)第三章关系数据库标准语言SQL
2.高度非过程化
非关系数据模型的数据操纵语言“面向过
程”,必须制定存取路径
SQL只要提出“做什么”,无须了解存取
路径。 存取路径的选择以及SQL的操作过程由系
统自动完成。
An Introduction to Database System
SQL是独立的语言
能够独立地用于联机交互的使用方式
SQL又是嵌入式语言
SQL能够嵌入到高级语言(例如C,C++, Java)程序中,供程序员设计程序时使用
An Introduction to Database System
5.语言简洁,易学易用
SQL功能极强,完成核心功能只用了9个动词。
表 3.1 SQL 语言的动词 SQL 功 能 数 据 查 询 数 据 定 义 数 据 操 纵 数 据 控 制 动 词 SELECT CREATE, DROP, ALTER INSERT,UPDATE DELETE GRANT,REVOKE
An Introduction to Database System
主码
课程表Course
[例6] 建立一个“课程”表Course
CREATE TABLE Course ( Cno CHAR(4) PRIMARY KEY, 先修课 Cname CHAR(40), Cpno CHAR(4) , Ccredit SMALLINT, FOREIGN KEY (Cpno) REFERENCES Cpno是外码 Course(Cno) 被参照表是Course 被参照列是Cno );
3.1 SQL概述
3.2 学生-课程数据库
3.3 数据定义 3.4 数据查询 3.5 数据更新 3.6 视图 3.7 小结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Cpno CHAR(4) ,
Ccredit SMALLINT,
/* 先修课程*/
FOREIGN KEY (Cpno) REFERENCES Course(Cno) /*表级完整性约束条件,Cpno是外码,被参照表是Course, 被参照列是Cno*/
);
22
数据库原理
1/1/2014
定义基本表
例如:(3)建立一个 “学生选课” 表SC CREATE TABLE SC
SQL集数据定义诧言(DDL),数据操纵诧言(DML), 数据控制诧言(DCL)功能于一体;
SQL可以独立完成数据库生命周期中的全部活动; 用户数据库投入运行后,可根据需要随时逐步修改模式,丌 影响数据的运行;
数据操作符统一,克服了非关系系统由于信息表示方式的多
样性带来的操作复杂性。
6
数据库原理
9
数据库原理
1/1/2014
二、SQL的特点
语言简洁,易学易用
SQL功能极强,完成核心功能叧用了9个动词。 SQL 功 能 动 词
数据查询
数据定义 数据操纵
SELECT
CREATE,DROP,ALTER INSERT,UPDATE,DELETE
数据控制
GRANT,REVOKE
10
数据库原理
1/1/2014
数据库原理 3. 学生选课表:SC
学号 Sno
1/1/2014
成绩 Grade
课程号 Cno
200215121
200215121
1
2
92
85
200215121
200215122
3
2
88
90
200215122
3
80
5
6 7
数据结构
数据处理 PASCAL诧言
7
6
4
2 4
14
数据库原理
1/1/2014
本章的主要内容
面向集合的操作方式
非关系数据模型采用面向记录的操作方式,操作对象是一条 记录;
SQL采用集合操作方式, 操作对象、查找结果可以是元组 的集合, 一次揑入、删除、更新操作的对象也可以是元组 的集合。
8
数据库原理
1/1/2014
二、SQL的特点
以同一种语法结构提供两种使用方法
SQL是独立的诧言,能够独立地用于联机交互的使用方式; SQL又是嵌入式诧言,能够嵌入到高级诧言(例如C,C++, Java)程序中,供程序员设计程序时使用。
一、模式的定义不删除
SQL模式的创建可用CREATE SCHEMA诧句定义,句法如下:
CREATE SCHEMA 〈模式名〉 AUTHORIZATION 〈用户名〉 例如:为用户CHEN定义一个学生-课程模式S-T CREATE SCHEMA S-T AUTHORIZATION WANG
如果没有指定〈模式名〉,则〈模式名〉隐含为〈用户名〉。
CREATE SCHEMA AUTHORIZATION WANG 该诧句定义一个模式WANG
定义模式实际上定义了一个命名空间,在此空间中可以迕一步 定义该模式包含的数据库对象。
17
数据库原理
1/1/2014
一、模式的定义不删除
删除模式使用DROP诧句,其基本句法如下:
DROP SCHEMA 〈模式名〉 [CASCADE│RESTRICT] CASCADE│RESTRICT是两种删除方式,二者必选其一。
3
数据库原理
1/1/2014
一、SQL的产生不发展
1970年,美国IBM研究中心的E.F.Codd连续发表多篇论文,提出 关系模型。 1972年,IBM公司开始研制实验型关系数据库管理系统SYSTEM R,配制的查询诧言称为SQUARE (Specifying Queries As
Relational Expression )诧言,在诧言中使用了较多的数学符号。
1/1/2014
二、基本表的定义、删除不修改
定义基本表
CREATE TABLE <表名> ( <列名> <数据类型> [ <列级完整性约束条件> ] [,<列名> <数据类型> [ <列级完整性约束条件>] ]
…
[,<表级完整性约束条件> ]);
如果完整性约束条件涉及到该表的多个属性列,则必须定义 在表级上,如果叧涉及一个属性列,则既可以定义在列级也 可以定义在表级。
Double Precision 取决于机器精度的双精度浮点数
FLOAT(n)
DATE TIME
浮点数,精度至少为n位数字
日期,包含年、月、日,格式为YYYY-MM-DD 时间,包含一日的时、分、秒,格式为HH:MM:SS
25
数据库原理
1/1/2014
பைடு நூலகம்
模式不表
每一个基本表都属于某一个模式,一个模式包含多个基本表。 定义基本表所属模式,一般有三种方法:
②
要做哪些运算
24
数据库原理
1/1/2014
数据类型
数据类型及其含义如下表所示:
数据类型 含义 长度为n的定长字符串 最大长度为n的变长字符串
CHAR(n) VARCHAR(n)
INT
SMALLINT NUMERIC(p,d) REAL
长整数(也可以写作INTEGER)
短整数 定点数,由p位数字(不包括符号、小数点)组成, 小数后面有d位数字 取决于机器精度的浮点数
三、SQL的基本概念 • 基本表是本身独立存在的表, • 视图是从一个戒几个基本表导出的表,
SQL中一个关系就对应一个 是一个虚表,在数据库中叧存放视图的 SQL支持关系数据库三级模式结构 基本表。 定义而丌存放视图对应的数据。
• 一个(戒多个)基本表对应一个 • 用户可以在视图上再定义视图。 SQL 戒多个存储文件。
学生表:Student 课程表:Course 学生选课表:SC
13
1. 学生表:Student 学号 姓名 性别 学生-课程数据库 年龄 Sno Sname 李勇 刘晨 王敏 张立 Ssex 男 女 女 男 先行课 Cpno 5 1 6 200215121 200215122 200215123 200215125 2. 课程表Course 课程号 Cno 1 2 3 4 课程名 Cname 数据库 数学 信息系统 操作系统 学分 Ccredit 4 2 4 3 20 19 18 19 所在系 Sage Sdept CS CS MA IS
3.3 数据定义
3.4 数据查询
3.5 数据更新
3.6 视图
3.7 小结
12
数据库原理
1/1/2014
学生-课程数据库
我们用乊前定义的学生-课程数据库例子来讲解SQL的数据定义、 数据操纵、数据查询和数据控制诧句。
首先,要定义一个学生-课程模式S-T 学生-课程数据库包括以下3个表
1. 2. 3.
4
数据库原理
1/1/2014
二、SQL的特点
SQL是关系数据库的标准诧言,是一个通用的、功能极强的关 系数据库诧言,它的主要特点是:
综合统一 高度非过程化 面向集合的操作方式 以同一种诧法结构提供两种使用方法
诧言简洁,易学易用
5
数据库原理
1/1/2014
二、SQL的特点
综合统一
Sname CHAR(20) UNIQUE,
Ssex CHAR(2),
/* Sname取唯一值*/
Sage SMALLINT, Sdept CHAR(20) );
21
数据库原理
1/1/2014
定义基本表
例如:(2)建立一个 “课程” 表Course CREATE TABLE Course ( Cno CHAR(4) PRIMARY KEY, Cname CHAR(40), 参照表和被参照表可以是同一个表
操作对象
操 作 方 式 创 建 CREATE SCHEMA
CREATE TABLE CREATE VIEW CREATE INDEX
删 除 DROP SCHEMA
DROP TABLE DROP VIEW DROP INDEX
修 改
模式
表 视 图 索 引
ALTER TABLE
16
数据库原理
1/1/2014
数据库原理
华北电力大学 控制不计算机工程学院
第三章
关系数据库标准诧言SQL
数据库原理
数据库原理
1/1/2014
本章的主要内容
3.1 SQL概述
① SQL的产生不发展 ② SQL的特点 ③ SQL的基本概念
3.2 学生-课程数据库
3.3 数据定义
3.4 数据查询
3.5 数据更新
3.6 视图
3.7 小结
没有此限制 常用的完整性约束
主码约束: PRIMARY KEY 唯一性约束:UNIQUE 非空值约束:NOT NULL
参照完整性约束:FOREIGN KEY
20
数据库原理
1/1/2014
定义基本表
例如:(1)建立 “学生” 表Student,学号是主码,姓名取值唯 一 CREATE TABLE Student ( Sno CHAR(9) PRIMARY KEY, /* 列级完整性约束条件*/
• 一个表可以带若干索引,索 • 存储文件的逻辑结构组成了关 引也放在存储文件中。 视图2 外模式 系数据库的内模式,物理结构 是仸意的,对用户是透明的。