华科数据库系统原理第三章.pptx
文本预览下载声明
第3章 关系数据库标准语言SQL;4、QBE(Qnery By Example)
① 研制:IBM(1975年提出,1978年IBM370上实现)
② 特征:域关系演算语言(表格界面)
5、SQL(Structured Query Language)
① 研制:IBM,…
② 特征:介于关系代数与关系演算之间的语言 ;SQL发展里程碑;1982;1992;SQL的产生;SQL标准;SQL-89;SQL92;SQL3;3.2 SQL
3.2.1 概述
1、特点
① 一体化
DDL—— Data Description Language
DML——Data Manipulate Language
DCL—— Data Control Language
(三种功能可在系统不间断的情况下交替执行;
风格统一)
② 两种使用方式(交互、嵌入);12;13;交互式1;交互式2;嵌入式
Main(){
...
exec sql begin declare section;
char co[10];
int id;
exec sql end declare section;
…
exec sql select company_name
from customer
where id = :id
into co;
…
};③统一结构
④高度非过程化
用户无需了解与涉及存取路径
⑤语言简洁(方便易学)
标准动词7个:create, alter,select, delete, update, insert, grant
扩充2个:drop、revoke;基本术语;基本术语(续);2、功能
① 定义;② 查询;③ 更新;④ 控制(安全、完整性、一致性)
DDL DML DCL
3、支持三级模式;3.2.2 数据库定义与维护;例子:创建课程种类表(类型编号、类型名称),
CREATE TABLE [dbo].[kczlb] (
[zlbh] [char] (2) NOT NULL PRIMARY KEY,
[kczlmc] [char] (2) NOT NULL UNIQUE
)
这里主码只含有一个属性,可以直接在表的定义语句中指定该属性为主码。;例子:创建关系“教室表”,拥有属性:“教室编号、教室名称、教学楼编号、教室容量、教室资源配置、使用对象类型”。
CREATE TABLE [dbo].[js] (
[jsbh] [char] (5) NOT NULL ,
[jsmc] [varchar] (30) NULL ,
[jxlbh] [char] (4) NOT NULL ,
[jsrl] [int] NOT NULL ,
[jszypz] [char] (2) NOT NULL ,
[sydxlx] [char] (2) NULL
) ;例:定义选课关系SC:
学生编号S#, char 4; 课程编号C#, char 4, 成绩Grade smallint;
主关键字:S#,C#; 外键: 关系S的主码S#, 关系C的主码C#;
约束:0=成绩=100 或者为Null;三、表修改
1、格式(增加列)
ALTER Table 表名
add 列名 类型
例:ALTER Table car
add [emission] [float] NOT NULL;
例:ALTER Table student
add 性别 char(2)
2、功能:给基本表增加一个属性
3、说明:(可增加多个属性);例:BEGIN TRANSACTION;
ALTER Table student add
[city] [varchar] (20) NOT NULL ,
[province] [varchar] (20) NOT NULL ;
GO;
COMMIT;;修改表(删除列);修改表(续);一个复杂的例子(涉及到已有的数据)
将教室表中的教室名称列从30位变长字符串改为20位变长字符串。
BEGIN TRANSACTION;--开始事务
CREATE TABLE dbo.Tmp_js--创建临时表
(
[jsbh] [char] (5) NOT NULL ,
[jsmc] [varchar] (20) NULL ,
[jxlbh] [char] (4) NOT NULL ,
[jsrl] [int] NOT NULL ,
[jszypz] [char] (2) NOT NULL ,
[sydxlx] [char] (2) NULL );
显示全部