纯干货~MYSQL 基础(一)

数据库操作

  • CREATE DATABASE 数据库名字 创建数据库
  • USE 数据库名字选择数据库
  • show tables 显示所有表
  • drop database 数据库名字删除数据库

表操作

  • CREATE TABLE 表名(字段 类型,字段 类型) 创建表
  • show create table 表名 显示表的创建语句和详细信息
  • desc 表名 显示表的结构
  • DROP TABLE 表名 删除表
  • truncate table 表名 清空表
  • alter table 表名 add 字段 类型 添加表字段
  • alter table 表名 add 字段 类型 after 表字段 添加表字段,并且插入指定字段位置后面
  • alter table 表名 add 字段 类型 first 添加表字段,并插入最前面
  • alter table 表名 modify 字段 新类型 修改字段类型
  • alter table 表名 change 原字段名字 新字段名字 新类型; 修改字段名字并且修改类型
  • alter table 表名 drop column 字段; 删除表字段
  • alter table 旧表名 rename 新表名 修改表名

数据操作

  • 条件查询where
SELECT * from t_doctor WHERE doctor_name = "布隆";
  • order by 排序,默认升序(asc), 降序(高到低)desc
  • 分组GROUP BY
分组可能不是特别好理解,我单独举例解释下:
假如有一张护士表,和任务表,护士小姐姐的任务是要随访自己负责的病人,1个护士小姐姐负责多个病人,任务表中存着所有护士小姐姐,执行的所有任务。现在查一下,每个护士小姐姐,各自做了多少次任务

SELECT nurse_id,count(*) as tatal FROM t_visit_task GROUP BY nurse_id ORDER BY tatal desc;
  • with ROLLUP 表明是否对分类聚合后的结果进行再汇总

SELECT nurse_id,count(*) as tatal FROM t_visit_task GROUP BY nurse_id  WITH ROLLUP;
  • 模糊查询like

SELECT * from t_doctor WHERE doctor_name LIKE "%张%";
  • in查询
SELECT * FROM t_visit_task WHERE nurse_id in ("1126cf7f-d31e-43f1-a2dd-05b37873f99b","8ce40555-4b62-498b-8e39-af4abb18abfd");


SELECT * FROM t_visit_task WHERE nurse_id = "1126cf7f-d31e-43f1-a2dd-05b37873f99b" OR nurse_id = "8ce40555-4b62-498b-8e39-af4abb18abfd"
  • insert into 表名(字段1,字段2) values(值1,值2),(值1,值2) 插入数据
  • update 表名 set 字段1="新值",字段2="新值" where 字段='xxx'更新数据,使用update一定一定要跟着条件,否则同一字段全部数据都被更改
  • delete from 表名 where 字段="xx"; 删除数据,一定要加条件,不然全删
  • union 和 union all 对多个select查询出来的数据结果进行合并展示(去除重复部分),union all不去重复

    • Union必须由两条或者两条以上的SELECT语句组成,语句之间使用Union链接
    • Union中的每个查询必须包含相同的列、表达式或者聚合函数,他们出现的顺序可以不一致(这里指查询字段相同,表不一定一样)
    • 列的数据类型必须兼容,兼容的含义是必须是数据库可以隐含的转换他们的类型



SELECT * FROM t_nurse WHERE created_at > "2020-10-13"
UNION
SELECT * FROM t_nurse WHERE nurse_name LIKE "%李%";
  • 多表联查

    • inner join 查询多张表满足关联条件的数据

      SELECT * FROM t_nurse INNER JOIN t_visit_task ON t_nurse.nurse_id = t_visit_task.nurse_id;
      
      
      SELECT * FROM t_nurse,t_visit_task WHERE t_nurse.nurse_id = t_visit_task.nurse_id;
    • left join 以左表为主表,其它表配合给出关联条件的数据,有则显示,没有则空

      SELECT * FROM t_nurse LEFT JOIN t_visit_task ON t_nurse.nurse_id = t_visit_task.nurse_id;
    • right join 以右表为主表,其它表配合给出关联条件的数据,有则显示,没有则空

      SELECT * FROM t_nurse RIGHT JOIN t_visit_task ON t_nurse.nurse_id = t_visit_task.nurse_id;

数据类型

数值类型

纯干货~MYSQL 基础(一)_第1张图片

日期时间类型

纯干货~MYSQL 基础(一)_第2张图片

字符串类型

纯干货~MYSQL 基础(一)_第3张图片

你可能感兴趣的:(mysql)