首页 > 代码库 > SQL速查

SQL速查

/*2014.11.02

 *根据几份手上文档整理而来,只作为初稿,难以详尽,会尽快扩充。

 *任何建议请在评论区尽情提出,或者如发现有误请及时指出,感激万分。

 */

SQL简介

SQL全称Structured Query Language(结构化查询语言)。

SQL是一门ANSI的标准计算机语言。

SQL可用来访问和操作Oracle,Sybase,Microsoft SQL Server,DB2,Access,MySQL,PostgreSQL以及其他数据库系统中的数据。

SQL可以对数据库进行添加、删除、更新、查询操作。

SQL简单易学。

SQL基本语法表

语法结构说明
 数据库操作
CREATE DATABASE database_name创建一个数据库
DROP DATABASE database_name删除某个数据库
  数据表操作

CREATE TABLE "table_name"

("column_1" "data_type_for_column_1",

"column_2" "data_type_for_column_2",

…)

在数据库中创建一个表
ALTER TABLE table_name ADD column_name datatype在已存在的表中新加一列
ALTER TABLE table_name DROP column_name datatype在已存在的表中删除某一列
DROP TABLE table_name删除某个表
 索引操作

CREATE INDEX index_name ON table_name

(column_name_1,column_name_2,…)

在表上创建一个简单索引

CREATE UNIQUE INDEX index_name ON table_name

(column_name_1,column_name_2,…)

在表上创建一个唯一索引
DROP INDEX table_name.index_name删除索引
 数据操作

INSERT INTO table_name

VALUES(value_1,value_2,…)

在表中新增一行数据

INSERT INTO table_name(column_1,column_2,…)

VALUES(value_1,value_2,…)

在表中新增一行数据

UPDATE table_name

SET column_name_1=new_value_1,

   column_name_2=new_value_2

WHERE column_name=some_value

更新一列或者多列的数据

DELETE FROM table_name

WEHRE column_name=some_value

在表中删除某一行或某些行

(DML语言,可以有选择删除)

TRUNCATE TABLE table_name

删除该表中所有数据

(DDL语言,默认表中所有数据都删除)

 SELECT
SELECT column_name(s) FROM table_name查询表中(一列或多列的)数据
SELECT * FROM table_name查询表中的所有数据

SELECT DISTINCT column_name(s) 

FROM table_name

查询表中不重复的数据

SELECT column_name(s) FROM table_name

WEHRE column operator value

     AND column operator value

     OR column operator value

     AND(…OR…)

     …

根据条件查询表中的数据

(operator表示等于=,不等于<>,

大于>,小于<,不小于>=,不大于<=,

范围BETWEEN,近似LIKE等操作符)

(操作符及用法会单独用表列出)

SELECT column_name(s) FROM table_name

WHERE column_name IN (value1,value2,…)

查询某个字段值为IN后括号内任何一个值的数据

(column_name IN (value1,value2,…)

等价于column_name=value1

 OR  column_name=value2

   …)

SELECT column_name(s) FROM table_name

ORDER BY row_1,row_2 DESC,row_2 ASC,…

将对某个表的查询结果排序

(ASC,Ascend,按照字母和数字正序排列(默认,可不写),

DESC,Descend,按照字母和数字倒序排列)

SELECT column_1,…,SUM(group_column_name)

FROM table_name

GROUP BY group_column_name

GROUP BY可根据一个或多个列对结果集进行分组

SELECT column_1,…,SUM(group_column_name)

FROM table_name

GROUP BY group_column_name

HAVING SUM(group_column_name) condition value

与WHERE语句的用法相同。

因为WHERE 关键字无法与合计函数一起使用,因此在SQL中

添加了HAVING子句

condition表示等于=,不等于<>,大于>,小于<等操作符

 

Alias别名

SELECT column_name AS column_alias

FROM table_name

列名别名

SELECT table_alias.column_name

FROM table_name

AS table_alias

表名别名
 Join

SELECT column_1_name,column_2_name,…

FROM first_table_name

INNER JOIN second_table_name

ON first_table_name.keyfield

    =second_table_name.foreign_keyfield

在第一个表和第二个表中

存在至少一个匹配时,INNER JOIN 关键字返回匹配的行

SELECT column_1_name,column_2_name,…

FROM first_table_name

LEFT JOIN second_table_name

ON first_table_name.keyfield

    =second.table_name.foreign_keyfield

LEFT JOIN 关键字会从第一个表 (first_table_name)

那里返回所有的行

即使在第二个表 (second_table_name) 中没有匹配的行

SELECT column_1_name,column_2_name,…

FROM first_table_name

RIGHT JOIN second_table_name

ON first_table_name.keyfield

    =second.table_name.foreign_keyfield

 

RIGHT JOIN 关键字会从第二个表 (second_table_name))

那里返回所有的行

即使在第一个表 (first_table_name) 中没有匹配的行

(与LEFT JOIN相反)

 UNION

SELECT column_name(s) FROM table_name_1

UNION

SELECT column_name(s) FROM table_name_2

UNION用于合并两个或多个 SELECT 语句的结果集

这些SELECT语句列数必须相同,每列的数据类型也必须相同

默认选取不重复的值

SELECT column_name(s) FROM table_name_1

UNION ALL

SELECT column_name(s) FROM table_name_2

同上,选取不重复的值
 SELECT INTO/IN

SELECT column_name(s)

INTO new_table_name

FROM source_table_name

WHERE query

从一个表中选取数据,然后把数据插入另一个表中

(常用于创建表的备份复件或者用于对记录进行存档)

SELECT column_name(s)

IN external_database_name

FROM source_table_name

WHERE query

 从一个表中选取数据,然后把数据插入另一个数据库的表中
 CREATE VIEW(创建视图)

CREATE VIEW view_name AS

SELECT column_name(s)

FROM table_name

WHERE condition

根据查询的结果来创建一个数据视图

数据类型

数据类型数据类型描述

INTEGER(SIZE)

INT(SIZE)

SMALLINT(SIZE)

TINYINT(SIZE)

存放整型数据,其最大值在括号内标出

DECIMAL(SIZE,D)

NUMERIC(SIZE,D)

存放带有小数的数据,SIZE表示其最大值,D表示小数位数
CHAR(SIZE)存放固定长度为SIZE的字符串,可包括字母,数字和特殊字符等
VARCHAR(SIZE)存放最大长度为SIZE的可变长度的字符串,可包括字母、数字和特殊字符等
DATE(yyyymmdd)存放日期类型的数据

操作符

操作符操作符描述
=相等
<>不相等
>大于
<小于
>=大于或等于
<=小于或等于
BETWEEN在一个范围之间
LIKE

用于在 WHERE 子句中搜索列中的指定模式

通配符:

“%”可用来替代一个或多个字符

“_”仅替代一个字符

“[…]”替代字符列中的单一字符

“[^…]”或“[!…]”替代不在字符列中的任何单一字符

一些合计函数

函数函数描述
AVG(column)返回该字段的平均值
COUNT(column)返回某列不为NULL值的总数量
MAX(column)返回某列的最大值
MIN(column)返回某列的最小值
SUM(column)返回某列的所有值的和

SQL速查