mysql从入门到精通《二》
二、命令行脚本(以乌班图为操作系统)接上篇
6、数据表的增删改查(curd)
curd的解释: 代表创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete)
#查询所有列 select * from 表名; select * from classes; #查询指定列 select 列1,列2,... from 表名; select id,name from classes; #增加 insert into 表名 values(...) insert into students values(0,’郭靖‘,1,'蒙古','2016-1-2'); #部分列插入:值的顺序与给出的列顺序对应 insert into 表名(列1,...) values(值1,...) insert into students(name,hometown,birthday) values('黄蓉','桃花岛','2016-3-2'); #多行插入 insert into 表名 values(...),(...)...; insert into classes values(0,'python1'),(0,'python2'); #修改 update 表名 set 列1=值1,列2=值2... where 条件 update students set gender=0,hometown='北京' where id=5; #删除 delete from 表名 where 条件 delete from students where id=5; #逻辑删除,本质就是修改操作 update students set isdelete=1 where id=1; #清空数据(会把全表都给清空掉,并且自增主键从1开始) truncate table_name;
7、数据库备份与恢复
备份
#运行mysqldump命令 mysqldump -uroot -p 数据库名 >shuju.sql; #按照提示输入密码
恢复
#连接mysql,创建新的数据库,准备恢复数据 #退出mysql连接,执行以下命令: mysql -uroot -p 新数据库名 <shuju.sql #根据提示输入密码
8、查询
查询所有字段
select *from 表名;
select * from students;
查询指定字段
select 字段名1,字段名2,。。。from 表名;
select *from students;
使用as给字段起别名
select 字段名 as 新名 from 表名;
select name as a from students;
使用as给表起别名
select 字段名 from 表名 as 新表名;
select name from students as s;
消除重复行
在select后面列使用distinct可以消除重复的行
select distinct 列1,。。。from 表名;
select distinct name from students;
9,条件
使用where 字句对表中的数据进行筛选,结果为True的行会出现在结果集中
(1)、查询编号大于3的学生信息
select * from students where id>3;
(2)、查询姓名不是“小明”的学生信息
select * from students where name !="小明";
(3)、查询编号大于3 的女生(and or not )
select * from students where id >3 and gender="女生";
(4)、模糊查询
查询姓刘的学生
select * from where name like "刘%";
查询姓刘且名字为两个字的学生信息
select * from students where name like"刘_";
(5)、范围查询
查询编号是1或3或8的学生信息
select *from students where id in(1,3,8);
查询编号为1-8的学生信息
select * from students where id between 1 and 8;
查询学生编号为3-6的男生信息
select * from students where (id between 3 and 6) and gender="男生";
(6)、空判断
注意null 与""是不相同的
查询没有填写身高的学生
select * from students where height is null;
查询填写了身高的男生信息
select * from students where height is not null and gender="男生";
10、排序
为了方便查看数据,可以对查询出来的数据进行排序
默认排序方式为升序排列(asc)
asc从小到大排序
desc从大到小排序
(1)、查询男生信息,按照id降序排列
select * from students order by id desc;
(2)、显示所有的学生信息,先按照年龄从大-->小排序,当年龄相同时 按照身高从高-->矮排序
select * from students order by age desc,height desc;
11、聚合函数
(1)、总数
count(*)表示计算总行数,括号中也可以写列名
查询学生总数
select count(*) from students;
(2)、最大值
查询女生的编号最大值
select max(id) from students where gender="女生";
(3)、最小值
查询男生最小编号
select min(id) from students where gender="男生";
(4)、求和
查询男生的总年龄
select sum(age) from students where gender="男生";
(5),平均值
查询女生的平均年龄
select avg(age) from students where gender ="女生";
(6)四舍五入
查询女生的平均年龄并保存两位小数
select round(avg(age),2) from students where gender ="女生";