SQL笔记
来源:互联网 发布:行书笔顺演示软件 编辑:程序博客网 时间:2024/06/08 14:40
1.查询
SELECT [DISTINCT] 列 FROM 表格[WHERE 条件]
[ORDER BY 列 [ASC, DESC]];
其中“条件”包括:
- 简单条件,如【列=值】、【列>值】、【列 IS NOT NULL】
- 复合条件,如【列1=值1 AND 列2=值2】、【列1>值1 OR 列2<值2】
- 条件集合,如【列 IN (值1, 值2)】
- 条件范围,如【列 BETWEEN 值1 AND 值2】
- 条件套式,如【列 LIKE {套式}】
“套式”包括:
- _代表任意单个字元,如【A_Z】等同于DOS通配符【A?Z】
- %代表任意多个字元,如【%AB%】等同于DOS通配符【*AB*】
排序依据可以是多个列,此时首先按第一列排序,第一列相同的项按第二列排序。ASC代表升序,DESC代表降序,缺省为ASC。此外,这里的列可以是列名也可以是序号。
DISTINCT代表不重复的资料。
SELECT可以选出多列,也可以从多个表格中选取。
2.函数
SELECT 函数名([DISTINCT] 列) FROM 表格
[GROUP BY 列]
[HAVING 函数条件];
函数包括:
- AVG:求平均值
- SUM:求和
- COUNT:计数
- MAX:最大值
- MIN:最小值
聚合函数不能使用WHERE。
加上DISTINCT可以仅将资料不重复的项目加入计算。
GROUP BY可以按该列分组,在组内进行计算。
HAVING代表仅选出符合该函数条件的,不一定和GROUP BY连用。例如:
代表选出总营业额超过1500的店铺名称和营业额。SELECT Store_Name, SUM(Sales)FROM Store_InformationGROUP BY Store_NameHAVING SUM(sales) > 1500;
3.别名
SELECT 表格别名.栏目 栏目别名
FROM 表格名 表格别名;
用于增强表格的易读性,改变输出的表头。
4.连接
内部连接
SELECT 表1.列1, 表2.列2, ...
FROM 表1, 表2
WHERE 连接条件;
连接条件必须准确,如表1.列3=表2.列3,否则会产生笛卡尔连接。
5.并集、交集和补集
SELECT 列1 FROM 表1
UNION [ALL]
SELECT 列2 FROM 表2;
SELECT 列1 FROM 表1
INTERSECT
SELECT 列2 FROM 表2;
SELECT 列1 FROM 表1
MINUS
SELECT 列2 FROM 表2;
UNION表示求并集,若不加ALL,则重复项会自动合并。
INTERSECT表示求交集,重复项自动合并。
MINUS表示求补集。若一个条目在集合2中但不在集合1中,会被直接抛弃。重复项自动合并。
6.建立表格
CREATE TABLE 表格名
(列1 数据类型
列2 数据类型
..);
若需要创建带主键的表格,则Oracle和SQLServer的写法为:【主键名 integer PRIMARY KEY】,MySQL的写法为【主键名 integer, ..., PRIMARY KEY(主键名)】
7.修改表格
ALTER TABLE 表格名 改变方式;
改变方式包括:
- 插入一列:【ADD 列 数据类型】
- 删除一列:【DROP 列】
- 改变列名:【CHANGE 旧列名 新列名 新数据类型】
- 改变一列数据类型:【MODIFY 列 新数据类型】
8.删除和清除表格
DROP TABLE 表格名;
TRUNCATE TABLE 表格名;
9.插入数据
INSERT INTO 表格名 (列1, 列2, ...)
VALUES (值1, 值2, ...);
INSERT INTO 表1 (列1, 列2, ...)
SELECT 列3, 列4, ...
FROM 表2;
使用SELECT这种形式能一次插入多行,可以搭配任意的SQL语句,如WHERE等。
10.修改数据
UPDATE 表格名
SET 列1=值1, 列2=值2
WHERE 条件;
如果有多行符合条件的,则会一起被修改为新值。
11.删除数据
DELETE FROM 表格名
WHERE 条件;
同样,所有符合条件的行都会被删除。
12.建立视图和索引
CREATE VIEW 视图名 AS
SQL语句;
CREATE INDEX 索引名
ON 表格名(列名)
视图中的SQL语句一般是SELECT及其组合。
- sql笔记
- SQL 笔记
- SQL笔记
- sql笔记
- sql笔记
- SQL笔记
- SQL笔记
- SQL 笔记
- sql笔记
- SQL笔记
- sql笔记
- SQL笔记
- sql笔记
- sql笔记
- sql笔记
- SQL笔记
- SQL笔记
- sql笔记
- 利用Hudson持续集成来执行Android自动化测试
- 实现随机数按概率显示 java版
- EditText的属性
- TextView属性
- JVM调优总结 -Xms -Xmx -Xmn -Xss
- SQL笔记
- CodeForces 295C - Greg and Friends BFS找最短路径
- 动态代理类实现原理及实例
- tomcat中class和jar加载顺序
- Linux下,串口编程的参数配置
- linux启动过程
- Struts2(s2-016)远程代码执行漏洞详细代码分析
- POJ2029--Get Many Persimmon Trees
- struts的学习笔记-1