SQL数据定义功能
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基本表的定义、删除与修改
1.定义基本表
CREATE TABLE <表名>
(<列名> <数据类型>[ <列级完整性约束条件> ] [,<列名> <数据类型>[ <列级完整性约束条件>] ] … [,<表级完整性约束条件> ] ); <表名>:所要定义的基本表的名字 <列名>:组成该表的各个属性(列) <列级完整性约束条件>:涉及相应属性列的完整性约 束条件 <表级完整性约束条件>:涉及一个或多个属性列的完 整性约束条件
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为主码。
休息一会儿。。。
CREATE TABLE SC ( Sno CHAR(9) , Cno CHAR(4) , Grade SMALLINT, PRIMARY KEY (Sno, Cno)
);
修改基本表
(1)语句格式 ALTER TABLE <表名> [ ADD <新列名> <数据类型> [ 完整性约束 ] ] [ DROP <完整性约束名> ] [ALTER COLUMN <列名> <数据类型> ]
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是在1974年提出,并在IBM公司研制 的关系数据库管理系统原型System R上实 现。 由于SQL简单易学,功能丰富,深受用户及 计算机工业界欢迎,因此被数据库厂商所采 用。 SQL作为国际标准语言已成为数据库领域中 的主流语言。
SQL的特点
1. 综合统一
SQL集数据定义、数据操纵、数据控制功能于一体
2. 高度非过程化
用SQL进行数据操作,只要提出“做什么”,而无 须指明“怎么做”,因此无须了解存取路径。
3. 面向集合的操作方式
独立语言和嵌入式语言
操作的对象及结果都是元组的集合
4. 以同一种语法结构提供两种使用方法 5. 语言简洁,易学易用
功能强、完成核心功能只用了9个动词。
核心功能只有9个动词
定义基本表(续)
常用完整性约束 主码约束: PRIMARY KEY 唯一性约束:UNIQUE 非空值约束:NOT NULL
定义基本表(续)
数据类型
数据类型
CHAR(n) VARCHAR(n) 长度为n的定长字符串
含义
最大长度为n的变长字符串
长整数 短整数 定点数, 共p位(不包括符号、 小数点), 或NUMERIC(p[,s])其中小数点后s位, s=0时可省略
SQL的动词
SQL功能 数据查询 数据定义 SELECT CREATE,DROP,ALTER 动词
数据操纵
数据控制
INSERT,UPDATE,DELETE
GRANT,REVOKE
学生课程数据库 Student(Sno , Sname , Ssex , Sage , Sdept)
数据示例
Student
学 号 Sno 95001 姓 名 Sname 李勇 性 别 Ssex 男 年 龄 Sage 20 所在系 Sdept CS
95002
95003 95004
刘晨
王敏 张立
女
女 男
ຫໍສະໝຸດ Baidu
19
18 19
IS
MA IS
Course ( Cno , Cname , Cpno , Ccredit )
数据示例
Course
S_entrance ;
4.删除基本表
DROP TABLE < 表 [<CASCADE|RESTRICT>];
基本表删除
名
>
数据、表上的索引都删除
删除基本表时,系统会从数据字典中删去有 关该基本表及其索引的描述
[例] 删除基本表student drop table student ;
下课了。。。
<表名>:要修改的基本表 ADD子句:增加新列和新的完整性约束条件 DROP子句:删除指定的完整性约束条件 ALTER COLUMN子句:用于修改列名和数据类型
修改基本表举例
不论基本表中原来是否 已有数据,新增加的列 一律为空值。
[例]向Student中增加“入学时间”列
ALTER TABLE Student ADD S_entrance DATE;
课程号 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
CREATE TABLE Course ( Cno CHAR(4) PRIMARY KEY , Cname CHAR(40) , Cpno CHAR(4) , Ccredit SMALLINT );
[例] 建立一个“学生选课”表SC, 它由学号Sno、课程号Cno,修课 成绩Grade组成,其中(Sno, Cno) 为主码。
SQL概述
SQL(Structured Query Language), 即结构化查询语言,是关系数据库的标 准语言, SQL是一个通用的、功能极强 的关系数据库语言。其功能并不仅仅是 查询。当前,几乎所有的关系数据库系 统软件都支持SQL,许多软件厂商对SQL 基本命令集还进行了不同程度的扩充和 修改。
[例]将年龄的数据类型由字符型改为整数 ALTER TABLE Student 修改原有的列定义有可 ALTER COLUMN Sage INT; 能会破坏已有数据 [例]增加课程名称必须取唯一值的约束条件
ALTER TABLE Course ADD UNIQUE(Cname);
修改基本表举例
[例] 删除student表中S_entrance属性列 ALTER TABLE Student Drop Column