发布时间:2018-01-10 12:32:45编辑:丝画阁阅读(674)
罗列一些非常重要的SQL语句,供需要的时候查询使用:
1.你可以随时使用DESCRIBE查询表的结构,例如你忘记表中的列的名称或类型时,使用如:DESCRIBE table_a;
2.要想将文本文件text.txt(该文件包含了表的插入数据信息,每行包含一个记录,用定位符(tab)把值分开,并且以CREATE TABLE语句中列出的列次序给出。)装载到table_a表中,使用这个命令:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE table_a;
如果用Windows中的编辑器(使用 做为行的结束符)创建文件,应使用:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE table_a-> LINES TERMINATED BY '
';
3.增加关键字DISTINCT可以检索出每个唯一的输出记录,避免结果重复,如:
SEL ECT DISTINCT department FROM table_a;
4.有下面一条SQL语句:
mysql>
SEL ECT name, birth, CURDATE(),-> (YEAR(CURDATE())-YEAR(birth))-> -
(RIGHT(CURDATE(),5)<RIGHT(birth,5))-> AS age-> FROM table_a;
说明一下:上述语句实现的是查询一个人的姓名、出生日期、当前日期、年龄,YEAR()提取日期的年部分,RIGHT()提取日期的MM-DD(日历年)部分的最右边5个字符。比较MM-DD值的表达式部分一般为1或0,如果CURDATE()的MM-DD比birth的MM-DD早,则年份应减1。例如:如果当前日期是2012-09-10,出生日期是:2000-10-01,则获得的年龄age是11。
5.如果要找出正好包含3个字符的名字,可以使用“_”模式字符(下列SQL中,#起注释作用):
mysql>SEL ECT * FROM table_a WHERE name LIKE '___'; #注意此处有三条下划线
6.可以使用扩展正则表达式使用REGEXP实现某些与LIKE查询相关的功能,如:
查找以“T”开头的名字,可以使用“^”匹配名字的开始
mysql> SEL ECT * FROM table_a WHERE name REGEXP '^T';
如果想强制使REGEXP区分大小写,使用BINARY关键字使其中的一个字符串变为二进制字符串,一下匹配名字以小写"t"开头:
mysql> SEL ECT * FROM table_a WHERE name REGEXP BINARY '^t';
找出以“om”结尾的名字,使用“$”匹配名字的结尾:
mysql> SEL ECT * FROM table_a WHERE name REGEXP 'om$';
为了找出包含一个“w”的名字,使用以下查询:
mysql> SEL ECT * FROM table_a WHERE name REGEXP 'w';
匹配特定长度的字符可以像5中那样以外,也可以使用“^”和“$”匹配名字的开始和结尾和3个“.”在两者之间:
mysql> SEL ECT * FROM table_a WHERE name REGEXP '^.....$';
可以使用“{n}”重复n次重写上面的查询
mysql> SEL ECT * FROM table_a WHERE name REGEXP '^.{3}$';
关键字:
本站部分内容来源网络及网友上传,本站未必能一一鉴别其是否为公共版权或其版权归属,如果您认为侵犯您的权利,本站将表示非常抱歉!
请您速联系本站,本站一经核实,立即删除。删文删帖联系【2789291421@qq.com】