从大二到现在,学习MySQL也好几年了,还是冷不丁需要上网查,还都是基本操作,正好在看《MYSQL必知必会》,顺便汇总好了。
创建并使用数据库(总会忘记加database!!!):
创建并查看数据表:
describe语句作为show columns from的一种快捷方式。
更多show语句可以使用"help show"来查看,例如"show status"、"show create database database_name" etc。
检索单个或多个列(只需要检索不同值时,可以使用distinct关键字,eg: select distinct name from test_tb1):
在处理SQL语句时,其中所有空格都被忽略。
为了限制返回结果的行数,可以使用"limit line_num;",eg:select id, name from test_tb1 limit 3;
设定返回结果的范围,可以使用"limit line_start, line_num",eg:select id, name from test_tb1 limit 1, 3;
检索出来的第一行为行0!!!
检索数据的结果排序默认是依据数据最后修改时间的,可以使用order by设定排序规则。
eg: select id, name from test_tb1 order by name;
eg: select id, name from test_tb1 order by id, name;
order by默认排序规则是按照字母升序,使用desc关键字(只对位于其前面的列名生效)设为字母降序。
eg: select id ,name, title from test_tb1 order by name desc;
eg: select id, name, title from test_tb1 order by name desc, title;
eg: select d, name, name from test_tb1 order by name, title desc;
eg: select d, name, name from test_tb1 order by name desc, title desc;
关键字使用顺序:from + order by + limit
where语句的常用操作:
组合查询(and优先级高于or):
in操作符,与or实现一样的功能,优先使用in操作符。
not操作符
like操作符
百分号(%)通配符,表示任何字符出现任意次数(包括0个字符):
下划线( _ )通配符,只匹配单个字符:
使用MySQL正则表达式:
使用regexp代替like,即可使用正则表达式,不是完全匹配,是只要其中有匹配项即可。
"[]"用于匹配单个字符,内为一组集合。eg:[skvt]用于匹配s k v t中的一个。
这里的"."和java的不太一样,不是匹配单个字符。。。
"^"操作符表示否定:
标准的非完全匹配,只要待匹配项中包含匹配的就行:
为了匹配特殊字符,必须使用\\作为前导(双反斜杠):
为了匹配反斜杠本身,使用"\\\":
匹配字符类:
定位符:
注意$字符的位置,是在末尾!
"[[<:]] text [[:>]]" text不区分大小写!
创建计算字段:
拼接字段,使用Concat()函数来拼接两个列:
可以使用Trim()、LTrim()、RTrim()来删除多余的空格 eg:RTrim(title)
select now(); ~~~~~~~~~~~~~
常见的文本处理函数:
Left() 返回串左边的字符
Length() 返回串的长度
Locate() 找出串的一个子串
Lower() 将串转换为小写
Right() 返回串右边的字符
Soundex() 返回串的SOUNDEX值(将任何文本串转换为描述其语音表示的字母数字模式的算法)
SubString() 返回子串的字符
Upper() 将串转换为大写
如果指定列名,则指定列的值为空的行被COUNT()函数忽略,但如果COUNT()函数中用的星号(*),则不忽略。
分组和过滤分组分别使用GROUP BY 和 HAVING关键字: