文章目录

  • 数据库常用操作命令(MySQL)
  • 一、数据库相关操作
  • 二、表相关的操作命令
  • 三、单表的增、删、改、查
  • 四、查询条件规则(where后的语句)
  • 查询关键字总结
  • 分组查询:
  • 子查询(嵌套查询)
  • 关联查询(重点)
  • 五、表的约束
  • 总结


数据库常用操作命令(MySQL)

一、数据库相关操作

  1. 查看所有数据库:
    show databases;
  2. 列出每个数据库的大小 sql server_mysql

  3. 创建数据库:
    create database 数据库名;
  4. 列出每个数据库的大小 sql server_表名_02

  5. 查看数据库详情:
    show create database 数据库;
  6. 列出每个数据库的大小 sql server_数据库_03

  7. 删除数据库
    drop database 数据库名;
  8. 列出每个数据库的大小 sql server_表名_04

  9. 使用数据库
    use 数据库名;
  10. 列出每个数据库的大小 sql server_mysql_05

注意:数据库MySQL中,操作命令均不区分大小写

二、表相关的操作命令

  1. 创建表:
    create table 表名(字段1 类型1,字段2 类型2,…)
  2. 列出每个数据库的大小 sql server_表名_06

  3. 查询所有表
    show tables;
  4. 列出每个数据库的大小 sql server_表名_07

  5. 查询表的详情:
    show create table 表名;
  6. 列出每个数据库的大小 sql server_数据库_08

  7. 查看表字段(查看表各字段字符类型):
    desc 表名;
  8. 列出每个数据库的大小 sql server_数据库_09

  9. 删除表
    drop table 表名;
  10. 列出每个数据库的大小 sql server_数据库_10

  11. 清空表内容:
    truncate table 表名
  12. 列出每个数据库的大小 sql server_mysql_11

  13. 修改表
  14. 修改表名
rename table 原名 to 新名;
  1. 添加字段:
    添加到最后一列:
alter table 表名  add  字段名  类型;

添加在第一列位置:

alter table 表名 add 字段名 类型  first;

在指定列后面添加:

alter table 表名  add 字段名 类型  after 列名;
  1. 删除表字段:
alter table  表名 drop 字段名;
  1. 修改表中的字段类型
alter table 表名  change 原始名  新名 新类型;
  1. 修改表中的字段位置:
alter table 表名  modify 字段名 新类型 first| after 字段名;

三、单表的增、删、改、查

  1. 添加数据:
    insert into 表名 values(值1,值2,值3);
    全表插入 [不需要进行列的声明 , 插入值要和列的顺序保持一致]
    insert into 表名(字段1,字段2) values(值1,值2);
    部分列插入 需要说明
  2. 批量插入数据
    insert into 表名 values(值1,值2,值3),(值1,值2,值3),(值1,值2,值3);
  3. 查询操作
    select * from 表名;
    select * from 表名 where 条件;
  4. 修改操作
    update 表名 set 字段名=值 where 条件;
    在使用update语句时要添加where条件
  5. 删除操作
    delete from 表名 where 条件;

空值的判断
is null
is not null (不使用等号)

四、查询条件规则(where后的语句)

查询关键字总结

1.模糊查询 like

  • %:代表 0个或者多个字符
  • _:代表一个未知字符
  • 名称中以大写字母S开头的 : S%
  • 名称中以大写字母S结尾的 : %S
  • 名称中包含S的 : %S%
  • 第三个字符为d的 : __d%
  • 名字中倒数第三个是d的 : %d__

2.设置查找范围

  • between and[表示一个区间范围]
  • not between and [表示不在一个区间范围]
  • in (select 语句) in通常连接一个子查询的结果

3.排序
– 降序 desc
– 升序 asc[默认值]
order by 字句是select 语句的最后一部分

4.limit:查询表中指定区间的数据
limit a,b
a:开始的记录数 a=0表示从第一条记录开始
b:查询的总数[从a开始要查询几条记录]

5.聚合函数(组函数)

  • 平均值 :avg(字段名)
  • 最大值:max(字段名)
  • 最小值: min(字段名)
  • 求和:sum(字段名)
  • 统计数量:coun(*)

6 .字符串相关的函数

  • 字符串拼接:concat
  • 获取字符串长度:char_length()
  • 替换:replace(str,old,new) replaceAll() [进行所有字符的替换]

分组查询:

  • 出现每个|每种 就要按照每个|每种进行分组查询 group by …
    示例1:查询每个部门的平均工资
    select deptno,avg(sal) from emp006 group by deptno;
    示例2:查询每个部门的人数 group by deptno 统计数量的组函数 count()
    select deptno, count() from emp006 group by deptno;
    示例3:查询工资>1000的员工中每个部门的最高工资
    select deptno, count(
    ) from emp006 group by deptno;
  • 分组条件:
    where 条件中不能出现组函数
    where avg(sal)>2000: 【错误写法】
    示例1:查询每个部门的平均工资,要求平均工资>2000
    select deptno,avg(sal) avg_sal from emp006 group by deptno having avg_sal>2000;
    示例2:查询emp表中每个部门的平均工资高于2000的部门编号,部门人数,平均工资,最后根据平均工资降序排列
    select deptno,avg(sal) avg_sal,count(*) from emp006 group by deptno having avg_sal>2000 order by avg_sal desc;

子查询(嵌套查询)

示例1:查询emp表中工资最高的员工信息
select * from emp006 where sal=(select max(sal) from emp006);
示例2:查询高于平均工资的员工信息
select * from emp006 where sal>(select avg(sal) from emp006);
示例3:查询和JONES相同工作的其他员工信息(不包含JONES本人)
select * from emp006
where job =(select job from emp006 where ename=‘JONES’)
and ename <>‘JONES’;
小结:
1)子查询可以多层嵌套(不建议层次较深的嵌套)
2)子查询的位置
可以出现在查询列 | 可以充当表 | 可以充当查询条件
3)子查询的结果可以当做一张虚表(中间表)

关联查询(重点)

同时需要查询多张表的数据(>=2):称为关联查询。

  • 等值连接[内连接]:查询的是两张表的交集数据,例如
    相同条件为 emp 【deptno】 和 dept 【deptno】

----查询员工的所有信息
select * from emp, dept where emp.deptno = dept.deptno;

---- 给表添加别名 关联条件 deptno
select e.,d. from emp e, dept d where e.deptno = d.deptno;

  • 外连接
    一张表中的全部数据和另外一张表的交集数据
    on:专门用来表示连接条件
    where子句表示查询条件
    left join:左外连接
    select * from A left join B on A.x = B.x where A=…
    示例:查询A表的全部数据和B表中符合条件的数据
    select * from emp006 e left join dept001 d on e.deptno = d.deptno

关联查询:
内连接:两张表的交集
外连接: 全部数据+ 符合条件的数据

五、表的约束

  • 主键约束
    用来保证表中字段的值唯一且非空
    主键:表示数据唯一性的字段
    通常创建表的时候会添加主键约束 primary key
  • 主键自增
    auto_increment
    在原始最大值的基础上+1 [由mysql数据库自动完成]

总结

此次总结了MySQL的基本操作命令,数据库和表的增、删、改、查关键字总结如下:
增加: create(增加数据库和表),insert into(添加单表数据)
删除:drop(直接删除数据库和表),truncate(清除表内容)
修改:alter(修改表字段),update(修改表数据/内容)
查看:show(查看所有表或者数据库),select(查找表中某一部分内容)