简介
mysql数据库,是当前应用非常广泛的一款关系型数据库
主要知识点包括:
数据库与表的操作
数据的增加、修改、删除
数据的查询(重点)
与python交互
数据库操作
创建数据库
create database 数据库名 charset=utf8;
删除数据库
drop database 数据库名;
切换数据库
use 数据库名;
查看当前选择的数据库
select database();
表操作
查看当前数据库中所有表
show tables;
创建表
auto_increment表示自动增长
create table 表名(列及类型);
如:
create table students(
id int auto_increment primary key,
sname varchar(10) not null
);
修改表
alter table 表名 add|change|drop 列名 类型;
如:
alter table students add birthday datetime;
删除表
drop table 表名;
查看表结构
desc 表名;
更改表名称
rename table 原表名 to 新表名;
查看表的创建语句
show create table '表名';
数据操作
查询
select * from 表名
增加
全列插入:insert into 表名 values(...)
缺省插入:insert into 表名(列1,...) values(值1,...)
同时插入多条数据:insert into 表名 values(...),(...)...;
或insert into 表名(列1,...) values(值1,...),(值1,...)...;
主键列是自动增长,但是在全列插入时需要占位,通常使用0,插入成功后以实际数据为准
修改
update 表名 set 列1=值1,... where 条件
删除
delete from 表名 where 条件
逻辑删除,本质就是修改操作update
alter table students add isdelete bit default 0;
如果需要删除则
update students isdelete=1 where ...;
条件
使用where子句对表中的数据筛选,结果为true的行会出现在结果集中
语法如下:
select * from 表名 where 条件;
比较运算符
等于=
大于>
大于等于>=
小于<
小于等于<=
不等于!=或<>
逻辑运算符
and
or
not
模糊查询
like
%表示任意多个任意字符
_表示一个任意字符
范围查询
in表示在一个非连续的范围内
空判断
注意:null与’'是不同的
判空is null
聚合
为了快速得到统计数据,提供了5个聚合函数
count(*)表示计算总行数,括号中写星与列名,结果是相同的
查询学生总数
select count(*) from students;
max(列)表示求此列的最大值
select max(id) from students where gender=0;
min(列)表示求此列的最小值
select min(id) from students where isdelete=0;
sum(列)表示求此列的和
select sum(id) from students where gender=1;
avg(列)表示求此列的平均值
select avg(id) from students where isdelete=0 and gender=0;
分组
按照字段分组,表示此字段相同的数据会被放到一个组中
分组后,只能查询出相同的数据列,对于有差异的数据列无法出现在结果集中
可以对分组后的数据进行统计,做聚合运算
语法:
select 列1,列2,聚合... from 表名 group by 列1,列2,列3...
排序
为了方便查看数据,可以对数据进行排序
语法:
select * from 表名
order by 列1 asc|desc,列2 asc|desc,...
分页
当数据量过大时,在一页中查看数据是一件非常麻烦的事情
语法
select * from 表名
limit start,count