SQL数据定义功能
课程号 Cno 1 2 3 4 5 课程名 Cname 数据库 数学 信息系统 操作系统 数据结构 1 6 7 先行课 Cpno 5 学分 Ccredit 4 2 4 3 4
6 7
数据处理 PASCAL语言 6
2 4
SC ( Sno , Cno , Grade )
数据示例
SC
学 号 Sno 95001 95001 95001 95002 95002 课程号 Cno 1 2 3 2 3 成 绩 Grade 92 85 88 90 80
2. 高度非过程化
用SQL进行数据操作,只要提出“做什么”,而无 须指明“怎么做”,因此无须了解存取路径。
3. 面向集合的操作方式
独立语言和嵌入式语言
操作的对象及结果都是元组的集合
4. 以同一种语法结构提供两种使用方法 5. 语言简洁,易学易用
功能强、完成核心功能只用了9个动词。
核心功能只有9个动词
CREATE TABLE Course ( Cno CHAR(4) PRIMARY KEY , Cname CHAR(40) , Cpno CHAR(4) , Ccredit SMALLINT );
[例] 建立一个“学生选课”表SC, 它由学号Sno、课程号Cno,修课 成绩Grade组成,其中(Sno, Cno) 为主码。
学 号 Sno 95001 姓 名 Sname 李勇 性 别 Ssex 男 年 龄 Sage 20 所在系 Sdept CS
95002
95003 95004
刘晨
王敏 张立
女
女 男
19
18 19
IS
MA IS
Course ( Cno , Cname , Cpno , Ccredit )
数据示例
Course
<表名>:要修改的基本表 ADD子句:增加新列和新的完整性约束条件 DROP子句:删除指定的完整性约束条件 ALTER COLUMN子句:用于修改列名和数据类型
修改基本表举例
不论基本表中原来是否 已有数据,新增加的列 一律为空值。
[例]向Student中增加“入学时间”列
ALTER TABLE Student ADD S_entrance DATE;
INT
SMALLINT
DECIMAL(p[, s])
REAL(n)
FLOAT(n)
DATE TIME TIMESTAMP
(双字长浮点数)取决于机器精度的浮点数
(四字长浮点数)精度至少为n的浮点数 日期型,格式为YYYY―MM―DD 时间型,格式为HH.MM.SS 日期加时间
[例] 建立一个“学生”表Student,它由学号 Sno、学生姓名Sname、性别Ssex、年龄 Sage、所在系Sdept组成,其中Sno为主码。
SQL的动词
SQL功能 数据查询 数据定义 SELECT CREATE,DROP,ALTER 动词
数据操纵
数据控制
INSERT,UPDATE,DELETE
GRANT,REVOKE
学生课程数据库 Student(Sno , Sname , Ssex , Sage , Sdept)
数据示例
Student
SQL概述
SQL(Structured Query Language), 即结构化查询语言,是关系数据库的标 准语言, SQL是一个通用的、功能极强 的关系数据库语言。其功能并不仅仅是 查询。当前,几乎所有的关系数据库系 统软件都支持SQL,许多软件厂商对SQL 基本命令集还进行了不同程度的扩充和 修改。
CREATE TABLE SC ( Sno CHAR(9) , Cno CHAR(4) , Grade SMALLINT, PRIMARY KEY (Sno, Cno)
);
修改基本表
(1)语句格式 ALTER TABLE <表名> [ ADD <新列名> <数据类型> [ 完整性约束 ] ] [ DROP <完整性约束名> ] [ALTER COLUMN <列名> <数据类型> ]
基本表的定义、删除与修改
1.定义基本表
CREATE TABLE <表名>
(<列名> <数据类型>[ <列级完整性约束条件> ] [,<列名> <数据类型>[ <列级完整性约束条件>] ] … [,<表级完整性约束条件> ] ); <表名>:所要定义的基本表的名字 <列名>:组成该表的各个属性(列) <列级完整性约束条件>:涉及相应属性列的完整性约 束条件 <表级完整性约束条件>:涉及一个或多个属性列的完 整性约束条件
定义基本表(续)
常用完整性约束 主码约束: PRIMARY KEY 唯一性约束:UNIQUE 非空值约束:NOT NULL
定义基本表(续)
数据类型
数据类型
CHAR(n) VARCHAR(n) 长度为n的定长字符串 Nhomakorabea含义
最大长度为n的变长字符串
长整数 短整数 定点数, 共p位(不包括符号、 小数点), 或NUMERIC(p[,s])其中小数点后s位, s=0时可省略
SQL的产生与发展
SQL是在1974年提出,并在IBM公司研制 的关系数据库管理系统原型System R上实 现。 由于SQL简单易学,功能丰富,深受用户及 计算机工业界欢迎,因此被数据库厂商所采 用。 SQL作为国际标准语言已成为数据库领域中 的主流语言。
SQL的特点
1. 综合统一
SQL集数据定义、数据操纵、数据控制功能于一体
休息一会儿。。。
CREATE TABLE Student ( Sno CHAR(9) PRIMARY KEY , Sname CHAR(20) UNIQUE , Ssex CHAR(2) , Sage SMALLINT , Sdept CHAR(20) );
[例] 建立一个“课程”表Course,它由课程号 Cno、课程名Cname、先行课号Cpno、学分 Ccredit组成,其中Cno为主码。
S_entrance ;
4.删除基本表
DROP TABLE < 表 [<CASCADE|RESTRICT>];
基本表删除
名
>
数据、表上的索引都删除
删除基本表时,系统会从数据字典中删去有 关该基本表及其索引的描述
[例] 删除基本表student drop table student ;
下课了。。。
[例]将年龄的数据类型由字符型改为整数 ALTER TABLE Student 修改原有的列定义有可 ALTER COLUMN Sage INT; 能会破坏已有数据 [例]增加课程名称必须取唯一值的约束条件
ALTER TABLE Course ADD UNIQUE(Cname);
修改基本表举例
[例] 删除student表中S_entrance属性列 ALTER TABLE Student Drop Column