目录

1.MySQL数据操作

1.1添加记录

1.2修改记录

1.3删除记录

1.4查询记录

1.5多表查询

1.6外键约束

1.7特殊形式的查询

2.MYSQL常用函数


1.MySQL数据操作

1.1添加记录

  • 格式:INSERT [INTO] tbl_name[(col_name,...)] {VALUE|VALUES}(VALUES...);
  • 不指定字段名称
    • INSERT tbl_name VALUE(value...)
    • 需要按照建表时的字段顺序给每一个字段赋值
  • 列出指定字段:INSERT tbl_name(字段名称,...) VALUES(值,...)
  • INSERT ... SET的形式:INSERT tbl_name SET 字段名称=值,...;
  • INSERT ... SELECT:INSERT tbl_name[(字段名称...)] SELECT 字段名称,... FROM  tbl_name [WHERE 条件]
  • 一次添加多条记录:INSERT tbl_name[(字段名称,...)] VALUES(值,...),(值,....),(值,...)

1.2修改记录

  • 格式:UPDATE tbl_name SET 字段名称=值,字段名称=值 [WHERE 条件]
  • 如果不添加条件,整个表中的记录都会被更新

1.3删除记录

  • 格式:DELETE FROM tbl_name [WHERE 条件]
  • 如果不添加条件,表中所有记录都会被删除
  • DELETE 清空数据表的时候不会重置AUTO_INCREMENT的值,可以通过ALTER 语句将其重置为1
  • 彻底清空数据表-------TRUNCATE [TABLE] tbl_name;
    • 清除表中所有记录
    • 会重置AUTO_INCREMENT的值

1.4查询记录

  • 格式:SELECT select_expr,... FROM tbl_name [WHERE 条件] [GROUP BY {col_name|position} HAVING 二次筛选]
    [ORDER BY {col_name|position|expr} [ASC|DESC]]
    [LIMIT 限制结果集的显示条数] 
  • 查询表中所有记录:SELECT * FROM tbl_name;*所有字段
  • 指定字段的信息:SELECT 字段名称,... FROM tbl_name
  • 库名.表名:SELECT 字段名称,... FROM db_name.tbl_name;
  • 给字段起别名:SELECT 字段名称 [AS] 别名名称,... FROM db_name.tbl_name; 
  • 给数据表起别名:SELECT 字段名称 ,... FROM tbl_name [AS] 别名;
  • 表名.字段名的:SELECT tbl_name.col_name,... FROM tbl_name;
  • WHERE 条件-------会筛选出符合条件的记录
    • 比较运算符    > >= < <= != <> <=>(<=> 和 =的区别)(<=>可以检测NULL值)
    • IS [NOT] NULL:检测值是否为NULL或者NOT NULL
    • 指定范围:[NOT] BETWEEN ... AND
    • 指定集合:[NOT] IN(值,...)
    • 逻辑运算符
      • AND:逻辑与
      • OR:逻辑或
    • 匹配字符
      • [NOT] LIKE
      • %:任意长度的字符串
      • _:任意一个字符
  • GROUP BY 分组
    • 把值相同放到一个组中,最终查询出的结果只会显示组中一条记录
    • 分组配合GROUP_CONCAT()查看组中某个字段的详细信息
    • 配合聚合函数使用
      • COUNT()
        • 统计记录总数
        • 如果写的是COUNT(字段名称),字段中的值为NULL,不统计进来
        • 写COUNT(*)会统计NULL值
      • SUM()  求和
      • MAX()  求最大值
      • MIN()  求最小值
      • AVG()  求平均值
    • 配合WITH ROLLUP关键使用:会在记录末尾添加一条记录,是上面所有记录的总和
    • HAVING子句对分组结果进行二次筛选
  • ORDER BY 排序  :ORDER BY 字段名称 ASC|DESC
  • LIMIT 限制结果集显示条数
    • LIMIT 值--显示结果集的前几条记录
    • LIMIT offset,row_count--从offset开始,显示几条记录,offset从0开始

