From 897338cb9ebc57dc360389b7c6cc01cc4c180a0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E9=9B=A8=E6=99=B4?= <2137161545@qq.com> Date: Sun, 19 Feb 2023 23:15:08 +0800 Subject: [PATCH] =?UTF-8?q?DDL=E5=92=8CDML=E8=AF=AD=E5=8F=A5=E7=BB=83?= =?UTF-8?q?=E4=B9=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0230215 MySQL\344\275\234\344\270\2321.md" | 0 ...60\346\215\256\347\261\273\345\236\213.md" | 21 + ...55\345\217\245\347\273\203\344\271\240.md" | 359 ++++++++++++++++++ 3 files changed, 380 insertions(+) rename "03 \345\276\220\351\233\250\346\231\264/20230215 \344\275\234\344\270\2321.md" => "03 \345\276\220\351\233\250\346\231\264/20230215 MySQL\344\275\234\344\270\2321.md" (100%) create mode 100644 "03 \345\276\220\351\233\250\346\231\264/20230218 DDL\345\222\214DML\350\257\255\345\217\245\347\273\203\344\271\240.md" diff --git "a/03 \345\276\220\351\233\250\346\231\264/20230215 \344\275\234\344\270\2321.md" "b/03 \345\276\220\351\233\250\346\231\264/20230215 MySQL\344\275\234\344\270\2321.md" similarity index 100% rename from "03 \345\276\220\351\233\250\346\231\264/20230215 \344\275\234\344\270\2321.md" rename to "03 \345\276\220\351\233\250\346\231\264/20230215 MySQL\344\275\234\344\270\2321.md" diff --git "a/03 \345\276\220\351\233\250\346\231\264/20230215 MySQL\350\257\255\345\217\245\344\273\245\345\217\212\346\225\260\346\215\256\347\261\273\345\236\213.md" "b/03 \345\276\220\351\233\250\346\231\264/20230215 MySQL\350\257\255\345\217\245\344\273\245\345\217\212\346\225\260\346\215\256\347\261\273\345\236\213.md" index 15e0261..fd86e36 100644 --- "a/03 \345\276\220\351\233\250\346\231\264/20230215 MySQL\350\257\255\345\217\245\344\273\245\345\217\212\346\225\260\346\215\256\347\261\273\345\236\213.md" +++ "b/03 \345\276\220\351\233\250\346\231\264/20230215 MySQL\350\257\255\345\217\245\344\273\245\345\217\212\346\225\260\346\215\256\347\261\273\345\236\213.md" @@ -136,6 +136,27 @@ delete from ** where 列1名称=列1值; #删除数据表** drop table **; + +#修改表**的结构 +alter table ** change 列名1 修改后的列名1 数据类型; + +#在表**中,添加指定列名的多行数据 +insert into **(列名1,列名2) values (列1值,列2值),(列1值,列2值); + +#在表**的a范围和b范围内,修改数据 +update ** set 修改好的数据 where 条件>/>=a,条件 create database test01_market charset utf8; +Query OK, 1 row affected (0.00 sec) +``` + +2、创建表格customers + +```mysql +mysql> use test01_market; +Database changed +``` + +| 字段名 | 数据类型 | +| --------- | ----------- | +| 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 int 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 int(11); +``` + +**要求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; +``` + + + +## 第2题 + +1、创建数据库test02_library + +```mysql +mysql> create database test02_library charset utf8; +Query OK, 1 row affected (0.00 sec) +``` + +2、创建表格books + +```mysql +mysql> use test02_library; +Database changed +``` + +| 字段名 | 字段说明 | 数据类型 | 允许为空 | 唯一 | +| ------- | -------- | ------------- | -------- | ---- | +| 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), + b_name varchar(50), +`authors` varchar(100), + price float, + pubdate YEAR, + note varchar(100), + num int(11) +); +``` + +3、向books表中插入记录 + +1) 指定所有字段名称插入第一条记录 + +```mysql +insert into books(b_id,b_name,`authors`,price,pubdate,note,num) values (1,'Tal of AAA','Dicks',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 +insert into books values (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); +``` + +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; +``` + + + +## 第3题 + +1、创建数据库test03_bookstore + +```mysql +mysql> create database test03_bookstore charset utf8; +Query OK, 1 row affected (0.01 sec) +``` + +2、创建book表 + +```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 +mysql> create table book( + -> id int(11) primary key, + -> title varchar(100), + -> author varchar(100), + -> price double(11,2), + -> sales int(11), + -> stock int(11), + -> img_path varchar(100) + -> ); +Query OK, 0 rows affected (0.01 sec) + +mysql> alter table book modify id int auto_increment; +Query OK, 0 rows affected (0.02 sec) +Records: 0 Duplicates: 0 Warnings: 0 +``` + +尝试添加部分模拟数据,参考示例如下: + +```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 | ++----+---------------+------------+-------+-------+-------+----------------------------+ +``` + +```mysql +mysql> insert into book values (1,'解忧杂货铺','东野圭吾',27.20,102,98,'upload/books/解忧杂货铺.jpg'),(2,'边城','沈从文',23.00,102,98,'upload/books/边城.jpg'); +Query OK, 2 rows affected (0.01 sec) +Records: 2 Duplicates: 0 Warnings: 0 +``` + +3、创建用户表users,并插入数据 + +```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 +mysql> create table users( + -> id int(11) primary key, + -> username varchar(100) unique, + -> password varchar(100), + -> email varchar(100) + -> ); +Query OK, 0 rows affected (0.02 sec) + +mysql> alter table users modify id int auto_increment; +Query OK, 0 rows affected (0.06 sec) +Records: 0 Duplicates: 0 Warnings: 0 +``` + +尝试添加部分模拟数据,参考示例如下: + +```mysql ++----+----------+----------------------------------+--------------------+ +| id | username | password | email | ++----+----------+----------------------------------+--------------------+ +| 1 | admin | 112233 | admin@mxdx.com | ++----+----------+----------------------------------+--------------------+ +``` + +```mysql +mysql> insert into users values (1,'admin','112233','admin@mxdx.com'); +Query OK, 1 row affected (0.01 sec) +``` + +4、创建订单表orders + +```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 +mysql> create table orders( + -> id varchar(100) primary key, + -> order_time datetime, + -> tatal_count int(11), + -> total_amount double(11,2), + -> state int(11), + -> user_id int(11) + -> ); +Query OK, 0 rows affected (0.02 sec) + +mysql> alter table orders add index(user_id); +Query OK, 0 rows affected (0.01 sec) +Records: 0 Duplicates: 0 Warnings: 0 +``` + +尝试添加部分模拟数据,参考示例如下: + +```mysql ++----------------+---------------------+-------------+--------------+-------+---------+ +| id | order_time | total_count | total_amount | state | user_id | ++----------------+---------------------+-------------+--------------+-------+---------+ +| 15294258455691 | 2018-06-20 00:30:45 | 2 | 50.20 | 0 | 1 | ++----------------+---------------------+-------------+--------------+-------+---------+ +``` + +```mysql +mysql> insert into orders values ('1529425845569','2018-06-20 00:30:45',2,50.20,0,1); +Query OK, 1 row affected (0.01 sec) +``` + +5、创建订单明细表order_items + +```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 +mysql> create table order_items( + -> id int(11) primary key, + -> count int(11), + -> amount double(11,2), + -> title varchar(100), + -> author varchar(100), + -> price double(11,2), + -> img_path varchar(100), + -> order_id varchar(100) + -> ); +Query OK, 0 rows affected (0.01 sec) + +mysql> alter table order_items add index(order_id); +Query OK, 0 rows affected (0.02 sec) +Records: 0 Duplicates: 0 Warnings: 0 +``` + +尝试添加部分模拟数据,参考示例如下: + +```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 | ++----+-------+--------+------------+----------+-------+------------+----------------+ +``` + +```mysql +mysql> insert into order_items values (1,1,27.20,'解忧杂货店','东野圭吾',27.20,'static/img/default.jpg','15294258455691'),(2,1,23.00,'边城','沈从文',23.00,'static/img/default.jpg','15294258455691'); +Query OK, 2 rows affected (0.04 sec) +Records: 2 Duplicates: 0 Warnings: 0 +``` + -- Gitee