7.21 数据库
1.表操作
-
添加列
alter table 表名 add 字段名 类型;
-
修改列的类型
alter table 表名 modify 字段名 类型;
-
修改列名称和类型
alter table 表名 change 原字段名 新字段名 新字段名类型;
-
删除列
alter table 表名 drop 字段名;
- 修改表名
alter table 旧表名 rename to新表名;
或者
rename table 旧表名 to 新表名;
-
删除表
drop table 表名; #会连数据一起删除
-
截断表
truncate table 表名; #删除表之后会创建出一个空表
-
创建和某表结构一样的表
create table 表名like 要复制的表; create table 表名 like 数据库.要复制的表;(要复制的表在其他数据库)
2.数据管理
-
插入数据
insert into 表名[(字段名1,字段名2...)]values/value(value1,value2...); 插入多条数据时 insert into 表名 values(),(),(),...;
-
查询数据
select * from 表名; select* from 表名 where 条件(字段名=value); #设置列别名 select 字段名 [as]'别名' from 表名 where 条件; #剔除重复行 select dictinct *from 表名; 只是在显示的时候不显示 数据并没有删除
-
修改数据
update 表名 set 字段=value where 条件;
3.数据备份
-
备份表结构
mysqldump -u root -p -d 数据库 表名>location; #-d 不备份数据,默认为备份数据 mysqldump -u root -p -d 数据库>location; #数据库和表结构一起备份
-
备份多个数据库
mysqldump -u root -p -d --databases 数据库1 数据库2>location; mysqldump -u root -p -d --all-databases 数据库1 数据库2>location;
-
将查询的结果集保存为文件
mysql -u root -p -d -e"select *from 数据库.表名">location
-
还原数据结构和数据
#登录使用数据库 source loction; mysql -u root -p 新的数据库名<location;
4.条件查询
-
条件过滤
select * from 表名; select * from 表名 where 字段=values; select *from 表名 where 字段 between value1 (最小值)and value2(最大值); select * from 表名 where 字段 in(value1,value2...) 例 查询年龄等于18或 20或40的员工信息 select*from 表名 where age in(18,20,40);
-
模糊查询
_匹配单个字符 %匹配0个或多个字符 like select*from 表名 where 字段like '--'; 例查询姓名为两个字的员工的信息, select *from 表名 where name 'like --'; 查询身份证号最后一位为X的员工信息 select* from 表名 where id like '%X';
-
逻辑运算
select*from 表名 where 字段>value; > >= < <= == !=
-
聚合函数:将一列数据作为一个整体,进行纵向计算
常见的聚合函数:count(统计数量),max(最大值),min(最小值),avg(平均值),sum(求和)作用于表中的某一列 语法: select 聚合函数(字段列表)from 表名; 例 统计员工数量 select count (*)/(id) from 表名; ==null值不参与所有聚合函数运算==
-
分组查询
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件]; 例 根据性别分组,统计男性员工和女性员工的数量 select sex,count(*)from 表名 group by sex;
where与having的区别:
执行时间不同:where是在分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后进行过滤。
判断条件不同:where不能对聚合函数进行判断,而having可以。
-
排序查询
select 字段列表 from 表名 where 条件 order by 字段1 排序方式1,字段2 排序方式2;
-
分页查询
select * from 表名 limit 起始索引,查询记录数; 起始索引从0开始 起始索引=(查询页码-1)*每页显示记录数 例 查询第一页员工数据,每页显示十条记录
select* from 表名 limit 0,10;
例 查询第二页数据,每页展示十条记录
select *from 表名 limit 10,10;
##### 5.函数
函数是指可以直接被另一段程序调用的程序和代码。
- 字符串函数
concat 字符串拼接,将S1,S2,…,Sn拼接成一个字符串
select(“hello”,“world”) from 表名;
lower(str) 将字符串str全部转换成小写
eg. select lower(str),upper(str) from 表名;
upper(str)将字符串str全部转换成大写
#计算长度
select length(“123”);
select length(字段)from 表名