diff --git "a/39 \351\203\255\346\202\246\350\277\216/20230216 MySQL\347\232\204\345\256\211\350\243\205\345\222\214\302\267\347\231\273\345\275\225.md" "b/39 \351\203\255\346\202\246\350\277\216/20230216 MySQL\347\232\204\345\256\211\350\243\205\345\222\214\302\267\347\231\273\345\275\225.md" new file mode 100644 index 0000000000000000000000000000000000000000..ea62beb8ad55011282eba136b736684226c9105b --- /dev/null +++ "b/39 \351\203\255\346\202\246\350\277\216/20230216 MySQL\347\232\204\345\256\211\350\243\205\345\222\214\302\267\347\231\273\345\275\225.md" @@ -0,0 +1,191 @@ +## MySQL数据库的卸载 + +### 步骤一:软件的卸载准备 + +学习网络编程时,TCP/IP协议程序有服务器端和客户端。mysql这个数据库管理软件是使用TCP/IP协议。我们现在要卸载的是mysql的服务器端,它没有界面。 + + 【计算】-->右键-->【管理】-->【服务】-->【mysql的服务】-->【停止】 + +### 步骤二:软件的卸载 + +**方式一:通过控制面板卸载** + +![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/MySQL卸载1.jpg) + +**方式二:通过360或电脑管家等软件卸载** + +![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/MySQL卸载2.jpg) + +![1575693828589](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/1575693828589.png) + + **方式三:通过安装包提供的卸载功能卸载** + +![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/MySQL卸载3.jpg) + +或者 + +![1575693919722](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/1575693919722.png) + +![1575693929346](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/1575693929346.png) + +![1575693936722](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/1575693936722.png) + +### 步骤三:清理残余文件 + +如果再次安装不成功,可以卸载后对残余文件进行清理后再安装。 + +(1)服务目录:mysql服务的安装目录 + +(2)数据目录:默认在C:\ProgramData\MySQL + +如果自己单独指定过数据目录,就找到自己的数据目录,例如: + +![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/清理残余文件.jpg) + +> 注意:请在卸载前做好数据备份 +> +> 在操作完以后,需要重启计算机,然后进行安装即可。**如果仍然安装失败,需要继续操作如下步骤四。** + +### 步骤四:清理注册表(选做) + +如何打开注册表编辑器:在系统的搜索框中输入regedit + +* HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL服务 目录删除 + +* HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MySQL服务 目录删除 + +* HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL服务 目录删除 + +* HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\MySQL服务 目录删除 + +* HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL服务目录删除 + +* HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL服务删除 + +> 注册表中的ControlSet001,ControlSet002,不一定是001和002,可能是ControlSet005、006之类 + +### 步骤五:清理服务列表中的服务名 + +![1575694218753](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/1575694218753.png) + +如果在windows操作系统,删除注册表后,在服务列表中仍然存在原来的服务名,可以通过系统管理员在cmd命令行删除服务。 + +``` +sc delete 服务名 +``` + +![1575694103122](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/1575694103122.png) + +### 步骤六:清理原来的环境变量 + +找到path环境变量,将其中关于mysql的环境变量删除,**切记不要全部删除。** + +例如:删除 D:\ProgramFiles\mysql\MySQLServer5.7\bin; 这个部分 + +![1575694476072](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/1575694476072.png) + +## MySQL数据库的安装 https://dev.mysql.com/downloads/windows/installer/5.7.html + +* 双击`mysql-installer-community-5.7.28.0.msi`,进入安装界面后选择**Custom自定义安装**,点击**Next** + + ![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/MySQL安装1.jpg) + +* 在左侧目录中选择**MySQL Server 5.7.28 -X64**,点击`→`加载到右侧,在选择一下要安装的产品名,在右下角会出现**Advanced Options,单击它可以设置安装路径** + + ![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/MySQL安装2.jpg) + +* 例如将**安装路径**和**数据路径**修改到`D:\develop\`下,点击**OK**。注意,**安装目录避免空格和中文** + + ![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/MySQL安装3.jpg) + + + +* 点击**Next下一步** + + ![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/MySQL安装4.jpg) + + + +* 点击**Execute执行安装** + + 有的可能会出现提示需要先安装C++动态库等,那就先安装C++动态库,没有提示说明操作系统中有你需要的动态库。 + + ![image-20200921082804582](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/image-20200921082804582.png) + + ![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/MySQL安装6.jpg) + +* 安装完成,点击**Next下一步** + + ![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/MySQL安装7.jpg) + +* 点击**Next下一步** + + ![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/MySQL安装8.jpg) + +* 点击**Next下一步** + + ![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/MySQL安装9.jpg) + +* 将MySQL配置类型选择**Development Computer开发电脑设置**,点击**Next下一步** + + ![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/MySQL安装10.jpg) + +* 设置MySQL密码,因为管理员用户为root,学习初期建议将MySQL数据库密码也设置为root,设置完成后,点击**Next下一步** + + ![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/MySQL安装11.jpg) + +* 设置**Windows Service 系统服务**,设置完毕后点击**Next下一步** + + ![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/MySQL安装12.jpg) + +* 日志设置,不做任何修改,点击**Next下一步** + + ![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/MySQL安装13.jpg) + +* 高级设置,不做任何修改,点击**Next下一步** + + ![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/MySQL安装14.jpg) + +* 点击**Execute执行设置** + + ![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/MySQL安装15.jpg) + +* 安装完成,点击**Finish完成** + + ![](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/MySQL安装16.jpg) + +## MySQL数据库服务的启动和停止 + +MySQL软件的服务器端必须先启动,客户端才可以连接和使用使用数据库。 + +### 方式一:图形化方式 + +* 计算机(点击鼠标右键)》管理(点击)》服务和应用程序(点击)》服务(点击)》MySQL57(点击鼠标右键)==》启动或停止(点击) +* 控制面板(点击)》系统和安全(点击)》管理工具(点击)》服务(点击)》MySQL57(点击鼠标右键)==》启动或停止(点击) +* 任务栏(点击鼠标右键)》启动任务管理器(点击)》服务(点击)》MySQL57(点击鼠标右键)》启动或停止(点击) + +### 方式二:命令行方式 + +```cmd +启动 MySQL 服务命令: +net start MySQL57 + +停止 MySQL 服务命令: +net stop MySQL57 +``` + +## MySQL数据库环境变量的配置 + +![1575694347758](C:/Users/Administrator/Desktop/MySQL5.7安装文档.assets/1575694347758.png) + +| 环境变量名 | 操作 | 环境变量值 | +| :--------: | :--: | :----------------------------------: | +| MYSQL_HOME | 新建 | D:\ProgramFiles\mysql\MySQLServer5.7 | +| path | 编辑 | %MYSQL_HOME%\bin | + +或者直接 + +| 环境变量名 | 操作 | 环境变量值 | +| :--------: | :--: | :--------------------------------------: | +| path | 编辑 | D:\ProgramFiles\mysql\MySQLServer5.7\bin | + diff --git "a/39 \351\203\255\346\202\246\350\277\216/20230217 DDL\345\222\214DML\350\257\255\345\217\245\347\273\203\344\271\240.md" "b/39 \351\203\255\346\202\246\350\277\216/20230217 DDL\345\222\214DML\350\257\255\345\217\245\347\273\203\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..d96a5b4b4d143352d157e28bafcc9a30804780e4 --- /dev/null +++ "b/39 \351\203\255\346\202\246\350\277\216/20230217 DDL\345\222\214DML\350\257\255\345\217\245\347\273\203\344\271\240.md" @@ -0,0 +1,342 @@ +# 第一题: + +## -- 创建数据库test01_market + +~~~mysql +create database if not EXISTS test01_market default charset utf8; +use test01_market; +~~~ + +-- 创建表格customers +-- + +| -- | 字段名 | 数据类型 | | +| ---- | --------- | ----------- | ---- | +| -- | c_num | int(11) | | +| -- | c_name | varchar(50) | | +| -- | c_contact | varchar(50) | | +| -- | c_city | varchar(50) | | +| -- | c_birth | date | | + +~~~mysql +create table customers( + c_num int(11), + c_name varchar(50), + c_contact varchar(50), + c_city varchar(50), + c_birth date +); +~~~ + + + +## -- **要求3:**将c_contact字段移动到c_birth字段后面 + +~~~mysql +alter table customers MODIFY c_contact varchar(50) after c_birth; +~~~ + + + +## -- **要求4:**将c_name字段数据类型改为 varchar(70) + +~~~mysql +alter table customers modify c_name varchar(70); +~~~ + + + +## -- **要求5:**将c_contact字段改名为c_phone + +~~~mysql +alter table customers change c_contact c_phone; +~~~ + + + +## -- **要求6:**增加c_gender字段到c_name后面,数据类型为char(1) + +~~~mysql +alter table customers add c_gender char(1) after c_name; +~~~ + + + +## -- **要求7:**将表名改为customers_info + +~~~mysql +alter table customers rename to customers_info; +~~~ + + + +## -- **要求8:**删除字段c_city + +~~~mysql +alter table customers_info drop c_city; +~~~ + +# 第二题: + +## 1、创建数据库test02_library + +~~~mysql +create database if not exists test02_library default charset utf8; +use test02_library; +~~~ + + + +## 2、创建表格books + +| 字段名 | 字段说明 | 数据类型 | 允许为空 | 唯一 | +| ------- | -------- | ------------- | -------- | ---- | +| b_id | 书编号 | int(11) | 否 | 是 | +| b_name | 书名 | varchar(50) | 否 | 否 | +| authors | 作者 | varchar(100) | 否 | 否 | +| price | 价格 | float | 否 | 否 | +| pubdate | 出版日期 | year | 否 | 否 | +| note | 说明 | varchar(100) | 是 | 否 | +| num | 库存 | int(11) | 否 | 否 | + +~~~mysql +create table books( + b_id int(11) comment'书编号', + b_name varchar(50) comment'书名', + authors varchar(100) comment'作者', + price float comment'价格', + pubdate year comment'出版日期', + note varchar(100)comment'说明', + num int(11) comment'库存' +); +~~~ + + + +## 3、向books表中插入记录 + +1) 指定所有字段名称插入第一条记录 + +~~~mysql +insert into books (b_id,b_name,authors,price,pubdate,note,num) values (1,'Tal of AAA','Dickes',23,1995,'novel',11); +~~~ + + + +2)不指定字段名称插入第二记录 + +~~~mysql +insert into books values (2,'EmmaT','Jane lura',35,1993,'joke',22); +~~~ + + + +3)同时插入多条记录(剩下的所有记录) + +| b_id | b_name | authors | price | pubdate | note | num | +| ---- | ------------- | --------------- | ----- | ------- | -------- | ---- | +| 1 | Tal of AAA | Dickes | 23 | 1995 | novel | 11 | +| 2 | EmmaT | Jane lura | 35 | 1993 | joke | 22 | +| 3 | Story of Jane | Jane Tim | 40 | 2001 | novel | 0 | +| 4 | Lovey Day | George Byron | 20 | 2005 | novel | 30 | +| 5 | Old land | Honore Blade | 30 | 2010 | law | 0 | +| 6 | The Battle | Upton Sara | 30 | 1999 | medicine | 40 | +| 7 | Rose Hood | Richard haggard | 28 | 2008 | cartoon | 28 | + +~~~mysql + +~~~ + + + +## 4、将小说类型(novel)的书的价格都增加5。 + +~~~mysql +update books set price=price+5 where note='novel'; +~~~ + + + +## 5、将名称为EmmaT的书的价格改为40。 + +~~~mysql +update books set price=40 where b_name='EmmaT'; +~~~ + + + +## 6、删除库存为0的记录 + +~~~mysql +delete from books where num=0; +~~~ + + + +# 第三题: + +1、创建数据库test03_bookstore + +~~~mysql +create database if not exists test03_library default charset utf8; +use test03_library; +~~~ + + + +2、创建book表 + +~~~mysql +create table book( + id int(11), + title varchar(100), + author varchar(100), + price double(11,2), + sales int(11), + stock int(11), + img_path varchar(100), +); +~~~ + + + +```mysql ++----------+--------------+------+-----+---------+----------------+ +| Field | Type | Null | Key | Default | Extra | ++----------+--------------+------+-----+---------+----------------+ +| id | int(11) | NO | PRI | NULL | auto_increment | +| title | varchar(100) | NO | | NULL | | +| author | varchar(100) | NO | | NULL | | +| price | double(11,2) | NO | | NULL | | +| sales | int(11) | NO | | NULL | | +| stock | int(11) | NO | | NULL | | +| img_path | varchar(100) | NO | | NULL | | ++----------+--------------+------+-----+---------+----------------+ +``` + +尝试添加部分模拟数据,参考示例如下: + +```mysql ++----+-------------+------------+-------+-------+-------+----------------------------+ +| id | title | author | price | sales | stock | img_path | ++----+-------------+------------+-------+-------+-------+-----------------------------+ +| 1 | 解忧杂货店 | 东野圭吾 | 27.20 | 102 | 98 | upload/books/解忧杂货店.jpg | +| 2 | 边城 | 沈从文 | 23.00 | 102 | 98 | upload/books/边城.jpg | ++----+---------------+------------+-------+-------+-------+----------------------------+ +``` + +3、创建用户表users,并插入数据 + +~~~mysql +create table user( +id int(11), +username varchar(100), +passwordd varchar(100), +email varchar(100), +); +~~~ + + + +```mysql ++----------+--------------+------+-----+---------+----------------+ +| Field | Type | Null | Key | Default | Extra | ++----------+--------------+------+-----+---------+----------------+ +| id | int(11) | NO | PRI | NULL | auto_increment | +| username | varchar(100) | NO | UNI | NULL | | +| password | varchar(100) | NO | | NULL | | +| email | varchar(100) | YES | | NULL | | ++----------+--------------+------+-----+---------+----------------+ +``` + +尝试添加部分模拟数据,参考示例如下: + +```mysql ++----+----------+----------------------------------+--------------------+ +| id | username | password | email | ++----+----------+----------------------------------+--------------------+ +| 1 | admin | 112233 | admin@mxdx.com | ++----+----------+----------------------------------+--------------------+ +``` + +4、创建订单表orders + +~~~mysql +create table orders( +id varchar(100), +order_time datetime, +total_count int(11), +total_amount double(11,2), +state int(11), +user_id int(11) +); +~~~ + + + +```mysql ++--------------+--------------+------+-----+---------+-------+ +| Field | Type | Null | Key | Default | Extra | ++--------------+--------------+------+-----+---------+-------+ +| id | varchar(100) | NO | PRI | NULL | | +| order_time | datetime | NO | | NULL | | +| total_count | int(11) | NO | | NULL | | +| total_amount | double(11,2) | NO | | NULL | | +| state | int(11) | NO | | NULL | | +| user_id | int(11) | NO | MUL | NULL | | ++--------------+--------------+------+-----+---------+-------+ +``` + +尝试添加部分模拟数据,参考示例如下: + +```mysql ++----------------+---------------------+-------------+--------------+-------+---------+ +| id | order_time | total_count | total_amount | state | user_id | ++----------------+---------------------+-------------+--------------+-------+---------+ +| 15294258455691 | 2018-06-20 00:30:45 | 2 | 50.20 | 0 | 1 | ++----------------+---------------------+-------------+--------------+-------+---------+ +``` + +5、创建订单明细表order_items + +~~~mysql +create table order_items( +id int(11), +count int(11), +amountn double(11,2), +title varchar(100), +author varchar(100), +price double(11,2), +img_path varchar(100), +order_id varchar(100) +); +~~~ + + + +```mysql ++----------+--------------+------+-----+---------+----------------+ +| Field | Type | Null | Key | Default | Extra | ++----------+--------------+------+-----+---------+----------------+ +| id | int(11) | NO | PRI | NULL | auto_increment | +| count | int(11) | NO | | NULL | | +| amount | double(11,2) | NO | | NULL | | +| title | varchar(100) | NO | | NULL | | +| author | varchar(100) | NO | | NULL | | +| price | double(11,2) | NO | | NULL | | +| img_path | varchar(100) | NO | | NULL | | +| order_id | varchar(100) | NO | MUL | NULL | | ++----------+--------------+------+-----+---------+----------------+ +``` + +尝试添加部分模拟数据,参考示例如下: + +```mysql ++----+-------+--------+---------+---------+-------+----------------+----------------+ +| id |count| amount| title | author | price | img_path | order_id | ++----+-------+--------+------------+----------+-------+----------------+----------------+ +| 1 | 1 | 27.20| 解忧杂货店 | 东野圭吾 | 27.20 | static/img/default.jpg|15294258455691 | +| 2 | 1 | 23.00| 边城 | 沈从文 | 23.00 | static/img/default.jpg|15294258455691 | ++----+-------+--------+------------+----------+-------+------------+----------------+ +``` +