1.5多表查询

  • 笛卡尔积的形式
  • 内连接的形式
    • 查询两个表中符合连接条件的记录
    • SELECT 字段名称,... FROM tbl_name1 INNER JOIN tbl_name2 ON 连接条件
  • 外连接的形式
    • 左外连接
      • SELECT 字段名称,... FROM tbl_name1 LEFT [OUTER] JOIN tbl_name2 ON 条件;
      • 先显示左表中的全部记录,再去右表中查询复合条件的记录,不符合的以NULL代替
    • 右外连接
      • SELECT 字段名称,... FROM tbl_name1  RIGHT [OUTER] JOIN tbl_name2 ON 条件;
      • 先显示右表中的全部记录,再去左表中查询复合条件的记录,不符合的以NULL代替

1.6外键约束

  • 只有InnoDB存储引擎支持外键
  • 创建外键
    • 建表时指定外键
      • [CONSTRAINT 外键名称 ]FOREIGN KEY(字段名称) REFERENCES 主表(字段名称)
      • 子表的外键字段和主表的主键字段类型要相似;如果是数值型要求一致,并且无符号也要一致;如果是字符型,要求类型一致,长度可以不同
      • 如果外键字段没有创建索引,MySQL会自动帮我们添加索引
      • 子表的外键关联的必须是父表的主键
      • 外键约束的参照操作
        • CASCADE:从附表删除或更新,子表也跟着删除或者更新,级联的操作
        • SET NULL:从附表删除或者更新记录,并设置子表的外键列为NULL。
        • NO ACTION | RESTRICT:拒绝对父表做更新或者删除操作
    • 动态添加外键
      • ALTER TABLE tbl_name [CONSTRAINT 外键名称] ADD FOREIGN KEY(外键字段) REFERENCES 主表(主键字段);

1.7特殊形式的查询

  • 子查询
    • SELECT 字段名称 FROM tbl_name WHERE col_name=(SELECT col_name FROM tbl_name)
    • 内层语句查询的结果可以做为外层语句查询的条件
    • 由IN引发的子查询
    • 由比较运算符引出子查询
    • 由EXISTS引发的子查询
    • ANY SOME ALL 六、MySQL数据操作及常用函数
    • INSERT ... SELECT
    • CREATE ... SELECT
    • CREATE TABLE tbl_name LIKE tbl_name;
  • 联合查询
    • UNION:
      • SELECT 字段名称,... FROM tbl_name1 
        UNION
        SELECT 字段名称... FROM tbl_name2;
    • UNION ALL
      • SELECT 字段名称,... FROM tbl_name1 
        UNION ALL
        SELECT 字段名称... FROM tbl_name2;
    • UNION ALL 是简单的合并,UNION会去掉表中重复记录
  • 自身连接查询
    • 无限级分类的实现形式
  • 正则表达式查询
    • 正则表达式的模式字符
      • ^:匹配字符串开始的部分
      • $:匹配字符串结束部分
      • .:代表一个任意字符
      • [字符集合]:[abc] [a-z] [0-9]
      • [^字符集合]:除了集合中的内容
      • s1|s2|s3:匹配s1或者s2或者s3
      • *:代表匹配前面的字符0次1次或者多次
      • +:代表匹配前面的字符至少出现1次
      • 字符{n}:前面的字符正好出现n次
      • 字符{m,n}:前面的字符至少出现m次,最多出现n次
    • REGEXP '匹配方式'
      • SELECT 字段名称,... FROM tbl_name WHERE 字段名称 REGEXP '匹配模式'

2.MYSQL常用函数

  • 数学函数
    • CEIL():进一取整
    • FLOOR():舍掉小数部分
    • ROUND():四舍五入
    • TRUNCATE():截取小数点后几位
    • MOD():取余数
    • ABS():取绝对值
    • POWER():幂运算
    • PI():圆周率
    • RAND()或者RAND(X):0~1之间的随机数
    • SIGN(X):得到数字符号
    • EXP(X):计算e的x次方
  • 字符串函数
  • 日期时间函数
  • 其它常用函数

 

相关文章: