您当前的位置:《数据库原理及应用》听课笔记:20
《数据库原理及应用》听课笔记:20
7种对基表修改命令
1、增加列
ALTER TABLE[<表的创建者名>]<表名>
ADD<列名><类型>;
如果添加一个列,在内存中只能是拷贝到其他地方,然后增加列。
2、DROP TABLE<表名>;       //删基表
3、SQL 不要求每表都定义主键,需时可补充定义
ALTER TABLE<表名>
ADD PRIMARY KEY(<列名表>);
注意:主键列名必须满足NOTNULL和唯一性条件(在元组中的取值不能重复)
4、定义了主键,系统自动在主键上建索引,插入新元组时,进行主键唯一性检查。在大批插入时,严重影响速度,SQL提供命令,可暂时撤销主键定义。
ALTER TABLE<表名>
DROP PRIMARY KEY; //撤销主键,以后在加。。
索引是顺序索引,如果插入元组,则会不断的进行重建索引的动作,所以频繁插入删除,不适合于建立索引,应该用(对阵数?),像大型的动态的。
5、补充定义外键
ALTER TABLE<表名-1>
ADD FOREIGN KEY
[<外键名>](<列表名>)
REFERENCES<表名-2>
[ON DELETE {RESTRICT/CASCADE/SETNULL}]
[]为选项 {}表示三选一    缺省则自动用RESTRICT
6、撤销外键
ALTER TABLE<表名>
DROP<外键名>
7、定义和撤销别名
别名(alias)作用有二:方便输入和引用,如使用他人创建的表时,SQL要求用“表创建者.表名”形式的表名,麻烦,为之定义别名简化,各用户对属性名习惯不一,如工资,工薪。格式如下:
CREATE SYNONYM<标识符> //别名
FOR<表创建者>.{<表名>/视图名}; //原名
DROP SYNONYM<标识符>; //撤销别名
五、索引的建立和撤销 
例:
CREATE INDEX H-INDEX //H-INDEX为索引名
ON STUDENT(HEIGHT);        //在STUDENT上为HEIGHT建索引
CREATE UNIQUE INDEX SC-INDEX //UNIQUE唯一的,必须排序。
ON SC(SNO DESC,CNO ASC); //DESC下降排序和ASC上升排序
DROPINDEX H-INDEX;
说明:
CREATE INDEX 索引名 ON 表名(列名);基本索引语言结构。
一索引属性值只能对应一个元组,即此索引属性为主关键字或候补关键字。一般主关键字均建索引,插入时作主键唯一性检查。
上例2中索引属性为2个,但索引还建一套排序:SNO为降序,SNO固定时CNO增序排列。

第三章SQL 查询和数据操作语言QL&DML in SQL
1、
NOT
AND
OR
t在R中 t IN R
t不在R中 t NOT IN R
S包含R S CONTAINS R
S并R S UNION R
S交R S INTERSECT R
S-R S MINUS R
2、Mapping operation 
SELECT  FROM   WHERE
mapping block映射块
SEQUEL最大特色:数据库操作以选择、投影、连接为核心运算
格式与含义:
SELECT A1,A2,.....AN
FROM   R
WHERE   B1运算符b1B2运算符b2。。。。BM运算符bM
R——K度关系名
Ai——R中属性
Bj——为R中第j属性名(或列名)
bj——常量
运算符j

SELECT 指出要投影(查询)的项目,一般是属性(列)名,也可以是表达式。
利用表达式查询未存储,但可导出的数据。
为构造表达式SQL提供+,-,*,/四个运算符和几个聚合函数(对关系的集合运算)
FROM  指出被操作的关系名
WHERE 指出执行选择的条件表达式
SELECT,FROM每个SQL查询子句必须。其他子句任选。
别名:可为表或视图取别名,别名只在本语句中有效。
SELECT子句可有DISTINCT(唯一的)任选项要求去除结果中的重复元组。
SELECT子句中‘*'代替列名表示查询所有列。
二、SQL Statement and Example例子



收藏状态
收藏本课程的同学
相关课程