关系数据库标准语言SQL

合集下载

vf第四章关系数据库标准语言SQL

vf第四章关系数据库标准语言SQL

4.2.8 利用空值查询
SQL支持空值,当然也可以利用空值进 行查询。 假设在订购单关系中,一名职工正在准 备订购单,但尚未选定供应商,这样若把信 息存入数据库,则供应商号和订购日期两个 属性均为空值,在前面给出的订购单记录中 有3个这样的记录。
例4.23 找出尚未确定供应商的订购单。 SELE * FROM 订购单 WHER 供应商号IS NULL 结果是: E6 NUIL OR77 NULI E1 NULL OR80 NUIJL E3 NUIJL OR90 NUI„L 注意:查询空值时要使用IS NULL,而= NULL是无效的,因为空值不是一个确定的 值,所以不能用“=”这样的运算符进行比较。
例4.20 求在WH2仓库工作的职工的最高工资值。
SELECT MAX(工资) FROM 职工 WHERE 仓库号=”WH2”
4.2.7 分组与计算查询
利用GROUP BY子句进行分组计算查询。 GROUP BY短语的格式如下: Group by 字段名 having 条件 可以按一列或多列分组,还可以用HAVING 进一步限定分组的条件。 例4.21 求每个仓库的职工的平均工资。 SELECT 仓库号,AVG(工资) FROM 职工 GROUP BY 仓库号
可以看到,在这个命令中含有两个 SELECT—FROM—WHERE查询块,即内 层查询块和外层查询块,内层查询块检索 到的仓库号值是WHl和WH2,这样就可以 写出等价的命令: SELE 城市 FROM 仓库 WHERE 仓库号; IN(”WHl”,”WH2”) 这里IN相当于集合运算符∈。
例4.9查询所有职工的工资都多于1210元的仓 库的信息。 这个检索要求也可以描述为:没有一个职工的工 资少于或等于1210元的仓库的信息。 不在以下范围 这样可以有SQL命令: SELE * FROM 仓库 WHER 仓库号 NOT IN; (SELECT 仓库号 FROM 职工 WHERE ; 工资<=1210) 内层SELECT—FROM—WHERE查询块指出所 有职工的工资少于或等于1210元的仓库的仓库号值 的集合,然后从仓库关系中检索元组的仓库号属性 值不在该集合中的每个元组。

关系数据库标准语言SQL

关系数据库标准语言SQL
该系统将待传输的数字电信号直接在光源的发光过程中 进行调制,使光源发出的光本身就是已调制光,又称为 内调制光纤通信系统。目前广泛采用。
(2)外调制光纤通信系统
该系统是在光源发出光之后,在光的输出通路上加调制 器(如电光晶体等)进行调制,又称为间接调制光纤通 信系统。
(3)外差光纤通信系统
该系统又称为相干光通信系统。在研制中。
SQL
视图1
视图2
外模式
基本表1
基本表2
存储文件1
基本表3
基本表4 模 式
存储文件2
内模式
4.2 网上书店数据库
为此定义网上书店数据库,其中包括5个表 用户表:USER1(ID,NAME,PASSWORD,ADDRESS,
POSTCODE,EMAIL,HOMEPHONE,CELLPHONE, OFFICEPHONE) 图书类型表:SORTKIND(ID,NAME) 图书表:PRODUCT(ID,NAME,DESCRIPTION, PRICE,IMG,ZUOZHE,SORTKIND_ID) 订单表:USER1_ORDER(ID,STATUS,COST,DATE, USER1_ID) 订单条目表:ORDER_ITERM(ID,AMOUNT, PRODUCT_ID,ORDER_ID) 关系的主码加下划线表示。
第4章 关系数据库标准语言SQL
本章主要内容
由于SQL语言的标准化,所以大多数关系型数据库系 统都支持SQL语言,它已经发展成为多种平台进行交 互操作的底层会话语言,成为数据库领域中一个主 流语言。这一章将详细介绍SQL的核心部分:数据定 义、数据查询、数据更新和嵌入式SQL。
本章学习目标
熟练掌握SQL语言的数据定义、数据查询、数据更新 功能

第5章 SQL语言

