SQL:Structured Query Language,1974年Boyce和Chamberlin提出.
数据定义 :CREATE,DROP
数据库查询:SELECT
数据操纵 :INSERT,UPDATE,DELETE
数据控制 :GRANT,REVOKE
一.数据的定义和修改:
1.定义基表
CREATE TABLE 表名 (<列名1 类型[NOT NULL][,列名2 类型[NOT NULL]>…[其他参数]);
关于类型:
INTEGER 全字长的二进制整数.
SMALLINT 半字长的二进制整数.
DECIMAL(p[,q])压缩十进制数,共p位小数点后有q位,15>=p>=q>=0,q=0时可省略.
FLOAT 双字长的浮点数.
CHAR(n) 长度为n的定长字符串.
VARCHAR(n)变长字符串,最大长为n.
2.修改基表
ALTER TABLE 表名 ADD 列名 类型; //增加新列.
3.删除基表
DROP TABLE 表名; //删除基表连同表中记录.
二.视图的定义
1.定义视图
CREATE VIEW 视图名[列名[,列名]…]AS 子查询[WITH CHECK OPTION];
2.视图删除
DROP VIEW 视图名;
三.数据操纵
SELECT [DISTINCT] 选择输出属性表
from 要检索的表名
[WHERE 检索应满足的条件]
[GROUP BY 分组属性表(HAVING 检索条件)]
[ORDER BY 排序属性表];
1. 简单查询
(1).不消除重复元组的检索
SELECT TITLE from BOOKS
(2).消除重复元组的检索
SELECT DISTINCT TITLE from BOOKS
(3).使用”*”全部检索
SELECT * from BOOKS
(4).带表达式的检索
SELECT TITLE , PRICE*3 from BOOKS WHERE TITLE=’操作系统’
(5).要求排序的检索
SELECT CARD-NO,TITLE,DATA from BOOKS
WHERE DATA<1998.7.1 ORDER BY CARD-NO ASC|DESC //升或降
2. 含有各种谓词的检索
COMPARISON, IN, LIKE, NULL, QUANTIFIED, EXISTS, BETWEEN
(1).BETWEEN
SELECT TITLE,SORT-NO,LO-NO from BOOKS WHERE LO-NO
BETWEEN 4 AND 5等价于
SELECT TITLE,SORT-NO,LO-NO from BOOKS WHERE LO-NO
>=4 AND LO-NO<=5
(2).IN 同上例:
SELECT TITLE,SORT-NO,LO-NO from BOOKS WHERE LO-NO
IN(4,5) 此例还可写成:
SELECT TITLE,SORT-NO,LO-NO from BOOKS WHERE LO-NO
=4 OR LO-NO=5
(3).LIKE:找出姓张的情况
SELECT NAME,CARD-NO,DEPT from BOOKS WHERE NAME
LIKE’张%’ //属性名类型一定为CHAR;短线“-”表示此位为一个字符;
“%”表示任意字符串(含空串);其它字符代表自身.
3. 联接查询
(1).等值联接
SELECT BORROWERS.*,LOANS.CARD-NO,LOANS.TITLE
from BORROWERS