目录
DDL--操作数据库
数据库DDL(Data Definition Language)是一种用于定义和管理数据库的语言,它用于创建、修改和删除数据库中的对象,如表、视图、索引等。
1.查询
show databases;
2.创建
创建数据库
create database 数据库名称;
创建数据库(判断,如果不存在则创建)
create database if not exists 数据库名称;
3.删除
删除数据库
drop database 数据库名称:
删除数据库(判断,如果存在则删除)
drop database if exists 数据库名称;
这样数据库就又回到一开始的时候了;
4.使用数据库
查看当前使用的数据库
select database();
使用数据库
use 数据库名称;
DDL--操作数据表
1.创建表
create table 表名(
字段名1 数据类型1,
字段名2 数据类型2,
...
字段名n 数据类型n
);
2.查询表
- 查询当前数据库下所有表的名称
show tables;
- 查询表结构
desc 表名称;
3.修改表
(1)修改表名
alter table 表名 rename to 新的表名;
(2) 添加一列
alter table 表名 add 列名 数据类型;
(3)修改数据类型
alter table 表名 modify 列名 新数据类型;
(4)修改列名和数据类型
alter table 表名 change 列名 新列名 新数据类型;
password被修改成了username;
(5)修改列
alter table 表名 drop 列名;
username列已被删除了
DML
数据库DML(Data Manipulation Language)是一种数据操作语言,用于对数据库中的数据进行增加、修改、删除和查询等操作
添加数据
1.给指定列添加数据
insert into 表名(列名1,列名2,..) values(值1,值2,..);
2.给全部列添加数据
insert into 表名 values(值1,值2,..);
3.批量添加数据
insert into 表名(列名1,列名2,..) values(值1,值2,..),(值1,值2,..),(值1,值2,..)...;
给全部列也可以省略前面的列名
insert into 表名 values(值1,值2,..),(值1,值2,..),(值1,值2,..)...;
DQL
DQL(Database Query Language)是数据库查询语言,用于从数据库中检索数据。
查询语法
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组后条件
order by
排序字段
limit
分页限定
1.查询多个字段
select 字段列表 from 表名;
查询所有列的数据,列名的列表可以使用*替代。不建议使用!
select * from 表名;
2.去除重复记录
select distinct 字段列表 from 表名;
3.起别名
as as也可以省略
select name,score as 成绩,sex 性别 from stu;
条件查询(where)
1.条件查询语句
select 字段列表 from 表名 where 条件列表;
2.条件的符号与功能
其中需要注意的是 判断是否为null
模糊查询 like
通配符:
(1)_:代表单个任意字符
(2)%:代表任意个数字符
-----------------分割线-----------------
查询姓'马'的学生
查询第二个字是'花'的学生
查询名字中包含'可'的学生
排序查询
排序查询语句
select 字段列表 from 表名 order by 排序字段1[排序方式],排序字段2[排序方式2]....;
排序方式:
- ASC:升序排列(默认值)
- DESC:降序排列
如果有多个排序条件,当前面的条件值一样时,才会根据第二条件进行排序
--------------------------------------分割线----------------------------------------------
查询学生信息,按年龄升序排列
因为默认是asc,所以不写asc也是升序排序
查询学生信息,按年龄降序排列
查询学生信息,按照数学成绩降序排列,如果数学成绩一样,就按照英语成绩升序排列
聚合函数
聚合函数就是将一列作为一个整体,进行纵向计算
那么聚合函数该如何使用呢?
聚合函数语法:👇
select 聚合函数名(列名) from 表;
null值不参与所有聚合函数的运算
例子:
1.统计班里有多少个学生
count 统计的列名不能为null
2.查询英语的最高分
3.查询英语的最低分
4.查询英语成绩的总分
5.查询英语的平均分
6.查询数学的最低分
null值不参与所有聚合函数的运算
分组查询
分组查询语句
select 字段列表 from 表名 [where 分组前条件限定] group by 分组字段名 [having 分组后条件过滤];
分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义
where和having的区别:
- 执行实际不一样:where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤
- 可判断的条件不一样:where不能对聚合函数进行判断,having可以
执行顺序:where > 聚合函数 > having
例子:
1.查询男同学和女同学各自的数学平均分
但是这样我们并不知道这两个数分别代表的时男同学还是女同学
所以我们把分组字段也查一次就好了
2. 查询男同学和女同学各自的数学平均分,以及各自的人数
3.查询男同学和女同学各自的数学平均分,以及各自的人数,要求:分数低于60分的不参与分组
4.查询男同学和女同学各自的数学平均分,以及各自的人数,要求:分数低于60分的不参与分组,分组之后人数大于3
分页查询
分页查询语句
select 字段列表 from 表名 limit 起始索引,查询条目数
- 起始索引:从0开始
计算公式:起始索引=(当前页码-1)*每页显示的条数
例子:
1、从0开始查询,查询3条数据
2、每页显示3条数据,查询第2页数据
这也是我个人的学习记录,继续努力!!!
数据库sql下篇: