1、连接服务器
mysql -h localhost -u root -p
2、显示已有数据库
show databases db_name
3、选用数据库
use db_name
4、显示数据表信息
SHOW TABLES [FROM db_name] [LIKE wild]
or SHOW COLUMNS FROM tbl_name [FROM db_name] [LIKE wild]
or SHOW INDEX FROM tbl_name [FROM db_name]
or SHOW TABLE STATUS [FROM db_name] [LIKE wild]
5、select语句
SELECT selection_list 选择哪些列
FROM table_list 从何处选择行
WHERE primary_constraint 行必须满足什么条件
GROUP BY grouping_columns 怎样对结果分组
HAVING secondary_constraint 行必须满足的第二条件
ORDER BY sorting_columns 怎样对结果排序
LIMIT count 结果限定
注意:所有使用的关键词必须精确地以上面的顺序给出。例如,一个HAVING 子句必须跟在GROUP BY子句之后和ORDER BY子句之前。
6、使用关系运算符和逻辑运算符来限制时间范围
select * from payment where creatdatetime >="2015-06-10" and creatdatetime < "2015-06-11";
使用LIKE,包含通配符%
select * from payment where creatdatetime like "2015-06-10%";
7、比较时间和日期
to_days(date)
select to_days(now())-to_days('20010101');//两个时间相差的天数
8、正则表达式匹配
(regexp或not regexp)或者(rlike 或 not rlike)
规则:
“.”匹配任何单个的字符。
一个字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。
为了命名字符的一个范围,使用一个“-”。“[a-z]”匹配任何小写字母,而“[0-9]”匹配任何数字。
“ * ”匹配零个或多个在它前面的东西。
例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配的任何数量的数字,而“.*”匹配任何数量的任何东西。
正则表达式是区分大小写的。
但是如果你希望,你能使用一个字符类匹配两种写法。例如,“[aA]”匹配小写或大写的“a”而“[a-zA-Z]”匹配两种写法的任何字母。
为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。
为了找出包含正好5个字符的名字,使用“^”和“$”匹配名字的开始和结尾,和5个“.”实例在两者之间:
SELECT * FROM pet WHERE name REGEXP "^.....$";
你也可以使用“{n}”“重复n次”操作符重写先前的查询:
SELECT * FROM pet WHERE name REGEXP "^.{5}$";
9、大小写敏感
如果你想要一个列总是被当作大小写敏感的方式,声明它为BINARY。
例如:
SELECT "E"="e","E"=BINARY "e";
10、全连接与左连接
全连接:在检索时指定多个表,将每个表用都好分隔,这样每个表的数据行都和其他表的每行交叉产生所有可能的组合,这样就是一个全连接。
mysql -h localhost -u root -p
2、显示已有数据库
show databases db_name
3、选用数据库
use db_name
4、显示数据表信息
SHOW TABLES [FROM db_name] [LIKE wild]
or SHOW COLUMNS FROM tbl_name [FROM db_name] [LIKE wild]
or SHOW INDEX FROM tbl_name [FROM db_name]
or SHOW TABLE STATUS [FROM db_name] [LIKE wild]
5、select语句
SELECT selection_list 选择哪些列
FROM table_list 从何处选择行
WHERE primary_constraint 行必须满足什么条件
GROUP BY grouping_columns 怎样对结果分组
HAVING secondary_constraint 行必须满足的第二条件
ORDER BY sorting_columns 怎样对结果排序
LIMIT count 结果限定
注意:所有使用的关键词必须精确地以上面的顺序给出。例如,一个HAVING 子句必须跟在GROUP BY子句之后和ORDER BY子句之前。
6、使用关系运算符和逻辑运算符来限制时间范围
select * from payment where creatdatetime >="2015-06-10" and creatdatetime < "2015-06-11";
使用LIKE,包含通配符%
select * from payment where creatdatetime like "2015-06-10%";
7、比较时间和日期
to_days(date)
select to_days(now())-to_days('20010101');//两个时间相差的天数
8、正则表达式匹配
(regexp或not regexp)或者(rlike 或 not rlike)
规则:
“.”匹配任何单个的字符。
一个字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。
为了命名字符的一个范围,使用一个“-”。“[a-z]”匹配任何小写字母,而“[0-9]”匹配任何数字。
“ * ”匹配零个或多个在它前面的东西。
例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配的任何数量的数字,而“.*”匹配任何数量的任何东西。
正则表达式是区分大小写的。
但是如果你希望,你能使用一个字符类匹配两种写法。例如,“[aA]”匹配小写或大写的“a”而“[a-zA-Z]”匹配两种写法的任何字母。
为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。
为了找出包含正好5个字符的名字,使用“^”和“$”匹配名字的开始和结尾,和5个“.”实例在两者之间:
SELECT * FROM pet WHERE name REGEXP "^.....$";
你也可以使用“{n}”“重复n次”操作符重写先前的查询:
SELECT * FROM pet WHERE name REGEXP "^.{5}$";
9、大小写敏感
如果你想要一个列总是被当作大小写敏感的方式,声明它为BINARY。
例如:
SELECT "E"="e","E"=BINARY "e";
10、全连接与左连接
全连接:在检索时指定多个表,将每个表用都好分隔,这样每个表的数据行都和其他表的每行交叉产生所有可能的组合,这样就是一个全连接。
左连接:全连接给出FROM子句中所有表都有匹配的行。对于左连接,不仅匹配类似前面的行记录,而且还显示左边的表有而右边的表中无匹配的行。
对 于这样的行,从右边表选择的列均被显示为NULL。这样,每一匹配的行都从左边的表被选出,而如果右边表有一个匹配的行,则被选中,如果不匹配, 行仍然被选中,
不过,其中右边相应的列在结果集中均设为NULL。即,LEFT JOIN强制包含左边表的每一行,而不管右边表是否匹配。