SQL基础

一,DML:数据操作语言

查询 SELECT column FROM table 唯一:DISTINCT column

排序:ORDER BY column [ ASC / DESC ]

ASC: ascend 上升

DESC: descend 下降

取头:
MySQL:LIMIT 10
Oracle:WHERE ROWNUM <= 10
Others:TOP 10 [PERCENT] column
插入 INSERT INTO table (column1, column2,...) VALUES (value1, value2,....)      
更新 UPDATE table SET column = value      
删除 DELETE FROM table      

1,过滤数据WHERE

WHERE column 运算符 value

运算符

数字 =, !=, >, <, >=, <= , [NOT] IN(1,2),[NOT]BETWEEN1AND3
字符 =, !=, [NOT] LIKE, [NOT] IN('a','b'),[NOT]BETWEEN 'a'AND 'c'

LIKE通配符

代替一个字符 _
代替一个或多个字符 %
字符列的任意字符 [bcd]
不在字符列的任意字符 [!bcd] 或 [^bcd]

WHERE条件组合:AND,OR

 

2,数据链接:表链接

WHERE 链接:FROM table1, table2 WHERE table1.column = table2.column

JOIN 链接:FROM table1 [INNER,LEFT,RIGHT,FULL]JOIN table2 ON table1.column = table2.column

INNER JOIN仅包含符合join条件的数据

LEFT JOIN额外包含所有table1的数据

RIGHT JOIN额外包含所有table2的数据

FULL JOIN包含所有table1,table2的数据

CROSS JOIN会将table1,table2进行笛卡儿集,用得很少

 

3,链接结果:UNION

UNION:去除重复结果;ALL UNION:不去除重复结果

SQL Statement 1UNION ALLSQL Statement 2

 

4,统计结果:

平均值 AVG(column)
最小值 MIN(column)
最大值 MAX(column)
总和 SUM(column)
总数 COUNT(column)

分组统计:GROUP BY column

由于统计结果返回的是唯一结果,因此如果在统计结果外,需要其他列的数据,必须对这些其他列进行分组,即GROUP BY

统计结果过滤:HAVING function(column) op value

对于统计结果筛选,不能再通过where,而是通过HAVING

 

二,DDL:数据定义语言

创建数据库 CREATE DATABASE database_name
创建表 CREATE TABLE table(column1 数据类型 约束,column2 数据类型 约束,....)
修改表 ALTER TABLE table
ADD column 数据类型/ DROP COLUMN column /ALTER COLUMN column 数据类型
   

1,数据类型

 

integer(size)
int(size)
smallint(size)
tinyint(size)
整数。size是最大位数。
decimal(size,d)
numeric(size,d)
小数
size 是整数最大位数。d 是小数最大位数。
char(size) 固定长度字符串。
size是字符串的长度。
varchar(size) 可变长度的字符串。
size是字符串的最大长度。
date(yyyymmdd) 日期

2,约束

 

非空 NOT NULL
唯一 UNIQUE
主键(非空唯一且每张表只有一个) PRIMARY KEY
外键(只能存入引用表中列中已有的值) FOREIGN KEY REFERENCES table(column)
约束 CHECK(column>0)
默认值 DEFAULT 0
自增长 AUTO_INCREMENT

猜你喜欢

转载自hellobbboy.iteye.com/blog/2343431