前情回顾1.数据表的创建修改 update [tb] set col = val where 条件修改字段 alteralter table [tb] add 字段名 数据类型alter table [tb] add 字段名 数据类型 first;alter table [tb] add 字段名 数据类型 after 字段类型alter table [tb] modify 字段名 数据类型名字alter table [tb] change 旧字段名 新字段名 数据类型alter table [tb] drop 字段名;alter table [tb] rename 表名;delete from [tb] where 条件2.高级查询模糊查询 like % _as 重命名排序 order by desc asc限制 limit [num] offfset [num] select update delete联合查询 union all(显示重复的结果) 默认去重子查询 from 的语句 select 返回多个结果的集合 where 子句= 返回一个精确的值 in3. 聚合 *** 作聚合函数: avg() max() min() sum() count()聚合分组: group by聚合筛选: having where *** 作实际的字段--索引 :查询次数的多的时候 对某个字段或者多个字段查询--索引表 : Btree Hash() ...--优点: 查询速度快, 提高查询效率-- 缺点: 创建索引会占用物理空间外键约束[constraint symbol] foreign key(字段)references 表名(字段);级联动作默认从表如果用到了主表的数据,主表不能删也不能改级联更新 on delete cascade on update cascade主表无论修改还是删除,从表都跟着更新设置空 set null主表无论删除还是更新,从表所对应的外键字段的值为null表关联关系1:m 主人 汽车m:n 运动员 项目练习 pyq用户表朋友圈表 : 1:m 一个用户可以发多条朋友圈--关系表 点赞用户 朋友圈 的关系--多对多: 一个朋友圈可以被多个用户点赞,--一个用户可以点赞多条朋友圈作业:自行设计 图书 作家 出版社 E—R出表格excel 写代码作家表出版社表图书表 1:m 一本书来自一个作者,一个作者可以写多本书1:m 一本书可以让一家出版社出版,这家出版社可以出多本书m:n 作者 出版社文档中 E——R 学生- 课程 - 教师 画出excel表格写代码 建表 插入值
--1. 统计每位作家出版图书的平均价格select author,avg(price) from books group by author;--2. 统计每个出版社出版图书数量select press,count(*) from books group by press;--3. 统计同一时间出版图书的最高价格和最低价格select p_time,max(price),min(price) from books group by p_time;--4. 筛选出那些出版过超过50元图书的出版社,--并按照其出版图书的平均价格降序排序select press,avg(price) from books group bypresshaving max(price)>50order by avg(price) desc;--索引 :查询次数的多的时候 对某个字段或者多个字段查询--索引表 : Btree Hash() ...--优点: 查询速度快, 提高查询效率-- 缺点: 创建索引会占用物理空间--创建带索引的数据表create table index_test(ID int auto_increment,name varchar(32),primary key(ID),unique nameIndex(name));--索引分类 普通索引 唯一索引 主键索引--建表的时候没有创建索引create unique index name on class(name);-- insert_data 插入了2000000 查看速度set profiling = 1; 打开功能 (项目上线一般不打开)--查询语句show profiles 查看语句执行信息--外键关联CREATE table dept (ID int PRIMARY KEYauto_increment,dname VARCHAR(50) not null);insert into dept values (1,"技术部"),(2,"销售部"),(3,"市场部"),(4,"行政部"),(5,'财务部'),(6,'总裁办公室');-- 创建人员表CREATE table person ( ID int PRIMARY KEYauto_INCREMENT, name varchar(32) NOT NulL,age tinyint unsigned, salary decimal(8,2),dept_ID int ) ;--外键关联alter table person add constraint dept_fkforeign key(dept_ID) references dept(ID);insert into person values(1,"lily",29,20000,2),(2,"Tom",27,16000,1),(3,"Joy",30,28000,1),(4,"emma",24,8000,4),(5,"Abby",28,17000,3),(6,"Jame",32,22000,3);--从表插入数据时,注意外键字段的值要存在主表中alter table person drop foreign key dept_fk;--级联动作alter table person add constraint dept_fkforeign key(dept_ID) references dept(ID)on delete cascade on update cascade;alter table person drop foreign key dept_fk;drop index dept_fk on person;alter table person addforeign key(dept_ID) references dept(ID) on delete set null on update set null;--一对多create table people (ID varchar(32)primary key,name varchar(30),age int unsigned);create table car(ID int primary keyauto_increment,brand varchar(32),price decimal(10,2),pID varchar(32),foreign key(pID) references people(ID));--多对多create table athlete(ID int primary keyauto_increment,name varchar(32) not null,age tinyint not null,country varchar(32) not null);create table item(ID int primary keyauto_increment,rname varchar(35));--关系表create table athlete_item(ID int primary keyauto_increment,aID int not null,tID int not null,foreign key(aID) referencesathlete(ID),foreign key(tID)references item(ID));
"""use stu;create table index_test (ID int primary key auto_increment,name varchar(30));"""import pyMysqLdb = pyMysqL.connect(user='root',password="123456",database='stu',charset='utf8')cur = db.cursor()sql = "insert into index_test (name) values (%s);"exe = []s = "Tom"for i in range(2000000): name = s + str(i) exe.append(name)try: cur.executemany(sql,exe) db.commit()except: db.rollback()db.close()
总结 以上是内存溢出为你收集整理的Python第二阶段学习 day07全部内容,希望文章能够帮你解决Python第二阶段学习 day07所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)