windows,pycharm,python,PyMySQL

客户端存入的时间时,从当前时区转化为UTC(世界标准时间)进行存储,查询时有将其转化为客户端当前时区进行返回 。不常用 。date YYYY-MM-DD(1000-01-01 / 9999-12-31)time HH:MM:SS(-838:59:59 / 838:59:59)3.2 表的关系 单表:单独一张保存信息的一对多:两张表存储信息,且两张表存在一对多或多对一的关系多对多:需要三张表来存储信息,两张表 + 关系表,创造出两个单表之间多对多关系为建立表的关系,需要使用外键来建立约束4. 使用操作数据库 4.1 连接数据库()
import pymysql# 连接数据库conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',charset='utf8',password="123456")cursor = conn.cursor()
4.2创建数据库和表
#1.创建数据库,charset编码规则,collate排序规则cursor.execute("create database db1 default charset utf8 collate utf8_general_ci")#查询不需要commit(),增删改需要commit()conn.commit()#2.进入数据库创建表,并查看cursor.execute("use db1")sq1 = """create table L1(id int not null primary key auto_increment,title varchar(128),content text,ctime datetime)default charset=utf8;"""cursor.execute(sq1)conn.commit()
4.2-补1:创建数据表时的关键字
create table L1(id int primary key auto_increment,--primary key主键,不允许为空,不能重复--auto_increment自增--一张表只能有一个主键,一个自增列,自增列一般为主键name varchar(16) not null.--不允许为空email varchar(32) null,--允许为空age int default 3--默认值为3)default charset=utf8;
4.2-补2:关联表时的外键 1,外键是一种索引,是通过一张表中的一列指向另一张表的 主键,使得这两张表产生关联
2,外键可以在创建表时添加,也可以后续使用alter table 表名 add......来添加;
3,外键也可通过alter table 表名 dropkey ....来删除
4,有多张表时,关系表需要有多个外键约束参考: MySQL外键(详解)
参考: sql_外键4.3 查看数据库和表,以及表的内容
# 查看数据库cursor.execute("show databases")result = cursor.fetchall()print(result)#进入数据库,查看数据表cursor.execute("use db1")cursor.execute("show tables")result = cursor.fetchall()print(result)#查看数据表的内容cursor.execute("desc l1")result = cursor.fetchall()print("desc:",result)#查看数据表的数据cursor.execute("select * from l1")result = cursor.fetchall()print("select:",result)
4.4删除数据库和表,清空表
#删除数据库cursor.execute("drop database db1")conn.commit()#删除数据表cursor.execute("use db1")cursor.execute("drop table l1")conn.commit()#清空数据表cursor.execute("delete from l1")或:cursor.execute("truncate table l1")--速度快,但无法回滚和撤销
4.5修改表 添加列 alter table 表名 add 列名 类型 [其他关键字];删除列 alter table 表名 drop列名 类型;修改类的类型 alter table 表名列名 类型;修改列名和类型 alter table 表名原列名 新列名 新类型;修改列默认值 alter table 表名 alter 列名 set默认值;删除列默认值 alter table 表名 alter 列名 drop ;4.6 数据行增删改查 新增数据:
insert into 表名 (列名,列名,...,列名) values(值,值,...,值)insert into 表名 (列名,列名,...,列名) values(值,值,...,值),(值,值,...,值)--插入多行数据insert into 表名 values(值,值,值),(值,值,值)--如果插入值的个数和列的个数相同,则可以不写列名
删除数据
delete from 表名--删除表里的所有数据delete from 表名 where 条件--按条件删除例1:delete from tb1 where name="sdd"例2:delete from tb1 where name='sdf' and id='123'例3:delete from tb1 where name='sdb' or id='123'例4:delete from tb1 where id>9