关系型数据库标准语言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语言的数据定义、数据查询、数据更新 功能
关系数据库标准语言SQL
关系数据库标准语言SQL(总分:120.00,做题时间:90分钟)一、{{B}}选择题{{/B}}(总题数:30,分数:60.00)1.在SELECT-SQL语句中,可以删除表的是 ______ 。
(分数:2.00)A.DELETEB.DROP √C.ALTERD.DISTINCT解析:2.用SQL语句建立表时将属性定义为主关键字,应使用短语 ______。
(分数:2.00)A.FREEB.PRIMARY KEY √C.CHECKD.UNIQUE解析:3.在第27题表中,将“工资”字段定义有效性检查及错误信息的是 ______。
(分数:2.00)A.ALTER TABLE职工ALTER工资; CHECK工资>0 ERROR“工资应为正数”B.ALTER TABLE职工ALTER工资; SET CHECK工资>0 ERROR工资应为正数C.ALTER TABLE职工ALTER工资; SET CHECK工资>0ERROR“工资应为正数”√D.ALTER TABLE职工ALTER工资; CHECK工资>0 ERROR“工资应为正数”解析:4.SQL的SELETE语句中,限定分组条件的短语是 ______。
(分数:2.00)A.ORDER BYB.WHEREC.GROUP BYD.HAVING √解析:5.SQL语句中的SELECT命令建立表之间联系的短语为 ______ 。
(分数:2.00)A.UNIOEB.GROUP BYC.JOIN √D.FROM解析:6.SQL语言是 ______ 的语言,易学习。
(分数:2.00)A.过程化B.非过程化√C.格式化D.导航式解析:7.在SELECT-SQL语句中,测试列值是否为空值的运算符是 ______。
(分数:2.00)A.IS NULL √B.EXISTSC.NOTD.NOT IN解析:8.在SQL的计算查询中,用于统计的函数是 ______ 。
(分数:2.00)A.AVG()B.SUM()C.COUNT() √D.COUNT解析:9.SQL命令中建立表的命令是 ______ 。
关系数据库标准语言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处理时,各子句的执行次序为()。
关系数据库标准语言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.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的定义(表框架)连同它 的所有元组、索引以及由它导出的所有视图全部删除,并释放相 应的存储空间。
第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语言》
[DataName!]TableName [[AS] Local_Alias] [ON JoinCondition]…] [WHERE JoinCondition [AND JoinCondition…] [AND|OR FilterCondition [AND|OR FilterCondition…]]] [ORDER BY Order_Item [ASC|DESC][,Order_Item [ASC|DESC]…]] [GROUP BY GroupColumn [,GroupColumn…] [HAVING FilterCondition]] [TO SCREEN|FILE FileName [ADDITIVE]|PRINTER [PROMPT]] [INTO TABLE TableName|CURSOR CursorName|ARRAY ArrayName]
(1)简单条件查询
【例5-5】在Zgjk.dbf表中,查询基本工资在1000元以上(含 1000元)职工的姓名和部门(要求不重复显示)。
在命令窗口中键入:
SELECT DISTINCT 姓名,部门,基本工资 FROM Zgjk WHERE 基本工资>=1000
(2)复合条件查询
【例5-6】在Zgjk.dbf表中,查询家电部门已婚的职工的信息。
1000 AND 1200 该命令等价于:
SELECT * FROM Zgjk WHERE 基本工资>=1000 AND ;
基本工资<=1200
3.对查询结果进行排序
在SELECT-SQL命令中,使用ORDER BY子句,可以使查询结果按 指定要求排序。 命令格式:SELECT <列名表> FROM <表名> [WHERE <条件>]; ORDER BY <排序依据> [ASC|DESC] 说明: 排序依据:备注型数据和通用型数据不能作为排序依据。排序依据 可以是字段名、由AS子句命名的列标题(在ORDER BY子句中,不能 直接使用表达式和函数)和列序号(即该列在查询结果中的位置1,2, 3…)。 排序方式:ASC表示查询结果按照排序依据项的值升序排列, DESC表示查询结果按照排序依据项的值降序排列。默认排序方式为 ASC。 排序规则:数值按大小顺序,字母按“ a ” < “ A ” < “ b ” < “ B ” … 的顺序,汉字按内码值顺序,日期按前后顺序,逻辑型数据“假”在 前“真”在后。
关系数据库查询语言SQL
关系数据库查询语⾔SQL授课⽅式:以下所有的例⼦都在sql server 中进⾏现场调试其执⾏结果,或者让学⽣上讲台练习,让学⽣体会其具体的含义第四章关系数据库查询语⾔SQL(8学时)第1节关系数据库标准语⾔SQL ——查询部分⼀、SQL概述1.SQL标准SQL(Structured Query Language):结构化数据库查询语⾔。
SQL作为⼀个ANSI标准,现在最新的标准是SQL99!是介于关系代数和关系演算之间的结构化查询语⾔,功能包括数据查询(Data Query )、数据操纵(Data Manipulation)、数据定义(Data Definition)、数据控制(Data Control)2.SQL的特点1)综合统⼀SQL语⾔集数据定义语⾔DDL、数据操纵语⾔DML、数据控制语⾔DCL功能于⼀体,语⾔风格统⼀。
可独⽴完成数据库⽣命周期中的全部活动,包括:定义关系模式、建⽴数据库、插⼊数据、查询、更新、维护、数据库重构、数据库安全性控制等⼀系列操作要求,为数据库应⽤系统开发提供了良好的环境。
由于关系模型中实体间连续军⽤关系表⽰,这种数据结构单⼀性带来了数据操作的统⼀,查找、插⼊、删除、修改等每⼀种操作只需要⼀种操作符,从⽽克服了⾮关系系统由于信息表⽰⽅式多样性带来的操作复杂性。
2)⾼度⾮过程化SQL语⾔只要提出“做什么”,⽆须指明“怎么做”!!⽤户⽆须了解存取路径,存取路径的选择及SQL语句的操作过程由系统⾃动完成。
减轻了⽤户的负担,提⾼了数据独⽴性。
3)⾯向集合的操作⽅式Sql 语⾔采⽤集合操作⽅式,不仅操作对象、查询结果可以是元组集合,⽽且⼀次插⼊、删除、更新操作的对象可是元组的集合。
4)以同⼀种语法结构提供两种使⽤⽅式既是⾃含式语⾔,⼜是嵌⼊式语⾔。
⾃含式语⾔:能独⽴的⽤于联机交互的使⽤⽅式,⽤户可以在终端键盘上直接键⼊SQL 命令对数据库进⾏操作。
在SQL SERVER 2000种现场演⽰SQL语句的操作。
第6章 关系数据库标准语言SQL
出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; 嵌入式语言使其嵌入在高级语言中使用,供应用程序员 开发应用程序。
数据库第三章关系数据库标准语言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)综合统一。
数据库系统概论:第4章 关系数据库标准语言——SQL语言1
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);
第6章 关系数据库标准语言SQL
关系数据库标准语言SQL1.1SQL概述1.11 SQL的标准化历程SQL是1974年提出的;IBM公司首先实现了关系数据库管理系统;1987年SQL被作为国际标准。
1.12 SQL的功能特点SQL集数据查询,数据操作,数据定义和数据控制功能于一体。
具有以下特点:综合统一:非关系模型的数据语言一般都分为模式数据定义语言,外模式数据定义语言,与数据存储有关的描述语言以及数据操作语言,分别用于定义模式,外模式,内模式和进行数据的存取和处理。
而SQL则集数据定义语言,数据操作语言,数据控制语言的红能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动。
高度非过程化:非关系数据模型的数据操作语言是面向过程的语言,使用这样的语言进行数据操作,必须制定存取路径。
而SQL进行数据操作,用户只需提出“做什么”,而不用指明“怎么做”,因此用户无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。
面向集合的操作方式:非关系模具模型采用的是面向标记的操作方式,操作的对象都是一条记录。
而SQL语言采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入,删除,更新操作的对象也可是是元组的集合。
灵活的使用方式:SQL既是自含式语言,又是嵌入式语言。
作为自含式语言,他能够独立的用联机交互的使用方式,用户可以在键盘上直接键入SQL命令对数据库进行操作;作为嵌入式语言,SQL语句能够嵌入到高级语言程序中,供程序员设计程序时使用。
语言简易,易学易用,功能强:SQL功能极强,具有完备的表达能力。
但由于设计巧妙,语言十分简洁,完成数据定义,数据操作,数据控制的核心功能只用了9个动词。
1.13 SQL的基本组成(1)SQL数据库的三级模式结构SQL支持数据库三级模式结构,在SQL中,外模式对应于“视图(View)”和部分基本表,模式对应于基本表“Base Table”,内模式对应于“存储文件”。
一个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)。
[例4-3]建立人事管理数据库rsgl.dbc,并用SQL 命令建立rs.dbf(编号C(4),姓名C(8),身份证号 C(18),性别C(2),出生日期D,基本工资N(9,2), 简历M) 。
代码如下: CLOSE DATABASES ALL &&关闭所有数据库 CREATE DATABASES rsgl &&建立rsgl数据库 CREATE TABLE rs(编号 C(4),姓名 C(8),身份证号 C(18),性别 C(2),; 出生日期 D,基本工资 N(9,2),简历 M) &&在rsgl数据库中创建表rs MODIFY DATABASE &&打开“数据库设计”窗口
2019/5/16 13
3. 删除记录 命令格式: DELETE FROM <表名> [WHERE <条件>] 功能:逻辑删除表中满足条件的记录,即对满足条件的记录做删除标志。 [例4-10] 将表rsb1.dbf中姓名是“陈宏”的记录删除。 代码如下: DELETE FROM rsb1 WHERE 姓名="陈宏" &&做删除标记 SELECT rsb1 LIST PACK &&彻底删除有删除标记的记录 LIST USE
2019/5/16
14
2019/5/16
5
[例4-4] 继续给上例表rs.dbf完成下列操作: ① 增加1个“籍贯C(8)”字段。 ② 将原来的“编号”字段的宽度由4改为6。 ③ 修改“基本工资”字段的有效性规则,要求基本工资不小于200,出错信息提示为“最低 工资额为200元”。 ④ 将“编号”字段设置成主索引字段。 代码如下: OPEN DATABASES rsgl ALTER TABLE rs ADD 籍贯 C(8) &&增加字段 MODIFY STRUCTURE &&查看结构的变化 ALTER TABLE rs ALTER 编号 C(6) &&修改字段的宽度 MODIFY STRUCTURE ALTER TABLE rs ALTER 基本工资 n(9,2) CHECK 基本工资>=200; ERROR "最低工资额为200元" MODIFY STRUCTURE ALTER TABLE rs ADD PRIMARY KEY 编号 TAG bh &&设置成主索引字段 MODIFY STRUCTURE CLOSE DATABASES ALL
2019/5/16
1
4.3.1 SQL数据定义命令
1. 建立表
2. 修改表的结构 3. 删除表
2019/5/16
2
1. 建立表 命令格式: CREATE TABLE | DBF <表名1>[NAME <长表名>] [FREE] (<字段名1> <字段类型>[(<字段宽度>[,<小数位数>])] [NULL|NOT NULL] [CHECK <逻辑表达式1> [ERROR <提示信息1>]] [DEFAULT <表达式1>] [PRIMARY KEY | UNIQUE] [REFERENCES <表名2> [TAG <标记1>]][NOCPTRANS] [,<字段名2> …] [, PRIMARY KEY <表达式2> TAG <标记2>|, UNIQUE <表达式3> TAG <标记3>] [, FOREIGN KEY <表达式4> TAG <标记4> [NODUP] REFERENCES <表名3> [TAG <标记5>]] [, CHECK <逻辑表达式2> [ERROR <提示信息2>]])| FROM ARRAY 数组名 功能:由给定的字段参数建立一个数据表。
2019/5/16
12
2. 更新记录 命令格式: UPDATE [<数据库名!>] <表名> SET <字段名1> = <表达式1> [,<字段名2> = <表达式2> ...] [WHERE <条件>] 功能:更新满足条件的记录,该记录指定字段值由相对应的表达式值来 代替。 [例4-9] 将表rsb.dbf复制成rsb1.dbf,然后对表rsb1.dbf中的职称为 “讲师”的职工基本工资都增加35元。 代码如下: USE RSB LIST COPY TO rsb1 UPDATE rsb1 SET 基本工资=基本工资+35 WHERE 职称="讲师" SELECT rsb1 LIST USE
2019/5/16
4
2. 修改表的结构
增加新的字段
修改原有的字段
(1)增加或修改字段 命令格式: ALTER TABLE <表名>ADD | ALTER [COLUMN] <字段名><字段类型> [(<字段宽度> [,<小数位数>])] [NULL | NOT NULL][CHECK <逻辑表达式> [ERROR <提示信息>]] [DEFAULT <表达式>] [PRIMARY KEY | UNIQUE] [REFERENCES<表名2> [TAG <标记1>]] [NOCPTRANS] [NOVALIDATE] 功能:增加或修改字段
2019/5/16 7
[例4-5] 继续对表rs.dbf完成下列操作: ① 修改“性别”字段的默认值为“男”。 ② 删除“基本工资”字段的有效性规则。 ③ 删除“籍贯”字段。 ④ 将“基本工资”字段改名为“工资”字段。 代码如下: OPEN DATABASES rsgl ALTER TABLE rs ALTER 性别 SET DEFAULT "男" MODIFY STRUCTURE ALTER TABLE rs ALTER 基本工资 DROP CHECK MODIFY STRUCTURE ALTER TABLE rs DROP 籍贯 MODIFY STRUCTURE ALTER TABLE rs RENAME COLUMN 基本工资 TO 工资 MODIFY STRUCTURE CLOSE DATABASES ALL
2019/5/16
9
(2)将表从数据库和磁盘上删除的DROP TABLE命令。 命令格式: DROP TABLE <表名> | <文件名> | ? [RECYCLE] 功能:从数据库和磁盘上将表直接删除掉。 [例4-7] 将rs.dbf表复制rs1.dbf,然后将rs1.dbf添加到rsgl数据库中,然后 再将其从数据库和磁盘中一起删除。 代码如下: CLOSE ALL USE rs COPY TO rs1 &&复制成表rs1.dbf OPEN DATABASES rsgl ADD TABLE rs1 &&添加表rs1.dbf到rsgl.dbc MODIFY DATABASES &&显示数据库 DROP TABLE rs1 &&将表从数据库和磁盘上一起删除 CLOSE DATABASES DIR *.dbf
2019/5/16
6
修改字段
删除字段
(2)设置字段属性 命令格式: ALTER TABLE <表名>ALTER|DROP [COLUMN] <字段名 1> 字段改 [NULL | NOT NULL] 名 [SET DEFAULT <表达式>] [SET CHECK <逻辑表达式>[ERROR <提示信息>]] [DROP DEFAULT] [DROP CHECK] [NOVALIDATE] [RENAME COLUMN <字段名2> TO <字段名3>] 功能:定义、修改、删除字段及有效性规则和默认值。
4.3 关系型数据库标准语言SQL
SQL是Structured Query Language(结构化查询语言)的英文缩写, 它是关系型数据库的标准操作语言,几乎所有的数据库产品都采用和支持该 语言。 SQL是一种综合的、通用的、功能强大的关系数据库语言,它包括数据 定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)、数据 查询语言(DSL)四大部分。 数据定义语言:用于定义、修改和撤消数据库、表对象等。 数据操纵语言:用于数据库中表记录的修改等。 数据控制语言:用于数据访问权限的控制等。 数据查询语言:用于从数据表中查询数据
2019/5/1610ຫໍສະໝຸດ 4.3.2 SQL数据操纵命令
SQL的数据操纵命令主要包括三个部分: 记录的插入 记录的更新 记录的删除
2019/5/16
11
1. 插入记录 命令格式: INSERT INTO <表名> [(<字段名1> [, <字段名2>, ...])] VALUES (<表达式1> [, <表达式2>, ...]) 或 INSERT INTO <表名> FROM ARRAY <数组> | FROM MEMVAR 功能:在表的末尾追加一条新的记录。 [例4-8] 向表rs.dbf表插入一条记录。 代码如下: OPEN DATABASES rsgl INSERT INTO rs(编号,姓名,性别,出生日期) ; VALUE ("0101","李明","男",{^1965/05/06}) LIST CLOSE DATABASES
2019/5/16 8