• MySQL的基本知识 -- 命令


    1.数据库和表

    SHOW DATABASES;
    

    返回可用数据库的一个列表

    SHOW TABLES;
    

    返回一个数据库内的表的列表

    SHOW COLUMNS FROM tableName;
    

    返回数据表的表结构

    2.查询数据

    SELECT * FROM tableName;
    

    返回数据表中所有的数据

    SELECT columnName FROM tableName;
    

    返回字段名为columnName的数据记录的列表

    SELECT columnName1, columnName2 FROM tableName;
    

    返回多个字段值的列表

    SELECT DISTINCT columnName FROM tableName;
    

    返回字段值不同的记录,去掉重复的记录。DISTINCT应用于所有的列而不仅仅是前置它的列。

    SELECT * FROM tableName LIMIT num;
    

    返回数据表的前num行。

    SELECT * FROM tableName LIMIT num1, num2;
    

    返回数据表的num1+1~num1+1+num2行,即返回从num1+1开始(包括自己)的接下来num2行。

    SELECT * FROM tableName LIMIT NUM, -1;
    

    返回数据表的第num+1行直到最后一行。

    3.数据排序

    SELECT * FROM tableName ORDER BY columnName;
    

    依据列columnName进行升序排序

    SELECT * FROM tableName ORDER BY columnName DESC;
    

    进行(DESC)降序排列,(ASC)升序排列。

    SELECT * FROM tableNAme ORDER BY columnName1, columnName2;
    

    按照多个列排序,先依据列columnName1进行排序,然后按照columnName2排序。

    SELECT * FROM tableName ORDER BY columnName1 DESC, columnName2 ASC;
    

    多个列不同的排序方式,先按照columnName1DESC排序,在按照columnName2ASC排序。

    4.过滤数据

    SELECT * FROM tableName WHERE columnname >= value;
    

    SELECT * FROM tableName WHERE columnName BETWEEN value1 AND value2;
    

    根据WHERE子句的条件查找符合要求的数据记录。如果value为字符串类型,需要使用单引号将value包括起来('value')。

    SELECT * FROM tableName WHERE coulmnName = value ORDER BY cloumnName2;
    

    在同时使用ORDER BYWHERE时,应该让WHERE位于ORDER BY之前。

    WHERE子句的操作符:

    操作符 说明
    = 等于
    <> 不等于
    != 不等于
    < 小于
    <= 小于等于
    > 大于
    >= 大于等于
    BETWEEN 在指定的两个值之间
    SELECT * FROM tableName WHERE columnName IS NULL;
    

    返回空字段值的列表。

    SELECT * FROM tableName WHERE columnName1 = value1 AND columnName2 = Value2;
    

    返回满足所有条件的列表

    SELECT * FROM tableName WHERE columnName1 = value1 OR columnName2 = value2;
    

    返回满足任一条件的列表

    SELECT * FROM tableName WHERE columnName1 = value1 OR columnName2 = value2 AND columnName3 >= value3;
    

    由于在SQL语句中AND操作符的优先级比OR更高,所以该语句就被翻译为

    返回字段columnName2等于value2并且columnName3大于等于value3或是columnName1等于value1并且columnName3大于等于value3的列表

    SELECT * FROM tableName WHERE (columnName1 = value1 OR columnName2 = value2) AND columnName3 >= value3;
    

    使用括号明确划分分组操作符

    SELECT * FROM tableName WHERE columnName IN (value1, value2, value3);
    

    返回columnName的值为(value1, value2, value3)中的一个的列表

    5.模糊查询

    模糊查询使用LIKE操作符同时使用通配符进行查询匹配

    SELECT * FROM tableName WHERE cloumnName LIKE 'value%';
    

    匹配符为%%表示任何字符出现任意次,并且可以位于任意位置进行匹配。该语句匹配所有以value开头的字符串。

    注意:
    根据MySQL的配置方式,当MySQL区分大小写时'value%'将不匹配VALUES。
    SELECT * FROM tableName WHERE cloumnName LIKE 'value_';
    

    匹配符_,_表示只匹配单个字符,不能多不能少。

    注意:
    1.使用匹配符会大大降低搜索性能,能不用最好不用。
    2.匹配符位于模式开始处性能最低,能不放开始就不放在开始。

    6.使用正则表达式进行过滤

    SELECT * FROM tableName WHERE columnName REGEXP '.000';
    

    语句REGEXP后跟着正则表达式,MySQL将对数据表正则匹配,但会匹配的列表。

    注意:
    1.LIKEREGEXP之间有一个重要的区别:
    在不使用通配符%_时, LIKE不返回结果
    REGEXP返回所有匹配的结果
    2.正则匹配不区分大小写。如果需要区分大小写,可以使用BINARY关键字,如
    SELECT * FROM tableName WHERE columnName REGEXP BINARY '.000';
    注意:
    为了匹配特殊字符,必须使用\为前导。\.表示查找..
    MySQL使用两个反斜杠,MySQL自己解释一个,正则表达式库解释另一个。
  • 相关阅读:
    页面后退的总结
    Flash Builder4.6 无法启动,并且报 Failed to create the Java Virtual Machine(1不行的话可以参考下2)
    单独的js代码文件被JSP文件调用,中文乱码问题
    Flash Builder4.6 破解方法的实践
    sql文学习.....关于条件判断的查询....casewhenthen
    解决flash builder 4.6安装过程中安装程序遇到错误(1)
    flex builder 4 控制台不能输出trace()的解决方法
    jstl遍历map,foreach
    jar包直接拷贝到WEBINF/lib下和以userLibrary形式引入的区别?/jar包放置在WEBINF/lib下和通过build path导入的区别是什么?
    flash build 4.6 不能debug 报错 C:\WINDOWS\system32\Macromed\Flash\NPSWF32.dll
  • 原文地址:https://www.cnblogs.com/tingyugetc/p/5496283.html
Copyright © 2020-2023  润新知