SELECT TOP,LIMIT,ROWNUM
1.SELECT TOP
SELECT TOP number|percent column_name(s) FROM table_name WHERE condition;
2.LIMIT
SELECT column_name(s) FROM table_name WHERE condition LIMIT number;
3.ROWNUM(伪列)
SELECT column_name(s) FROM table_name WHERE conditon AND ROWNUM <= number;
LIKE 运算符
有两个通配符与LIKE运算符一起使用:
- % -百分号表示零个,一个或多个字符
- _ -下划线表示单个字符匹配
LIKE运算符 | 描述 |
---|---|
WHERE CustomerName LIKE 'a%' | 查找以"a"为开头的任何值 |
WHERE CustomerName LIKE '%a' | 查找以"a"为结尾的任何值 |
WHERE CustomerName LIKE '%or%' | 在任何位置查找任何具有"or"的值 |
WHERE CustomerName LIKE '_r%' | 在第二个位置查找任何具有"r"的值 |
WHERE CustomerName LIKE 'a_%_%' | 查找以"a"开头且长度至少为3个字符的值 |
WHERE CustomerName LIKE 'a%o' | 找到以"a"开头以"o"结尾的值 |
SELECT column_name(s) FROM table_name WHERE column LIKE condition;
Wildcards 通配符
Wildcards通配符 | 描述 |
---|---|
WHERE city LIKE '[a-c]%'; | 查询所有city 以"a"、"b"或"c"开头的客户 |
WHERE city LIKE '[!bsp]%' | 查询所有city不以"b"、"s"或"p"开头的客户 |
IN 运算符
IN运算符是多个OR条件的简写。
1.SELECT column_names(s) FROM table_name WHERE column_name IN ('column1','column2','column3',…);
2.SELECT column_name(s) FROM table_name WHERE column_name IN (SELECT STATEMENT);
BETWEEN 运算符
- BETWEEN运算符选择给定范围内的值。值可以是数字,文本或者日期。
- BEWTEEN运算符是包含性的:包括开始和结束
注意 BEWTEEN操作符在不同数据库之间会产生不同的结果
SELCET column_name FROM table_name WHERE column_name BETWEEN value1 AND value2;
//选取介于'04-July-1996'和'09-July-1996'之间的所有订单
SELECT * FROM Orders WHERE OrderDate BETWEEN #07/04/1996# AND #07/09/1996#;
通用数据类
数据类型 | 描述 |
---|---|
INTEGER(p) | 整数值,精度为(p)——精度默认为10 |
DECIMAL(p,s) | 精度p,小数点后位数s。 例如:DECIMAL(5,2)是一个小数点前有3位数小数点后有两位数的数字。 |
FLOAT(p) | 尾数精度p。 一个采用以10为基数的指数计数法的浮点数——尾数精度值默认为16 |
DATE | 存储年月日 |
TIME | 存储时分秒 |
TIMESTAMP | 存储年月日时分秒 |
ARRAY | 元素的固定长度的有序集合 |
MULTISET | 元素的可变长度的无序集合 |
SQL语句的快速参考
SQL语句 | 语法 |
---|---|
ALTER TABEL | ALTER TABLE table_name ADD column_name datatype (or) ALTER TABLE table_name DROP COLUMN column_name; |
AS(alias别名) | SELECT column_name AS column_alias FROM table_name; |
CREATE DATABASE | CREATE DATABASE database_name; |
CREATE TABLE | CREATE TABLE table_name (column_name1 data_type,column_name2 data_type,colume_name3 data_type,…); |
CREATE INDEX | CREATE (UNIQUE)INDEX index_name ON table_name(column_name); |
DELETE | DELETE FROM table_name WHERE some_column = some_vale (or) DELETE FROM tabel_name(NOTE:Deletes the entire table!); |
DROP DATABASE | DROP DATABASE database_name; |
DROP INDEX | DROP INDEX index_name |
JOIN
把两个或多个表的行结合起来
- INNER JOIN :如果表中有至少一个匹配,则返回行
- LEFT JOIN : 即使右表中没有匹配,也从左表返回所有的行
- RIGHT JOIN : 即使左表中没有匹配,也从右表中返回所有的行
- FULL JOIN : 只有其中一个表存在匹配,则返回行
INNER JOIN
SELECT column_name FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
LEFT/RIGHT JOIN 关键字
//LEFT JOIN返回左表中的所有行,即时右表中没有匹配
1.SELECT column_name(s) FROM table1
LEFT JOIN table2 ON table1.column_name = table2_column_name;
//RIGHT JOIN返回右表中的所有行,即时左表中没有匹配
2.SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
UNION 关键字
- UNION中的每个SELECT语句必须具有相同的列数
- 这些列也必须具有相似的数据类型
- 每个SELECT语句中的列也必须以相同的顺序排列
- UNION 运算符选择一个不同的值,若允许重复请使用UNION ALL
- UNION结果集中的列名总是等于UNION中第一个SELECT语句中的列名
SELECT column_name(s) FROM table1_name UNION SELECT column_name(s) FROM table2_name
WHERE condition ORDER BY…;
SELECT INTO 语句
- SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中
SELECT column_name INTO newtable FROM table_name;
INSERT INTO SELECT
//把想要的列复制到现有的表上
INSERT INTO table2(column_name(s)) SELECT column_name(s) FROM table1;
CREATE DATABASE
CREATE DATABASE dbname
CREATE TABLE
CREATE TABLE table_name (
column_name1 data_type(size)
column_name2 data_type(size)
column_name3 data_type(size)
…
);
ALTER TABLE
//向表中添加列
ALTER TABLE table_name ADD column_name datatype;
//向表中删除列
ALTER TABLE table_name DROP COLUMN column_name;
//修改列的列名以及数据类型
ALTER TABLE table_name CHANGE column_name 新列名 新数据类型;
AUTO INCREMENT
默认情况下,AUTO_INCREMENT的起始值为1,每个新纪录增加1
VIEW 视图
CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition;
MySQL Date 函数
函数 | 描述 |
---|---|
NOW() | 当前的日期和时间 |
CURDATE() | 当前的日期 |
CURTIME() | 当前的时间 |
DATE() | 提取日期部分 |
EXTRACT() | 日期/时间的单独部分 |
DATE_ADD() | 向日期添加指定的时间间隔 |
DATE_SUB | 从日期减去指定的时间间隔 |
DATEDIFF() | 返回两个日期之间的天数 |
DATE_FORMAT() | 用不同的格式显示日期/时间 |
存储日期或时间的数据类型
- DATE - 格式 : YYYY-MM-DD
- DATETIME - 格式 : YYYY-MM-DD HH:MM:SS
- TIMESTAMP - 格式 : YYYY-MM-DD HH:MM:SS
- YEAR - 格式 : YYYY 或 YY