非常重要的一些SQL语句(一)

发布时间: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}$';



关键字