1. 常用数据类型
数据类型 | 解释 |
INTEGERH 或 INT | 4个字节长度的整数 |
SMALLINT | 2个字节长度的整数 |
NUMERIC(m, n) 或 DECIMAL(m, n) 或 DEC(m, n) | 具有m总位数包括n为小数的定位小数 |
FLOAT(n) | 具有n位二进制精度的浮点数 |
REAL | 4个字节长度的浮点数 |
DOUBLE | 8个字节长度的浮点数 |
CHARACTER(n) 或 CHAR(n) | 具有n个字符空间固定长度的字符串 |
VARCHAR(n) | 具有最大长度为n的字符串 |
BOOLEAN | 布尔代数类型数据 |
DATE | 日期类型数据。根据所用语言而定 |
TIME | 时间类型数据。根据所用语言而定 |
BLOB | 二进制大型对象数据 |
CLOB | 字符串大型对象数据 |
2.数据查询
一般格式
SELECT [ALL|DISTINCT] <目标列表达式> [, <目标列表达式>] ...
FROM <表名或视图名> [, <表名或视图名>...] | (<SELECT语句>) [AS] <别名>
[WHERE<条件表达式>]
[GROUP BY <列名1> [HAVING<条件表达式>]]
[ORDER BY <列名2> [ASC|DESC]]
单表查询
SELECT Sno,SNAME FROM STUDENT
连接查询
SELECT STUDENT.SNO, SNAME
FROM STUDENT, SC
WHERE STUDENT.SNO = SC.SNO AND SC.CNO = '2' AND SC>GRADE > 90
嵌套查询
SELECT SNAME //外层查询
FROM STUDENT
WHERE SNO IN
(
SELECT SNO //内层查询
FROM SC
WHERE CNO = '2'
);
集合查询
SELECT *
FROM STUDENT
WHERE SDEPT = 'CS'
UNION
SELECT *
FROM STUDNET
WHERE SAGE <= 19;
基于派生表表的查询
SELECT SNO, CNO
FROM SC, (SELECT SNO, AVG(GRADE)
FROM SC
GROUP BY SNO
AS AVG_SC(AVG_SNO, AVG_GRADE)
WHERE SC.SNO = AVG_SC.AVG_SNO AND SC.GRADE >= AVG_SC.AVG_GRADE
3.数据更新
插入数据
//插入元组
INSERT
INTO STUDENT(SNO, SNAME, SSEX, SDEPT, SAGE)
VALUES('201215128', '程东','男', 'IS', 18);
//插入子查询结果
INSERT
INTO DEPT_AGE(SDEPT, AVG_AGE)
SELECT SDEPT, AVG(SAGE)
FROM STUDENT
GROUP BY SDEPT
修改数据
UPDATE STUDENT
SET AGE = 22
WHERE SNO = '21215121'
删除数据
DELETE
FROM STUDENT
WHERE SNO = '201215128'
4.视图
与基本表不同,视图不存放相应的数据,它是基本表的投影/窗口
建立视图
CREATE VIEW IS_STUDENT
AS
SELECT SNO, SNAME, SAGE
FROM STUDENT
WHERE SDEPT = 'IS'
删除视图
DROP VIEW IS_STUDENT
DROP VIEW IS_STUDENT CASCADE //级联删除,视图上导出视图时
查询视图
//与基本表操作相似
SELECT SNO, SNAME
FROM IS_STUDENT
WHERE SAGE < 20