前言:数据库的重中操作就是查询,而查询中操作率最高的就是对数据表中数据的查询!!
一、数据库的增删查操作
- 登录数据库
windows,linux均适用
方式1:mysql -uroot -p密码
方式2: mysql -uroot -p 回车后再输入密码(以密码不可见的方式登录)
- 创建数据库:
create database 库名 charset=utf8
- 显示当前所有的数据库:
show databases
- 使用数据库
use 数据库名
- 显示当前正在使用的数据库:
select database()
- 删除数据库
drop database 库名;
①登录数据库
方式1:mysql -uroot -p密码
方式2: mysql -uroot -p 回车后再输入密码(以密码不可见的方式登录)
二、数据表的增删改查操作
1.查询操作
-
显示当前正在使用的数据表:
select table();
-
显示当前数据库中所有的表:
show tables;
-
显示当前数据库中某个表的表结构(具体字段和类型约束):
desc 表名;
2.修改操作(重命名、修改、删除字段)
- 向数据表中添加字段:
alter table 表名 add 新字段 类型 约束
- 修改数据表中的字段(不修改字段名)
alter table 表名 modify 字段名 类型 约束
- 修改数据表中的字段(修改字段名)
alter table 表名 change 原字段名 新字段名 类型 约束
- 删除数据表中的字段
alter table 表名 drop 字段名
注:删除某一字段后,该字段的所有数据都将被删除
3.删除操作
- 删除数据表
drop table 表名-
注:删除某一数据表后,该数据表中的数据都会被删除
4.创建操作
create table 表名(
字段1 类型 约束,
字段2 类型 约束
);
注意:多个约束之间用空格隔开,最后一个字段后面不加逗号
三、对数据的操作
1.添加数据
- 向指定字段添加数据
insert into 表名(字段1名,字段2名) values(值1,值2);
注:值1,值2的顺序要与字段的顺序一致
- 一次性向一个字段添加多条数据
insert into 表名(字段名) values(值1),(值2),(值3);
- 一次性向指定字段添加多行
insert into 表名(字段1名,字段2名) values
(值1,值2),
(值3,值4);
- 向所有字段添加数据
insert into 表名 values(值1,值2,值3,…);
- 一次性向所有字段添加多行数据
Insert into 表名 values
(值1,值2,值3,…),
(值4,值5,值6,…);
2.删除数据
- 物理删除
delete from 表名 where 条件;
- 逻辑删除
update 表名 set is_delete = 1 where 条件
注:逻辑删除一般用is_delete字段来标记,值为1即删除,值为0即未删除
3.修改数据
update 表名 set 字段1=值1,字段2=值2;
4.查询数据
- 查询全部数据
select * from 表名;
- 查询指定字段
select 字段1,字段2 from 表名;
- 重命名查询
select 字段1 as 名1,字段2 as 名2 from 表名 as 表别名;
select 表名.字段1,表名.字段2 from 表名
select 别名.字段1,别名.字段2 from 表名 as 别名
四、数据的去重操作
select distinct 字段名 from 表名;
select * from 表名 group by 字段名;
五、条件查询
1 .比较查询
<,>, >=, <= ,=, != ,<>(不等于的另一种)
2.逻辑查询
and , or, not
3.模糊查询
like
rlike(参数是正则表达式)
%(匹配0个或多个)
_(匹配1个或多个)
4.范围查询
in(值不连续),
not in ,
between… and…(值连续)
注:in只是在所有结果集中匹配(可能不连续),between是在连续区间中匹配
5.空判断
is null,
is not null
*注:null 不等于空字符串’’
六、排序
1.对单个字段排序
order by 字段名 desc/asc
2.多个字段排序
order by 字段1名desc,字段名2 desc
*注:默认排序顺序为升序(asc),所谓多个字段排序表示当按照第一个字段排序后有相同情况出现时,将相同情况的字段再按照第二个字段排序
七、聚合函数
- count(*/列名)表示计算总行数,括号中写星与列名,结果是相同的
- max(列名)表示求此列的最大值
- min(列名)表示求此列的最小值
- sum(列名)表示求此列的和
- sum(列名)表示求此列的和
八、分组
将查询结果按照1个或多个字段进行分组,字段值相同的为一组
select 字段名 from 表名 group by 字段名
注:若group by 后不可使用where 条件判断,只能使用having 条件判断
约定:一般对原数据表操作时使用where 条件。如果需要对一系列操作后的数据表使用条件判断时,一搬使用having
九、分页
- 显示指定数量的记录
select * from 表名 limit [start,]stop;
start表示开始的记录,stop表示结束的记录,不写start时默认从0开始,即第1条记录
- 按页查询-显示指定页数的数据
limit (第N页-1)*每页的记录,每页的个数
十、连接查询
1.内连接
inner join 表名 on 条件
2.外连接
left join 表名 on 条件
right join 表名 on 条件
3.自链接
inner join 表名 on 条件 —自己连接自己