From c6666f45d46c1bc03015e00fdb1a95ca9201681d Mon Sep 17 00:00:00 2001 From: jackfrued Date: Tue, 4 Jun 2019 00:01:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=86=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E9=98=B6=E6=AE=B5=E7=9A=84=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "Day36-40/NoSQL\345\205\245\351\227\250.md" | 4 +- ...6\225\260\346\215\256\345\272\223MySQL.md" | 102 +++++++++++------- 2 files changed, 62 insertions(+), 44 deletions(-) diff --git "a/Day36-40/NoSQL\345\205\245\351\227\250.md" "b/Day36-40/NoSQL\345\205\245\351\227\250.md" index 3a42f07..e7345ec 100644 --- "a/Day36-40/NoSQL\345\205\245\351\227\250.md" +++ "b/Day36-40/NoSQL\345\205\245\351\227\250.md" @@ -345,8 +345,6 @@ mongo --host 172.18.61.250 MongoDB shell version v3.6.5 connecting to: mongodb://172.18.61.250:27017/ -... -> ``` 1. 查看、创建和删除数据库。 @@ -544,4 +542,4 @@ python3 >>> ``` -关于PyMongo更多的知识可以通过它的[官方文档](https://api.mongodb.com/python/current/tutorial.html)进行了解。 \ No newline at end of file +关于PyMongo更多的知识可以通过它的[官方文档](https://api.mongodb.com/python/current/tutorial.html)进行了解,也可以使用[MongoEngine]()这样的库来简化Python程序对MongoDB的操作,除此之外,还有以异步I/O方式访问MongoDB的三方库[motor]()都是不错的选择。 \ No newline at end of file diff --git "a/Day36-40/\345\205\263\347\263\273\345\236\213\346\225\260\346\215\256\345\272\223MySQL.md" "b/Day36-40/\345\205\263\347\263\273\345\236\213\346\225\260\346\215\256\345\272\223MySQL.md" index af3f860..7ceaf2c 100644 --- "a/Day36-40/\345\205\263\347\263\273\345\236\213\346\225\260\346\215\256\345\272\223MySQL.md" +++ "b/Day36-40/\345\205\263\347\263\273\345\236\213\346\225\260\346\215\256\345\272\223MySQL.md" @@ -87,6 +87,12 @@ netstat -nap | grep mysql ``` + 也可以使用下面的命令查找是否有名为mysqld的进程。 + + ```Shell + pgrep mysqld + ``` + - 使用MySQL客户端工具连接服务器。 命令行工具: @@ -177,35 +183,32 @@ -- 创建学院表 create table tb_college ( - collid int not null auto_increment comment '编号', - collname varchar(50) not null comment '名称', - collmaster varchar(20) not null comment '院长', - collweb varchar(511) default '' comment '网站', + collid int auto_increment comment '编号', + collname varchar(50) not null comment '名称', + collmaster varchar(20) not null comment '院长', primary key (collid) ); -- 创建学生表 create table tb_student ( - stuid int not null comment '学号', - stuname varchar(20) not null comment '姓名', - stusex bit default 1 comment '性别', - stubirth date not null comment '出生日期', - stuaddr varchar(255) default '' comment '籍贯', - collid int not null comment '所属学院', + stuid int not null comment '学号', + stuname varchar(20) not null comment '姓名', + stusex boolean default 1 comment '性别', + stubirth date not null comment '出生日期', + stuaddr varchar(255) default '' comment '籍贯', + collid int not null comment '所属学院', primary key (stuid), foreign key (collid) references tb_college (collid) ); - -- alter table tb_student add constraint fk_student_collid foreign key (collid) references tb_college (collid); - -- 创建教师表 create table tb_teacher ( - teaid int not null comment '工号', - teaname varchar(20) not null comment '姓名', - teatitle varchar(10) default '助教' comment '职称', - collid int not null comment '所属学院', + teaid int not null comment '工号', + teaname varchar(20) not null comment '姓名', + teatitle varchar(10) default '助教' comment '职称', + collid int not null comment '所属学院', primary key (teaid), foreign key (collid) references tb_college (collid) ); @@ -213,40 +216,37 @@ -- 创建课程表 create table tb_course ( - couid int not null comment '编号', - couname varchar(50) not null comment '名称', - coucredit int not null comment '学分', - teaid int not null comment '授课老师', + couid int not null comment '编号', + couname varchar(50) not null comment '名称', + coucredit int not null comment '学分', + teaid int not null comment '授课老师', primary key (couid), foreign key (teaid) references tb_teacher (teaid) ); -- 创建选课记录表 - create table tb_score + create table tb_record ( - scid int auto_increment comment '选课记录编号', - stuid int not null comment '选课学生', - couid int not null comment '所选课程', - scdate datetime comment '选课时间日期', - scmark decimal(4,1) comment '考试成绩', - primary key (scid), - foreign key (stuid) references tb_student (stuid), - foreign key (couid) references tb_course (couid) + recid int auto_increment comment '选课记录编号', + sid int not null comment '选课学生', + cid int not null comment '所选课程', + seldate datetime default now() comment '选课时间日期', + score decimal(4,1) comment '考试成绩', + primary key (recid), + foreign key (sid) references tb_student (stuid), + foreign key (cid) references tb_course (couid), + unique (sid, cid) ); - - -- 添加唯一性约束(一个学生选某个课程只能选一次) - alter table tb_score add constraint uni_score_stuid_couid unique (stuid, couid); ``` 2. DML ```SQL - -- 插入学院数据 - insert into tb_college (collname, collmaster, collweb) values - ('计算机学院', '左冷禅', 'http://www.abc.com'), - ('外国语学院', '岳不群', 'http://www.xyz.com'), - ('经济管理学院', '风清扬', 'http://www.foo.com'); + insert into tb_college (collname, collmaster) values + ('计算机学院', '左冷禅'), + ('外国语学院', '岳不群'), + ('经济管理学院', '风清扬'); -- 插入学生数据 insert into tb_student (stuid, stuname, stusex, stubirth, stuaddr, collid) values @@ -289,7 +289,7 @@ (9999, '审计学', 3, 3366); -- 插入选课数据 - insert into tb_score (stuid, couid, scdate, scmark) values + insert into tb_record (sid, cid, seldate, score) values (1001, 1111, '2017-09-01', 95), (1001, 2222, '2017-09-01', 87.5), (1001, 3333, '2017-09-01', 100), @@ -304,9 +304,9 @@ (1378, 1111, '2017-09-05', 82), (1378, 7777, '2017-09-02', 65.5), (2035, 7777, '2018-09-03', 88), - (2035, 9999, curdate(), null), - (3755, 1111, date(now()), null), - (3755, 8888, date(now()), null), + (2035, 9999, default, null), + (3755, 1111, default, null), + (3755, 8888, default, null), (3755, 9999, '2017-09-01', 92); ``` @@ -460,6 +460,26 @@ - 隔离性:多个事务并发执行时,一个事务的执行不应影响其他事务的执行 - 持久性:已被提交的事务对数据库的修改应该永久保存在数据库中 +3. MySQL中的事务操作 + + - 开启事务环境 + + ```SQL + start transaction + ``` + + - 提交事务 + + ```Shell + commit + ``` + + - 回滚事务 + + ```SQL + rollback + ``` + ### Python数据库编程 我们用如下所示的数据库来演示在Python中如何访问MySQL数据库。 -- GitLab