第5章 SQL语言
SELECT 职工号,城市 FROM 职工,仓库 ; WHERE (工资>2230) AND(职工.仓库号=仓库.仓库号) • 仓库关系和职工关系之间存在一个一对多的联系。
例 5.7 找出工作在面积大于 1400 的仓库的职工号 以及这些职工所在的城市
SELECT 职工号,城市 FROM 职工,仓库 ; WHERE (面积>1400) AND(职工.仓库号=仓库.仓库号)
若使用SELECT SUM(DISTINCT工资) FROM 职工
举例
例5.15 求北京和上海的仓库职工的工资总和
SELECT SUM(工资) FROM 职工 WHERE 仓库号 IN ; (SELECT 仓库号 FFROM 仓库 WHERE 城市=”北京” OR; 城市=”上海”)
例5.16 求所有职工的 工资都多于2210元的仓库的平均 面积
[UNION …] [ORDER BY …]
• SELECT说明要查询的数据 • FROM说明要查询的数据来自哪个或哪些表, 可以对单个表或多个表进行查询; • WHERE说明查询条件,即选择元组的条件; • GROUP BY短语用于对查询结果进行分组, 可以利用它进行分组汇总; • HAVING短语必须跟随GROUP BY 短语使 用,它用来限定分组必须满足的条件; • ORDER BY 用来对查询的结果进行排序。
“武汉”的“SH4”仓库还没有职工,但该仓库的信息 也被检索出来了。
举例
• 排除那些还没有职工的仓库,检索要求描述 为: 查询所有的职工工资都多于 2210元的 仓库的信息,并且该仓库至少要有一名职工.
SELECT * FROM 仓库 WHERE 仓库号 NOT IN ; (SELECT 仓库号 FROM 职工 WHERE 工资<=2210) ; AND仓库号IN (SELECT 仓库号 FROM 职工)

关系数据库标准语言SQ

关系数据库标准语言SQ

WHERE (职工.仓库号=仓库.仓库号) AND (工资>1230)
例4.7 找出工作在面积大于400的仓库的职工 号以及这些职工工作所在的城市. 分析 条件:面积>400 联接条件:(职工.仓库号=仓库.仓库号) 查询涉及表:仓库,职工 查询结果字段:职工号,城市 语句:SELE 职工号,城市 FROM 仓库,职工 WHERE;

(面积>400) AND (职工.仓库号=仓库.仓库号)
3、嵌套查询


外查询的条件来自内查询的结果
在SQL语句中,一个SELECT-FROM-WHERE语句称 为一个查询块。将一个查询块嵌套在另一个查询块的 WHERE子句或HAVING短语的条件中的返回多个值 NOT IN :属于关系 联接条件:公共字段名 IN SELE 公共字段名 (相当于联接中条件:表1.公共字段名=表2.公共字 段名)
6、简单的计算查询
SQL不仅具有一般的检索能力,而且还有计 算方式的检索 用于计算检索的函数: COUNT()--- ------计数 SUM()--------------求和 AVG()---------求平均值 MAX()---------求最大值 MIN()----------求最小值
查询产生新字段
例4.10 找出和职工E4工资相同的所有职工. SELE 职工号 FROM 职工 WHERE 工资 =(SELE 工资 FROM 职工 WHERE 职工号 =“E4”) 注意:= 与 IN 之间的关系,等号可以用IN 来 替换,而IN不能用=替换 =:返回的值是一个具体的值 IN:返回的是多个值
4、几个特殊运算符
第四章 关系数据库标准语言SQL
罗盛
一、SQL概述

第4章 关系数据库标准语言——SQL

第4章 关系数据库标准语言——SQL

4.2 SQL的数据定义
4.2.1 基本表的创建、修改和删除 4.2.2 索引的创建和删除
4.2 SQL的数据定义
SQL的数据定义功能包括:定义基本表、定义视图、定义索引。除此之外, 还有定义数据库、定义规则、定义存储过程等。SQL的数据定义语句如表 4-2所示。 表4-2 SQL的数据定义语句
操作方式 操作对象 创建 表 CREATE TABLE 删除 DROP TABLE 修改 ALTER TABLE
视图
CREATE VIEW
DROP VIEW
索引
CREATE INDEX
DROP INDEX
4.2.1 基本表的创建、修改和删除
1.
基本表的创建 一般格式如下:
CREATE TABLE<表名>(<列名><数据类型>[列级完整性 约束条件] [,<列名><数据类型>[列级完整性约束条件]]… [,<表级完整性约束条件>] );
4.2.1 基本表的创建、修改和删除
5. 基本表的删除 随着时间的变化,有些基本表无用了,可将其删除。删除基本表命 令的一般格式为: DROP TABLE<表名>[RESTRICT│CASCADE]; 说明: CASCADE(级联):表示在删除基本表时,不仅表中的数据和 此表的定义将被删除,而且此表上建立的索引、视图、触发器等 有关对象一般也都被删除。 RESTRICT(限制):表示在删除基本表时,只有在没有视图或 约束引用基本表 S 中的列时才能执行,否则拒绝删除。 如执行DROP TABLE S语句后,将基本表S的定义(表框架)连同它 的所有元组、索引以及由它导出的所有视图全部删除,并释放相 应的存储空间。

