第二个星期的学习内容有:
数据操作:
查询所有数据:select * from 表名
插入数据:
全列插入:insert into 表名 values(...)
缺省插入:insert into 表名(列1,...) values(值1,...)
同时插入多条数据:insert into 表名 values(...),(...)...;
主键列是自动增长,但是在全列插入时需要占位,通常使用0,插入成功后以实际数据为准
修改数据:
update 表名 set 列1=值1,... where 条件
删除数据:
delete from 表名 where 条件
数据备份:
sudo -s; cd /var/lib/mysql; Mysqldump – uroot –p 数据库名 > ~/Desktop/备份文件.sql;
消除重复行:
select distinct 字段名 from 表名;
条件筛选:
select * from 表名 where 条件;
举例:select * from 表名 where id<=4;
模糊查询;
select * from 表名 where 字段名 like '黄_';(_代表一个字符,*代表所有字符,%代表多个字符)
范围查询:
select * from students where id in(1,3,8);
select * from students where id between 3 and 8;
空判断:
select * from students where hometown is null;
五个聚合函数:
max() min() count() sum() avg()
分组查询:
select 列1,列2,聚合... from 表名 group by 列1,列2,列3...
举例:select gender as 性别,count(*) from students group by gender;(显示男女学生总数)
对结果集的数据筛选:
select 列1,列2,聚合... from 表名group by 列1,列2,列3...having 列1,...聚合...
举例:select gender as 性别,count(*)from students group by gender having gender=1;
where与having的不同:where是对原始数据集的筛选,而having是对结果集进行筛选。
查询排序:
select * from 表名order by 列1 asc|desc,列2 asc|desc,...(desc是降序,asc是升序)
举例:select * from students where gender=1 order by id desc;
部分查询:
select * from 表名 limit start,count
对查询结果进行分页操作:
select * from student where isdelete=0 limit (n-1)*m,m
字段约束之外键:
在表中添加外键:
alter table 子表的数据表名add foreign key(子表的外键名称) references 父表的数据表名称(父表的主键名称);
或者在创建表时添加外键:
foreign key(外键名) references 父表名(父表中要链接的字段名),
建好外键之后可以进行连接查询:
inner join 父表名 on 字表名.外键名=父表名.链接字段名