MYSQL的简单使用

1. 登录和登出数据库

登录数据库:

输入下面命令:

登出(退出)数据库:

2. 数据库操作的SQL语句

  1. 查看所有数据库

  2. 创建数据库

  3. 使用数据库

  4. 查看当前使用的数据库

  5. 删除数据库-慎重

3. 表结构操作的SQL语句

  1. 查看当前数据库中所有表

  2. 创建表

    说明:

  3. 修改表-添加字段

  4. 修改表-修改字段类型

    说明:

  • modify: 只能修改字段类型或者约束,不能修改字段名
  1. 修改表-修改字段名和字段类型

    说明:

  • change: 既能对字段重命名又能修改字段类型还能修改约束
  1. 修改表-删除字段

  2. 查看创表SQL语句

  3. 查看创库SQL语句

  4. 删除表

4. 表数据操作的SQL语句

  1. 查询数据

  2. 添加数据

    说明:

  • 主键列是自动增长,但是在全列插入时需要占位,通常使用空值(0或者null或者default)
  • 在全列插入时,如果字段列有默认值可以使用 default 来占位,插入后的数据就是之前设置的默认值
  1. 修改数据

  2. 删除数据

    问题:

    上面的操作称之为物理删除,一旦删除就不容易恢复,我们可以使用逻辑删除的方式来解决这个问题。

    说明:

  • 逻辑删除,本质就是修改操作

5. 关键字

  • as 关键字可以给表中字段 或者 表名起别名
  • distinct 关键字可以去除重复数据行。

6. where条件查询的介绍

使用where条件查询可以对表中的数据进行筛选,条件成立的记录会出现在结果集中。

where语句支持的运算符:

  1. 比较运算符
  2. 逻辑运算符
  3. 模糊查询
  4. 范围查询
  5. 空判断

where条件查询语法格式如下:

7. 比较运算符查询

  1. 等于: =
  2. 大于: >
  3. 大于等于: >=
  4. 小于: <
  5. 小于等于: <=
  6. 不等于: != 或 <>

例1:查询编号大于3的学生:

例2:查询编号不大于4的学生:

例3:查询姓名不是“黄蓉”的学生:

例4:查询没被删除的学生:

8. 逻辑运算符查询

  1. and
  2. or
  3. not

例1:查询编号大于3的女同学:

例2:查询编号小于4或没被删除的学生:

例3:查询年龄不在10岁到15岁之间的学生:

说明:

  • 多个条件判断想要作为一个整体,可以结合‘()’。

9. 模糊查询

  1. like是模糊查询关键字
  2. %表示任意多个任意字符
  3. _表示一个任意字符

例1:查询姓黄的学生:

例2:查询姓黄并且“名”是一个字的学生:

例3:查询姓黄或叫靖的学生:

10. 范围查询

  1. between .. and .. 表示在一个连续的范围内查询
  2. in 表示在一个非连续的范围内查询

例1:查询编号为3至8的学生:

例2:查询编号不是3至8的男生:

11. 空判断查询

  1. 判断为空使用: is null
  2. 判断非空使用: is not null

例1:查询没有填写身高的学生:

注意:

  1. 不能使用 where height = null 判断为空
  2. 不能使用 where height != null 判断非空
  3. null 不等于 ” 空字符串

12. 排序查询语法

排序查询语法:

语法说明:

  1. 先按照列1进行排序,如果列1的值相同时,则按照 列2 排序,以此类推
  2. asc从小到大排列,即升序
  3. desc从大到小排序,即降序
  4. 默认按照列值从小到大排列(即asc关键字)

例1:查询未删除男生信息,按学号降序:

例2:显示所有的学生信息,先按照年龄从大–>小排序,当年龄相同时 按照身高从高–>矮排序:

13. 分页查询的语法

说明:

  1. limit是分页查询关键字
  2. start表示开始行索引,默认是0
  3. count表示查询条数

例1:查询前3行男生信息:

14. 聚合函数

聚合函数又叫组函数,通常是对表中的数据进行统计和计算,一般结合分组(group by)来使用,用于统计和计算分组数据。

常用的聚合函数:

  1. count(col): 表示求指定列的总行数
  2. max(col): 表示求指定列的最大值
  3. min(col): 表示求指定列的最小值
  4. sum(col): 表示求指定列的和
  5. avg(col): 表示求指定列的平均值

15. 分组查询

分组查询就是将查询结果按照指定字段进行分组,字段中数据相等的分为一组。

分组查询基本的语法格式如下:

GROUP BY 列名 [HAVING 条件表达式] [WITH ROLLUP]

说明:

  • 列名: 是指按照指定字段的值进行分组。
  • HAVING 条件表达式: 用来过滤分组后的数据。
  • WITH ROLLUP:在所有记录的最后加上一条记录,显示select查询时聚合函数的统计和计算结果

  • group by的使用

group by可用于单个字段分组,也可用于多个字段分组

  • group by + group_concat()的使用

group_concat(字段名): 统计每个分组指定字段的信息集合,每个信息之间使用逗号进行分割

  • group by + 聚合函数的使用

  • group by + having的使用

having作用和where类似都是过滤数据的,但having是过滤分组数据的,只能用于group by

  • group by + with rollup的使用

with rollup的作用是:在最后记录后面新增一行,显示select查询时聚合函数的统计和计算结果

16. 连接查询

连接查询可以实现多个表的查询,当查询的字段数据来自不同的表就可以使用连接查询来完成。

连接查询可以分为:

  1. 内连接查询
  2. 左连接查询
  3. 右连接查询
  4. 自连接查询

内连接查询语法格式:

左连接查询语法格式:

右连接查询语法格式:

自连接查询的用法: 左表和右表是同一个表,根据连接查询条件查询两个表中的数据。

17. 子查询的介绍

在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为子查询语句,外部那个select语句则称为主查询.

查询大于平均年龄的学生:

18. 外键约束作用

外键约束:对外键字段的值进行更新和插入时会和引用表中字段的数据进行验证,数据如果不合法则更新和插入会失败,保证数据的有效性

  • 对于已经存在的字段添加外键约束

  • 在创建数据表时设置外键约束

  • 删除外键约束

  • 添加外键约束: alter table 从表 add foreign key(外键字段) references 主表(主键字段);
  • 删除外键约束: alter table 表名 drop foreign key 外键名;

TIPS: 数据库设计之三范式的介绍

范式: 对设计数据库提出的一些规范,目前有迹可寻的共有8种范式,一般遵守3范式即可。

  • 第一范式(1NF): 强调的是列的原子性,即列不能够再分成其他几列。
  • 第二范式(2NF): 满足 1NF,另外包含两部分内容,一是表必须有一个主键;二是非主键字段 必须完全依赖于主键,而不能只依赖于主键的一部分。
  • 第三范式(3NF): 满足 2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况。

发表评论

邮箱地址不会被公开。 必填项已用*标注