sql 课件 第3章 关系数据库标准语言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数据库由包含数据的表集合和其他对象( 如视图、索引、存储过程、触发器、用户、角色等)组 成,支持三级模式结构。其中用户模式对应于视图,逻 辑模式对应于基本表,物理模式对应于存储文件、索引 等。

第3章:关系数据库标准语言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)

第3章 关系数据库标准语言SQL_第4版(1-3)
1 6 7 6
学分 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

关系数据库标准查询语言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

第6章 关系数据库标准语言SQL

第6章 关系数据库标准语言SQL
参数说明: ◆ JOIN的顺序和ON的顺序很重要。相应的连接条件一定要按相反的顺序给
出ON的顺序。 left join 左连接 / right join 右连接
例 从“学生档案表”、“学生成绩表”、“课程代码表”中, 查询99212班成绩>=80分各门课程,要求显示学号,姓 名,课程名称,成绩。 Select A.学号,A.姓名,B.课程名称,C.成绩 ; From 学生档案表 A,课程代码表 B,; 学生成绩表 C Where A.学号=C.学号 .And.; B.课程代码=C.课程代码 .And. ; 班级="99212" .And. C.成绩>=80
6-1 SQL概述
1、SQL是结构化查询语言(Structured Query Language的
缩写) 2、特点:
是一种一体化语言 是一种高度非过程化语言 非常简洁 可以以命令方式交互使用(也可以作为程序代码)
3、SQL的功能:
数据查询 数据定义 数据操纵 数据控制(此功能VFP没有)
◆ WHERE<连接条件>子句的作用是将若干个数据表,通过两两 数据表(按公共字段的值相等)的连接,产生一个包含若干个 数据表有关字段的数据信息。<连接条件>是指两数据表用公共 字段进行关联的连接条件。注意:<连接条件>中字段名前必须 冠以数据表别名,两者之间用英文状态下的“.”或“->”隔开。 如果有两个以上数据表打开,则必须用AND将多个<连接条件> 进行连接;还可以加过滤条件对参与操作的记录进行选择。< 连接条件>和<过滤条件>之间必须用AND连接。 ◆ 不论是<过滤条件>,还是<连接条件>中的有关字段也都注明工 作区号或别名,尤其是公共字段。

关系数据库标准语言

关系数据库标准语言


例:查询考试成绩有不及格的学生的学号。
SELECT DISTINCT 学号 FROM 选课 WHERE 成绩<60; 这里使用了DISTINCT短语,当一个学生有多门课程不及格,他 的学号也只列一次。



(2)确定范围
谓词BETWEEN…AND…和NOT BETWEEN…AND…可以用来查找属 性值在(或不在)指定范围内的元组,其中BETWEEN后是范围 的下限,AND后是范围的上限。 例:查询所有年龄在20岁到23岁之间的学生姓名、系别及其 年龄。


学号 95001
95001
95001
学号
95001 95002
95002
95002 95002
看书上的例子
2、查询满足条件的元组——条件查询
通过WHERE子句来实现, WHERE子句常用的查询条件有: 比较、确定范围、确定集合、字符匹配、空值与多重条件, 其谓词如书上P16所列。

(1)综合统一
SQL语言集DDL、DML、DCL的于一体,包括定义关系模式、录 入数据、建立数据库、查询、更新、维护、数据库重构、数据库安全性 控制等一系列功能。


(2)高度非过程化 用户无需了解存取路径,用户只需提出“做什么”,而不 必指明“怎么做”。存取路径的选择以及SQL语句的操作过 程由系统自动完成。 (3) SQL语言是一种面向集合的语言,每个命令的操作对 象是一个或多个关系,结果也是一个关系。 (4)以统一的语法结构提供两种使用方式——自含式和嵌 入式 自含式语言可以独立使用交互命令,适用于终端用户、 应用程序员和DBA; 嵌入式语言使其嵌入在高级语言中使用,供应用程序员 开发应用程序。

数据库系统概论:第4章 关系数据库标准语言——SQL语言1

数据库系统概论:第4章 关系数据库标准语言——SQL语言1
26
4)删除完整性约束
例:删除“Height”属性列上的CHECK约束。 ALTER TABLE Student DROP
CONSTRAINT Chk1;
27
5)删除属性列
例:删除Student表中新增加的“Height”属性列。 ALTER TABLE Student DROP COLUMN Height;
2
2、SQL语言应用情况
(1) Oracle、Sybase、Informix、Ingres、 DB2、SQL Server、Rdb等大型数据库管理系统 实现了SQL语言; (2) Dbase、Foxpro、Acess等PC机数据库管理 系统部分实现了SQL语言; (3)可以在HTML(Hypertext Markup Language, 超文本标记语言)中嵌入SQL语句,通过WWW访 问数据库; (4)在VC、VB、Delphi、PB也可嵌入SQL语句。
/*外键约束*/ Credit NUMBER);
21
例3:建立一个学生选课表SC,所有约束条件均为表
级完整性约束。
CREATE TABLE SC
( Sno CHAR(8),
Cno CHAR(8),
Grade NUMBER,
PRIMARY KEY(Sno,Cno),
/*主键约束*/
FOREIGN KEY(Sno) REFERENCES Student(Sno)
25
3)增加完整性约束
例:给Student表中“Height”属性列增加一 个CHECK约束,要求学生的身高要超过140厘 米才行。 ALTER TABLE Student ADD CONSTRAINT Chk1 CHECK(Height>140);

关系数据库语言SQL(ch)

关系数据库语言SQL(ch)
RIGHT JOIN(RIGHT OUTER JOIN):返回右表 中的所有行,以及左表中满足连接条件的行。如果 左表中没有匹配的行,则返回NULL。
LEFT JOIN(LEFT OUTER JOIN):返回左表中的 所有行,以及右表中满足连接条件的行。如果右表 中没有匹配的行,则返回NULL。
FULL JOIN(FULL OUTER JOIN):返回两个表中 的所有行,无论是否满足连接条件。如果某个表中 没有匹配的行,则返回NULL。
删除自定义函数
使用`DROP FUNCTION`语句删除不再需要的自定义函数。
视图创建及使用场景
01
02
03
04
创建视图
使用`CREATE VIEW`语 句定义视图名称、列名 和查询语句,将复杂的 SQL查询封装为可重用的 视图。
使用视图
在SQL查询中,通过视图 名称引用视图,简化查 询语句的编写。
修改表名
使用`ALTER TABLE`语句修改表 的名称。
删除数据库和表
删除数据库
使用`DROP DATABASE`语句删除现有的数据库 ,需要指定数据库名称。
删除索引
使用`DROP INDEX`语句删除现有的索引,需要 指定索引名。
删除表
使用`DROP TABLE`语句删除现有的表,需要指定 表名。
关系数据库语言sql(ch)
目录
• SQL语言概述 • 数据定义语言(DDL) • 数据操纵语言(DML) • 数据查询语言(DQL) • 数据控制语言(DCL) • 存储过程与触发器 • 函数与视图 • SQL优化与性能提升
01 SQL语言概述
SQL语言定义
1
SQL(Structured Query Language,结构化查 询语言)是用于管理关系数据库的标准编程语言。

第03章-关系数据库标准语言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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例:建立图书管理的相关基表
CREATE TABLE Borrows
(CardNo INTEGER NOT NULL UNIQUE,
Name CHAR(10), Dept CHAR(20));
CREATE TABLE Books
目前仍被不断扩充 介于关系代数和关系演算之间,三者可相互
转换
第3页 2018/8/11
SQL的特点

综合统一:

集DDL、DML、DCL功能于一体,可独立完成数据库 生命周期中的全部活动,语言风格统一 用户只需提出“做什么”,而无需指明“怎么做 ” 操作对象、查询结果、更新数据均可以是元组的集合

定义基表
数据类型:

不同的数据库系统有自己的数据类型规定,但一般都包 括INTEGER, FLOAT, CHAR(n), VARCHAR(n)等 列级完整性约束条件:涉及表的某一列


完整性约束条件

