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.
