MySQL || 速成,整理自《MySql必知必会》

明天就去南京看傻白啦

配置、查看

  • ➕环境变量:vim ~/.bash_profile ,把mysql/bin放进去。
  • mysql -u root -p
  • show databases;
  • create database dbname;
  • use dbname
  • show tables;
  • show columns from tbname; = describe tbname;
  • 查看建表语句:show create table tbname;
  • 查看所有允许的show语句:help show
  • SQL语句不区分大小写,分号结尾。

检索 SELECT

  • 最基本:SELECT 列名用逗号分隔 FROM 表名
  • 子句的顺序:from、where、order by、limit

  • 所有列: *
  • 去重:只能在第一个列名前➕DISTINCT,效果是DINSTINCT应用于所有列出的列拼接得到的结果。
  • LIMIT子句
    行号从0起。
    select xxx from tbxx limit 10; 返回不超过10条记录。
    select xxx from tbxx limit 3, 5; 返回从行3开始的,不超过10条记录。相当于 select xxx from tbxx limit 5 offset 3;

排序检索到的结果 ORDER BY子句

  • 可以用非检索的列排序
  • 按多个列排序:逗号分隔列名(优先级高到低)
  • 默认升序ASC,指定降序用DESC关键字:DESC关键字只作用于它之前的一个列名。
  • order by,limit结合

过滤数据 WHERE子句

where子句指定搜索条件/过滤条件。

过滤由谁负责️
  • between A and B包括A,B
    条件操作符
  • 数值直接写,字符串用单引号

  • 空值检查:设计表的时候可以指定某列是否可以不包含值,即为NULL。
    过滤时用WHERE xxx IS NULL

    ⚠️

  • 组合WHERE子句

    • 用逻辑操作符号 AND, OR。AND优先级更高。
    • 运算次序:注意加小圆括号。
  • IN:相当于OR
    where A = val1 or A = val2 or A = val3 就是 where A in (val1, val2, val3)

  • NOT:否定后跟条件。where A not in (1, 2, 3)

  • 通配符

    • search pattern(搜索串)中的字符可以是区分大小写的。
    • LIKE操作符:使用通配符必须使用LIKE操作符。
    • %
      %表示任意字符出现任意次数,但%匹配不到NULL。
      ‘%lla’,‘%il%’,‘r%ing’……
    • _ 下划线
      下划线表示任意字符出现一次。
    • 使用通配符的搜索会更耗时,少用。
  • MySql正则表达式 regular expression
    MySQL正则表达式只支持正则表达式的一个很小的子集。
    MySQL正则表达式匹配不区分大小写,若要区分,使用REGEXP BINARY。

  • 基本字符匹配:
    关键字REGEXP
    匹配任意一个字符 .
    REGEXP与LIKE区别:


    ⚠️
  • 进行OR匹配 符号|
    WHERE car_id REGEXP '1000|2000|3030'

  • 匹配几个字符之一
    [一组字符]:表示匹配这组字符中的一个
    [123] 就是 [1|2|3]:匹配1或2或3
    [^123] 匹配除123外的字符
    匹配范围:[0-9] 匹配任意一个数字

    字符类

匹配特殊字符:\为前导(转义)
WHERE name REGEXP '\.' 查找name含.的


特殊字符

你可能感兴趣的:(MySQL || 速成,整理自《MySql必知必会》)