如对数据类型的约束,对数据格式的约束,对取值范围或集合的 约束,对空值NULL(空值,不知道或不能用的值)的约束,对取 值的唯一性UNIQUE约束,对列的排序说明等 如订货关系中规定发货量不得超过订货量,如教授工资不得低于 1000元等
• SQL-92以后版本中,一个属性若有 PRIMARY KEY声明则隐含有NOT NULL约束
第11页 2018/8/11
例:建立学生管理的相关基表
CREATE TABLE Student (Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20) UNIQUE, Ssex CHAR(1), Sage INTEGER, CREATE TABLE Course Sdept CHAR(15)); (Cno CHAR(8) NOT NULL UNIQUE,
ห้องสมุดไป่ตู้
表级完整性约束条件:涉及表的一个或多个列

第9页 2018/8/11
SQL支持的数据类型

SMALLINT 半字长的整数 INT 全字长的整数 FLOAT 浮点数 CHAR(n) 长度为n的定长字符串 VARCHAR(n) 最大长度为n的变长字符串 DEC(p,q) 十进制数,共p位,小数点后有q位 DATE 日期型, 格式YYYY-MM-DD
关系数据库标准语言 SQL
要点
SQL语言简介
SQL语言及其使用方式
第2页 2018/8/11
3.1 SQL概述
Query Language, 1974年提出 关系数据库的国际标准语言
Structured

大多数数据库均用SQL作为共同的数据存取语 言和标准接口,实现不同数据库系统之间的互 操作
Cname CHAR(20),
Cpno INTEGER, Ccredit INTEGER); CREATE TABLE SC (Sno CHAR(5) NOT NULL UNIQUE, Cno CHAR(8) NOT NULL UNIQUE,
第12页 2018/8/11
Grade INTEGER);


TIME 时间型,格式为HH.MM.SS
TIMESTAMP 日-时戳(日期加时间)
第10页 2018/8/11
完整性约束
CREATE

TABLE的完整性约束


NOT NULL 属性值禁止为空 UNIQUE 取值唯一 PRIMARY KEY (A1, ..., An) 主码--若干属性列 CHECK(P) P为条件表达式
SQL 视图1 基本表1 视图2
外模式
基本表2
基本表3
基本表4 模式
第5页 2018/8/11
存储文件1
存储文件2
内模式
3.2 数据定义
SQL的数据定义语言(DDL)
操作方式 操作对象 模式 创建
CREATE SCHEMA
删除
DROP SCHEMA
修改
基表
视图 索引
第6页 2018/8/11
CREATE TABLE
CREATE SCHEMA TEST AUTHORIZATION ZHANG
第7页 2018/8/11
CREATE TABLE TAB1(COL1 SMALLINT, COL2 INT);
模式删除
DROP SCHEMA <模式名> <CASCADE | RESTRICT> 其中, CASCADE和RESTRICT两者必选其一 CASCADE(级联),表示在删除模式的同时把该模式中的 所有的数据库对象全部一起删除。
SQL语言的基本概念

SQL支持关系数据库的三级模式结构



存储文件:组成关系数据库的内模式,对用户透明 基表(Base Table):组成关系数据库的模式,一个关系对应一个基表, 一或多个基表对应一个存储文件 视图(View):组成关系数据库的外模式,从一个或多个基表中导出, 不独立存储在数据库中
RESTRICT(限制),表示如果该模式中已经定义了下属 的数据库对象,则拒绝该删除语句的执行。
例如:
DROP SCHEMA ZHANG CASCADE;
第8页 2018/8/11
CREATE TABLE <表名> ( <列名><数据类型>[列级完整性约束] [, <列名><数据类型>[列级完整性约束]]… [, <表级完整性约束>] );

高度非过程化:



面向集合的操作方式:

提供两种使用方式:

独立式、嵌入式
SQL功能
数据查询 数据定义 数据操纵
关键动词
SELECT CREATE, DROP, ALTER INSERT, UPDATE, DELETE GRANT, REVOKE
语言简捷,易学易用
第4页 2018/8/11
数据控制
CREATE VIEW CREATE INDEX
DROP TABLE
DROP VIEW DROP INDEX
ALTER TABLE
模式的定义与删除
定义模式
CREATE SCHEMA <模式名> AUTHORIZATION <用户名> 例如: CREATE SCHEMA “S-T” AUTHORIZATION WANG; 注意:要创建模式,调用该命令的用户必须拥有DBA权限, 或者获得了DBA授予的CREATE SCHEMA的权限 定义模式实际上定义了一个命名空间,在这个空间中可以进 一步定义该模式包含的数据库对象,例如基本表,视图等。
相关文档
最新文档