Python学习 Day9
MySQL
1、数据类型
常用数据类型如下: 整型:int ,bit 小数:decimal 字符串:varchar,char 日期时间:date,time,datetime 枚举类型(enum)
数据类型说明: 1、decimal表示浮点数,如decimal(5,2)表示总共存5位数,小数占2位 2、char表示固定长度的字符串,如char(3),如果填充ab时会补一个空格为‘ab ',3表示字符数 3、varchar表示可变长度的字符串,如varchar(3),填充'ab'时就会存储'ab',3表示字符数 4、对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器,然后在表中存储这个文件的保存记录 5、字符串 text 表示存储大文本,当字符大于4000时推荐使用
2、数据约束
约束是指数据在数据类型限定的基础上增加的要求,常见的约束如下: 1、主键 primary key :物理上的存储顺序,MySQL建议所有表的主键字段都叫id,类型为int unsigned 2、非空 not null :此字段不允许填写空值 3、唯一 unique :此字段的值不允许重复 4、默认 default :当不填写字段对应的值会使用默认值,如果填写时已填写为准 5、外键 foreign key :对关系字段进行约束,当为关系字段填写值时,会关联到的表中查询此值是否存在,如果存在则填写成功,不存在则填写失败并抛出异常
3、数据库操作的SQL语句
1、查看所有数据库
show databases;
2、创建数据库
creat database 数据库名 charset=utf8;
3、使用数据库
use 数据库名;
4、查看当前使用的数据库
select database();
5、删除数据库
drop database 数据库名;
4、表结构操作的SQL语句
1、查看当前数据库中所有表
show tables;
2、创建表

说明: creat table 表名( 字段名称 数据类型 可选的约束条件, column1 datatype contrai, ...... );
3、修改表-添加字段
alter table 表名 add 列名 类型 约束;
4、修改表-修改字段类型
alter table 表名 modify 列名 类型 约束; 注意:modify只能修改字段类型或约束,不能修改字段名
5、修改表-修改字段名和字段类型
alter table 表名 change 原名 新名 类型及约束; 注意;change:既能对字段重命名又能对字段类型及约束进行修改
6、删除字段名
alter table 表名 drop 列名;
7、查看当前表结构:
desc 表名;
8、查看创表sql语句
show creat table 表名;
9、产看创库SQL语句
show creat database 数据库名;
10、删除表
drop table 表名;
5、表数据操作的SQL语句
1、查询数据
1.1、查询所有列
select * from 表名;
1.2、查询指定列
select 列1,列2...from 表名;
2、添加数据
2.1、全列插入:
值的顺序与表结构字段的顺序完全一一对应 insert into 表名 values(...);
2.2、部分列插入:
值的顺序与给出的列顺序对应 insert into 表名 (列1,...) vales(值1,...);
2.3、全行多列插入
insert into 表名 values(...),(...);
2.4、部分列多行插入
insert into 表名(列1,...) vales(值1,...),(值1,...)...;
说明:主键列时自动增长,但是在全列插入时需要占位,通常使用空值(0或者null或者default) 在全列插入时,如果字段有默认值可以使用dafault来占位,插入后的数据就是之前设置的默认值
3、修改数据
update 表名 set 列1=值1,列2=值2,...where 条件;
4、删除数据
delete from 表名 where 条件;
以上删除是物理删除,无法恢复
6、as和distinct关键字
1、as关键字
1.1、使用as给字段起别名
select id as 序号,name as 名字,gender as 性别 from student; as 可以省略
1.2、可以通过as给表起别名
如果是单表查询 可以省略别名 select id,name,gender from student;
表名.字段名 select student.id,student.name,student.gender from student;
可以通过as 给表起别名 select s.id,s.name,s.gender from student as s;
2、distinct关键字
distinct可以去除重复数据行 select distinct 列1,列2,...from 表名
7、where条件查询语句
where 语句查询语法格式如下: select * from 表名 where 条件
1、比较运算符
| 等于 | = |
|---|---|
| 大于 | > |
| 大于等于 | >= |
| 小于 | < |
| 小于等于 | <= |
| 不等于 | != 或 <> |
2、逻辑运算符
and 两个条件都满足 or 两个条件中有一个满足 not 对条件查询到的结果取反
3、范围查询
1、between...and:表示在一个连续的范围内查询 2、in 表示在一个非连续的范围内查询
4、模糊查询
1、like是模糊查询关键字 2、%表示任意多个任意字符 3、_表示一个任意字符
select * from student where name like '黄%'; select * from student where name like '黄_'; select * from student where name like '黄__';
5、空判断查询
1、判断为空使用:is null 2、判断非空使用:is not null 不能使用 =null 或者 !=null
8、排序
排序查询语法: select * from 表名 order by 列1 asc|desc ,列2 asc|desc,... 说明: 1、先按照列1进行排序,如果列1的值相同,则按照列2进行排序,以此类推 2、asc 从小到大排序,即升序 3、desc 从大到小排序,即降序 4、默认按照列值从小到大排列(即asc关键字)
9、分页查询
语法: select * from 表名 (where 条件) limit start,count
说明: limit 是分页查询关键字 start 表示开始行索引,默认为0 count 表示查询条数
获取第n页数据的SQL语句 select * from 表名 limit (n-1)*m,m 其中n表示页数,m表示每页的条数
10、聚合函数
聚合函数又叫组函数,通常是对表中的数据进行统计和计算,一般结合分组(group by)来使用,用于统计和计算分组数据,聚合函数不对空值进行统计
常用的聚合函数: count(col):表示求指定列的总行数 max(col):表示求指定列的最大值 min(col):表示求指定列的最小值 sum(col):表示求指定列的和 avg(col):表示求指定列的平均值
col 指 列名
1、求总行数
一般如果要是指定列名,那么就是主键字段 select count(id) from student; 一般使用 select count(*) from student;
2、求最大值
select max(id) from student;
3、求和
select sum(height) from student where gender = '男';
4、求平均值
select avg(height) from student where gender = '男'; ifnull函数:表示判断指定字段的值是否为null,如果为空使用自己提供的值 select avg(ifnull(height,0)) from student where gender = '男';
11、分组查询
分组查询就是将查询结果按照指定字段进行分组,字段中的数据相等的分为一组 语法为: GROUP BY 列名 HAVING 条件表达式 WiTH ROLLUP 说明: 列名:是指按照指定字段的值进行分组 HAVING 条件表达式:用于过滤分组后的数据 WITH ROLLUP :在所有记录的最后加上一条记录,显示select 查询时聚合函数的统计和计算结果
