终端连接他人Mysql:
表名为zimu,表结构为:
a b ctime
1 2 2019-7-16 09:51:56
4 6 2019-7-16 09:56:24
mysql查询过滤重复项:select distinct(a) from table;
mysql更新某一行:update zimu set a="111" where id="1";
mysql 创建ctime字段时,设置类型为datetime,加上default current_timestamp,这样的话每次创建行数据就会自动加上当前时间,这样的话更新行数据,时间依然为创建数据的时间。
datetime类型字段要更新时间的话,必须严格按照这种时间格式才能修改成功:update zimu2 set ctime="2019-07-18 16:33:09" where id="1";
datetime类型字段更新时间为当前时间:update zimu2 set ctime=now() where id="1";
//获取月份
SELECT * FROM zimu WHERE MONTH(ctime)=7;
//获取年份
SELECT * FROM zimu WHERE YEAR(ctime)=7;
//天数小时与获取年份月份相似.....
pymysql中:
增删改都需要commit()
一对多关系查询,例如students表和classes表:
select students.id, students.name, classes.title from students left join classes on students.classes_id = classes.id;
这样写是两个表的id都能拿到:
sql = 'select students.id, students.name, students.classes_id, classes.title from students left join classes on students.classes_id = classes.id order by id;'
多对多关系建标(相当于一个中间表和需要多对多关联的两张表分别建立一对多关系表):
create table tea_cls(
-> id int not null primary key auto_increment,
-> tea_id int not null,
-> cls_id int not null,
-> constraint fk_me_tea foreign key(tea_id) references teachers(id),
-> constraint fk_me_cls foreign key(cls_id) references classes(id)
-> ) engine=innodb default charset=utf8;
多对多关系表查询:
select teachers.id, teachers.name,classes.title from teachers left join tea_cls on tea_cls.tea_id=teachers.id left join classes on tea_cls.cls_id=classes.id;
sql一次插入多条数据:
sql返回的数据类型是字典类型:
涉及到权限管理的话,可以优先考虑基于角色的权限管理
数据库扩展知识:
建立索引的优缺点:
创建索引可以建表的时候创建,也可以后期创建索引