执行顺序:
SELECT select_list
[ INTO new_table ]
FROM table_source
[ WHERE search_condition ]
[ GROUPBY group_by_expression ]
[ HAVING search_condition ]
[ ORDERBY order_expression [ ASC | DESC ] ]
创建:
createdatabase dbname;
createtable tablename (column_name1 type(size), column_name1 type(size));
束缚:
NOT NULL - 指示某列不能存储 NULL 值。
UNIQUE - 保证某列的每行必须有唯一的值。
PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
FOREIGN KEY - (外键)保证一个表中的数据匹配另一个表中的值的参照完整性。
CHECK - 保证列中的值符合指定的条件。
DEFAULT - 规定没有给列赋值时的默认值。
查询:
select column_name,column_name from tablename;select * from tablename;selectdistinct colunmn_name from tablename;
(where) select column_name from tablename where column_name='c1';
(like) select column_name from tablename where column_name like'city%';(以city结尾)
select column_name from tablename where column_name like'%city%';(包含city)
select column_name from tablename where column_name notlike'city%';(以city结尾)
(in) select column_name from tablename where column_name in ('a','b');(column_name为a或者为b)
(between) select column_name from tablename where column_name between 10and20;select column_name from tablename where column_name not between a and z;
通配符:
% 替代 0 个或多个字符
_ 替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist] or [!charlist] 不在字符列中的任何单一字符
(order by) select column_name from tablename where column_name='q'orderby column_name ASC | DESC;
插入:(无from)
insertinto tablename (column_name1,column_name2) values (v1,v2);insertinto tablename values (v1,v2,v3,);
更新:(无from)
update tablename set column_name1=c1,column_name=c2 where column_name='c';
删除:
deletefrom tablename where column_name='c';
top:
select top 2 * from tablename;select top 50 percent * from tablename;
别名:
select column_name as c1,column_name as c2 from tablename as t;
连接:(inner join / left join /right join)
select column_name from tablename1 t1 innerjoin tablename2 t2 on t1.name=t2.name;
合并:(union)
select column_name from tablename1 unionselect column_name from tablename2;
请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个SELECT 语句中的列的顺序必须相同。
复制:
(selectinto) select *(或者column_name) into tablename from tablename2;
(insertintoselect) insertinto table2 select * from table1;
索引:
create index index_name on table_name;
drop:
drop index table_name.index_name;dropdatabase db_name;
drop tabel table_name;truncatetable table_name;
alert:
alert table table_name add column_name type;
alert table table_name alert column column_name type;
alert table table_name dropcolumn column_name;
函数:
AVG() - 返回平均值
COUNT() - 返回行数
FIRST() - 返回第一个记录的值
LAST() - 返回最后一个记录的值
MAX() - 返回最大值
MIN() - 返回最小值
SUM() - 返回总和
UCASE() - 将某个字段转换为大写
LCASE() - 将某个字段转换为小写
MID() - 从某个文本字段提取字符
LEN() - 返回某个文本字段的长度
ROUND() - 对某个数值字段进行指定小数位数的四舍五入
NOW() - 返回当前的系统日期和时间
FORMAT() - 格式化某个字段的显示方式
快速参考:
http://www.runoob.com/sql/sql-quickref.html
SQL 语句 语法
AND / OR SELECT column_name(s)
FROM table_name
WHERE condition
AND|OR condition
ALTERTABLEALTERTABLE table_name
ADD column_name datatype
orALTERTABLE table_name
DROPCOLUMN column_name
AS (alias) SELECT column_name AS column_alias
FROM table_name
orSELECT column_name
FROM table_name AS table_alias
BETWEEN SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2
CREATEDATABASECREATEDATABASE database_name
CREATETABLECREATETABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name2 data_type,
...
)
CREATE INDEX CREATE INDEX index_name
ON table_name (column_name)
orCREATEUNIQUE INDEX index_name
ON table_name (column_name)
CREATEVIEWCREATEVIEW view_name ASSELECT column_name(s)
FROM table_name
WHERE condition
DELETEDELETEFROM table_name
WHERE some_column=some_value
orDELETEFROM table_name
(Note: Deletes the entire table!!)
DELETE * FROM table_name
(Note: Deletes the entire table!!)
DROPDATABASEDROPDATABASE database_name
DROP INDEX DROP INDEX table_name.index_name (SQL Server)
DROP INDEX index_name ON table_name (MS Access)
DROP INDEX index_name (DB2/Oracle)
ALTERTABLE table_name
DROP INDEX index_name (MySQL)
DROPTABLEDROPTABLE table_name
GROUPBYSELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator valueGROUPBY column_name
HAVINGSELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator valueGROUPBY column_name
HAVING aggregate_function(column_name) operator valueINSELECT column_name(s)
FROM table_name
WHERE column_name
IN (value1,value2,..)
INSERTINTOINSERTINTO table_name
VALUES (value1, value2, value3,....)
orINSERTINTO table_name
(column1, column2, column3,...)
VALUES (value1, value2, value3,....)
INNERJOINSELECT column_name(s)
FROM table_name1
INNERJOIN table_name2
ON table_name1.column_name=table_name2.column_name
LEFTJOINSELECT column_name(s)
FROM table_name1
LEFTJOIN table_name2
ON table_name1.column_name=table_name2.column_name
RIGHTJOINSELECT column_name(s)
FROM table_name1
RIGHTJOIN table_name2
ON table_name1.column_name=table_name2.column_name
FULLJOINSELECT column_name(s)
FROM table_name1
FULLJOIN table_name2
ON table_name1.column_name=table_name2.column_name
LIKESELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
ORDERBYSELECT column_name(s)
FROM table_name
ORDERBY column_name [ASC|DESC]
SELECTSELECT column_name(s)
FROM table_name
SELECT * SELECT *
FROM table_name
SELECTDISTINCTSELECTDISTINCT column_name(s)
FROM table_name
SELECTINTOSELECT *
INTO new_table_name [IN externaldatabase]
FROM old_table_name
orSELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_table_name
SELECT TOP SELECT TOP number|percent column_name(s)
FROM table_name
TRUNCATETABLETRUNCATETABLE table_name
UNIONSELECT column_name(s) FROM table_name1
UNIONSELECT column_name(s) FROM table_name2
UNIONALLSELECT column_name(s) FROM table_name1
UNIONALLSELECT column_name(s) FROM table_name2
UPDATEUPDATE table_name
SET column1=value, column2=value,...
WHERE some_column=some_value
WHERESELECT column_name(s)
FROM table_name
WHERE column_name operator value