SQL Language
数据类型
符号 | 数据类型 |
---|---|
INT | 整数 |
SMALLINT | 短整数 |
DEC(m,n) | 十进制数 |
FLOAT | 浮点数 |
CHAR(n) | 定长字符串 |
VARCHAR(n) | 变长字符串 |
BIT(n) | 定长位串 |
BIT VARYING(n) | 变长位串 |
DATE | 日期 |
TIME | 时间 |
TIMESTAMP | 时间戳 |
对表的操作
创建表
创建表的命令是:
1 | CREATE TABLE tablename ( |
比如说:
1 | CREATE TABLE student ( |
就会创建一张名为 student
的表,有四列,分别为 sno,sn,sd,sa
其中的 sno
不为 null
修改表
增加和删除列的操作如下:
1 | ALTER TABLE <基表名> ADD <列名> <数据类型>; |
例如向 student
表中添加一列 department
可以这么写:
1 | ALTER TABLE student ADD department CHAR(20) NOT NULL; |
然后删除sa
这一列可以写为:
1 | ALTER TABLE student DROP sa; |
删除表
可以使用命令
1 | DROP TABLE <基表名>; |
删除表,例如使用命令:
1 | DROP TABLE student; |
可以直接删除掉表 student
对数据的操纵
查询
基本的语句就是:
1 | SELECT * | column name AS xxx |
这里面只有 SELECT
子句和 FROM
子句是必须要有的
这里的
HAVING
是对分组的补充,用处是抛弃某些不合法的分组
高级操作
Join 连接操作
基本语法:
1 | SELECT * |
这里就是把table1
和 table2
按照条件 condition
进行连接操作,这里的Join一共有四种操作:
INNER JOIN
: 这个指的是表中至少有一个匹配才返回行LEFT JOIN
: 即使右表中没有匹配也从左表这返回行RIGHT JOIN
: 即使左表中没有匹配,也从右表返回行FULL JOIN
: 可以认为是上面两个的并集在没有显式声明的情况下,
JOIN
等同于INNER JOIN
除法
在基本的SQL语句里面没有提供除法,所以这边一般就把除法翻译为表之间的关系,例如所有购买了商品A的人,就相当于查出所有存在购买商品A的购买记录的人。
删除
删除的语句是:
1 | DELETE FROM tablename |
即从表 tablename
中删除满足条件 condition
的所有行
更新
SQL的更新语句的格式如下:
1 | INSERT |
例子如下:
1 | INSERT INTO SC(sno,cno) |
这里就相当于先运行下面的子查询,返回的表里面的所有的 (sno,cno)
的元组被插入到 SC
这个表中了
修改
修改的语句是:
1 | UPDATE tablename |
例如:
1 | UPDATE SC |
视图
定义视图的语句是:
1 | CREATE VIEW <视图名称> [列名1,列名2, ...] |
- 这里面的
<视图名称>
是必选的,但是后面的列名是可选的 - 这里的影响语句可以是某个查询的结果
WITH CHECK OPTION
加上之后意味着可以对视图进行修改
例如:删除视图:1
2
3CREATE VIEW CS_S
AS SELECT * FROM s
WHERE sd = 'CS'
使用命令可以删除一个视图1
DROP VIEW <视图名称>
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.