数据库原理概论Ⅱ-SQL
结构化查询语言(Structured Query Language)是关系数据库的一种通用语言。
SQL是在关系代数更高级的抽象,可以用比较类似英文的语法实现我们要查询的数据等等,所以一条SQL可以翻成不同的关系代数,而功能是相同的,这也就造成了不同SQL的写法效率相差很多。
在本文中我们并不考虑SQL效率的问题,而只总结常用的SQL的用法。
借用书上的例子来讲解,首先先定义一个学生-课程模式,包含以下三个表
- 学生表:Student(Sno, Sname, Ssex, Sage, Sdept)
- 课程表:Course(Cno, Cname, Cpno, Ccredit)
- 学生选课表:SC(Sno, Cno, Grade)
Student:
学号Sno | 姓名Sname | 性别Ssex | 年龄Sage | 所在系Sdept |
---|---|---|---|---|
201215121 | 李勇 | 男 | 20 | CS |
201215122 | 刘晨 | 女 | 19 | CS |
201215123 | 王敏 | 女 | 18 | MA |
201215125 | 张立 | 男 | 19 | IS |
Course:
课程号Cno | 课程名Cname | 先修课Cpno | 学分Ccredit |
---|---|---|---|
1 | 数据库 | 5 | 4 |
2 | 数学 | 2 | |
3 | 信息系统 | 1 | 4 |
4 | 操作系统 | 6 | 3 |
5 | 数据结构 | 7 | 4 |
6 | 数据处理 | 2 | |
7 | PASCAL语言 | 6 | 4 |
SC:
学号Sno | 课程号Cno | 成绩Grade |
---|---|---|
20125121 | 1 | 92 |
20125121 | 2 | 85 |
20125121 | 3 | 88 |
20125122 | 2 | 90 |
20125122 | 3 | 80 |
一、数据定义
1.1 模式的定义和删除
一个数据库可以建立多个模式,一个模式下通常包括多个表、视图和索引等数据库对象
定义一个模式实际上是定义了一个命名空间,在该命名空间下可以定义表,视图等
1.定义模式
CREATE SCHEMA <模式名> AUTHORIZATION <用户名>;
例 :为用户ZHANG创建一个模式TEST,并在其中定义一个表TAB1
CREATE SCHEMA TEST AUTHORIZATION ZHANG
CREATE TABLE TAB1( COL1 SMALLINT,
COL2 INT,
COL3 CHAR(20),
);
2.删除模式
DROP SCHEMA <模式名> <CASADE | RESTRICT>;
选择级联(CASADE)在删除模式的同时删除该模式下所有的表、视图等
选择限制(RESTRICT)只有在模式下没有任何对象时才可以删除
例:删除模式TEST,并且同时删除定义的表TAB1
DROP SCHEMA ZHANG CASCADE;
1.2 基本表的定义、删除与修改
1.定义基本表
CREATE TAB