desc 表:查询表结构
__create:__创建(多用于创建数据库和创建表)
__alter:__修改(多用于修改表) __modify:__只能修改字段类型或者约束 __change:__既能对字段重命名又能修改字段类型还能修改约束
unsigned(无符号的【只能为正数】)
signed(有符号的【可以为负数】)
__insert into valuse():__添加数据
__update set:__修改数据
__select:__查询(多用于查询表中的元素,也可用来查询当前数据库)
__between and :__在…中间(多用于查询表编号连续的信息)
__in():__在…里(多用于查询多个表编号不连续的信息)
__order by:__以…排序(一般作为条件与desc使用)
__desc:__降序(一般与order by 一起使用,显示结果为降序)
limit:界限(后面跟两个参数分别为__开始索引位置__和__每页显示个数)[第n页对应的开始索引为__limit (n-1)*m,m]
__count():__统计(一般用于统计表中指定列的元素个数。__null__不做统计)
__max():__最大值(用于显示表中指定列的最大值)
__min():__最小值(用于显示表中指定列的最小值)
__sum():__求和(用于显示表中指定列的和。不统计__null__值)
__avg():__求平均值(用于显示表中指定列的平均值。但是如果值为__null__不参与统计,所以要在里面加入一个条件语句)
ifnull():如果为null的话(条件语句,里面有两个参数,一个为__指定列,一个为__指定列里面值为null的话给他的默认值)
# 统计height列的平均值,如果为null的话则默认值为0
avg(ifnull(height,0))
__group by:__分组(按指定列分组,查询列需要与指定列相同)
__group_concat():__显示每个分组的指定信息
group by + __group_concat():__根据指定列进行分组,且查询指定列的指定信息
group by + __avg():__根据指定列进行分组,且查询指定列的指定信息的平均值
group by + __count():__根据指定列进行分组,且查询指定列的指定信息的个数
__having:__对分组信息进行过滤,满足条件的才显示(和where类似,但是__where__是对所有信息进行过滤。__having__是对分组信息进行过滤 需要放在最后面否则会报错)
__with rollup:__显示聚合函数的统计和计算结果(对总数进行计算)
# with rollup 汇总(这里会在最后输出一行,显示count(*)的总数)
select gender,count(*) from students group gender with rollup
__inner join。。。on。。。:__对指定的列表进行内连接,__on__后面是条件语句,只有满足条件了才会显示出来。
__left join 。。。on。。。:对指定列表进行左连接,以__left join 左边的列表为主要列表, (根据左表查询右表数据) 如果左边的数据在右表查询不到,则右边的以null填充。
__right join。。。on。。。:对指定列表进行右连接,以__right join 右边的列表为主, (根据右表查询左表数据) 如果右边的数据在左边查询不到,则左边的以null填充。
__source:__导入(导入以.sql 为结尾的sql文件到数据库)
source areas.sql;
即把一个表分成两个表去查询
# 把一个表分为两个表c和p 显示c的pid数据和p的id数据相同的元素(山西省的所有城市)
select c.id, c.title, c.pid, p.title from areas as c inner join areas as p on c.pid = p.id where p.title = '山西省';
unsigned(无符号的【只能正数】)
signed(有符号的【可以为负数】)
# 添加外键约束,即一个人表里的字段是另一个表里的主键
alter table students add foreign key(c_id) references classes(id);
# -- 创建老师表
create table teacher(
id int not null primary key auto_increment,
name varchar(10),
s_id int not null,
foreign key(s_id) references school(id)
);
__foreign key:__外键(后面一般跟当前表的字段)
__references:__参照(后面一般跟父表的字段)
—被设为外键的表是主表
—将主表的主键设为外键的表是从表
# -- 需要先获取外键约束名称,该名称系统会自动生成,可以通过查看表创建语句来获取名称
show create table students;
# CONSTRAINT `students_ibfk_1` FOREIGN KEY (`c_id`) REFERENCES `classes` (`id`)
# “students_ibfk_1” 为students的外键
# -- 获取名称之后就可以根据名称来删除外键约束
alter table students drop foreign key 外键名;
round():保留指定小数个数
# 保留小数点之后两位
round(avg(price),2)
__connect():__建立连接
* 参数host:连接的mysql主机,如果本机是'localhost'
* 参数port:连接的mysql主机的端口,默认是3306
* 参数user:连接的用户名
* 参数password:连接的密码
* 参数database:数据库的名称
* 参数charset:通信采用的编码方式,推荐使用utf8
__cursor():__获取游标
__execute():__执行sql语句(返回sql语句影响了多少行)
__fetchall():__取出数据(如果执行的sql语句是查询的话取出全部数据)
__fetchone():__取出一行数据(如果执行的sql语句是查询的话取出一行数据)
__commit:提交事务 __ 将本地文件的缓存提交到物理表中,完成数据的更新(数据增,删,改情况下使用)
rollback:回滚事务 放弃本地缓存文件中的缓存数据,表示回到开始事务前的状态(数据增,删,改情况下使用。一般在try excep里面)
__close:关闭 __ (一般先关闭游标再关闭连接)