纯干货~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个护士小姐姐负责多个病人,任务表中存着所有护士小姐姐,执行的所有任务。现在查一下,每个护士小姐姐,各自做了多少次任务

<!--根据nurse_id分组,并且统计数量 -->
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
<!--查询doctor_name中包含张的所有行-->
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");

<!--如果是where=-->
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中的每个查询必须包含相同的列、表达式或者聚合函数,他们出现的顺序可以不一致(这里指查询字段相同,表不一定一样)

    • 列的数据类型必须兼容,兼容的含义是必须是数据库可以隐含的转换他们的类型

<!--第一条查询2020-10-13后入职的护士小姐姐-->
<!--第二条查询名字包含李的小姐姐,不论她什么时候入职的-->
<!--执行后,两条sql结果可能都含有彼此已存在的数据,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;
    

数据类型

数值类型

图片1

日期时间类型

图片1

字符串类型

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值