From a6510399a0a2b05bb37c4058c51716eef1353583 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9C=E9=99=88=E5=BF=97=E5=8B=87=E2=80=9D?= <“2711273115@qq.com”> Date: Mon, 27 Feb 2023 13:05:59 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=88=E5=BF=97=E5=8B=87=E7=9A=84=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...72\345\272\223\345\222\214\350\241\250.md" | 314 ++++++++++++++++++ .../20230216 DDL\345\222\214DDM.md" | 137 ++++++++ .../20230223 \346\237\245\350\257\242.md" | 137 ++++++++ 3 files changed, 588 insertions(+) create mode 100644 "09 \351\231\210\345\277\227\345\213\207/20230215 \345\210\233\345\273\272\345\272\223\345\222\214\350\241\250.md" create mode 100644 "09 \351\231\210\345\277\227\345\213\207/20230216 DDL\345\222\214DDM.md" create mode 100644 "09 \351\231\210\345\277\227\345\213\207/20230223 \346\237\245\350\257\242.md" diff --git "a/09 \351\231\210\345\277\227\345\213\207/20230215 \345\210\233\345\273\272\345\272\223\345\222\214\350\241\250.md" "b/09 \351\231\210\345\277\227\345\213\207/20230215 \345\210\233\345\273\272\345\272\223\345\222\214\350\241\250.md" new file mode 100644 index 0000000..70951cd --- /dev/null +++ "b/09 \351\231\210\345\277\227\345\213\207/20230215 \345\210\233\345\273\272\345\272\223\345\222\214\350\241\250.md" @@ -0,0 +1,314 @@ +# 笔记 + +\#增加一个字段 ALTER TABLE 表名称 ADD COLUMN 字段名 数据类型; + +\#删除一个字段 ALTER TABLE 表名称 DROP COLUMN 字段名; + +\#修改一个字段名称 ALTER TABLE 表名称 CHANGE 旧字段名称 新的字段名称 数据类型; + +\#修改一个字段的数据类型 ALTER TABLE 表名称 MODIFY 字段名称 新数据类型; + +\#修改字段的位置,顺序 ALTER TABLE 表名称 MODIFY 字段名称 数据类型 AFTER 另一个字段; + +\#删除部分行 DELETE FROM 表名称 WHERE 条件; + +\#一条insert语句同时添加多行记录 + +INSERT INTO 表名称(字段列表) VALUES(值列表),(值列表),(值列表)...; + +# 作业 + +## 第1题 + +1、创建数据库test01_market + +```mysql +create database test01_market charset utf8; +``` + +2、创建表格customers + +```mysql +create table cusomers( +c_num int, +c_name varchar(50), +c_contact varchar(50), +c_city varchar(50), +c_birth date +); +``` + +| 字段名 | 数据类型 | +| --------- | ----------- | +| 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 cusomers modify c_contact int after c_birth; +``` + +**要求4:**将c_name字段数据类型改为 varchar(70) + +```mysql +alter table cusomers modify c_name varchar(70); +``` + +**要求5:**将c_contact字段改名为c_phone + +```mysql +alter table cusomers change c_contact c_phone varchar(50); +``` + +**要求6:**增加c_gender字段到c_name后面,数据类型为char(1) + +```mysql +alter table cusomers add c_gender char(1); +alter table cusomers modify c_gender int after c_name; +``` + +**要求7:**将表名改为customers_info + +```mysql +alter table cusomers rename to customers_info; +``` + +**要求8:**删除字段c_city + +```mysql +alter table cusomers drop c_city; +``` + +## 第2题 + +1、创建数据库test02_library + +```mysql +create database test02_library charset utf8; +``` + +2、创建表格books + +```mysql +create table books( +b_id int not null comment'书编号', +b_name varchar(50)not null comment'书名', +authors varchar(100) not null comment'作者', +price float not null comment'价格', +pubdate year not null comment'出版日期', +note varchar(100) comment'说明', +num int not null comment'库存' +); +``` + +| 字段名 | 字段说明 | 数据类型 | 允许为空 | 唯一 | +| ------- | -------- | ------------- | -------- | ---- | +| 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','Dickes',23,1995,'nove1',11); +``` + +2)不指定字段名称插入第二记录 + +```mysql +insert into books values(2,'Emmat','Jane lura',35,1993,'joke',22); +``` + +3)同时插入多条记录(剩下的所有记录) + +```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); +``` + +| 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 | + +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 +create database test03_bookstore charset utf8; +``` + +2、创建book表 + +```mysql +create table book ( +id int, +title varchar(100), +author varchar(100), +price double(11,2), +sales int, +stock int, +img_path varchar(100) +); ++----------+--------------+------+-----+---------+----------------+ +| 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 +insert into book values (1,'解忧杂货店','东野圭吾',27.20,102,98,'upload/books/解忧杂货店.jpg'); +insert into book values (2,'边城','沈从文',23.00,102,98,'upload/books/边城.jpg'); ++----+-------------+------------+-------+-------+-------+----------------------------+ +| 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 users( +id int, +username varchar(100), +password varchar(100), +email varchar(100) +); ++----------+--------------+------+-----+---------+----------------+ +| 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 +insert into users values(1,'admin','112233','admin@mxdx.com'); ++----+----------+----------------------------------+--------------------+ +| 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, +total_amount double(11,2), +state int, +user_id int +); ++--------------+--------------+------+-----+---------+-------+ +| 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 +insert into orders values('15294258455691','2018-06-20 00:30:45',2,50.20,0,1); ++----------------+---------------------+-------------+--------------+-------+---------+ +| 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, +count int, +amount double(11,2), +title varchar(100), +author varchar(100), +price double(11,2), +img_path varchar(100), +order_id varchar(100) +); ++----------+--------------+------+-----+---------+----------------+ +| 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 +insert into order_items values(1,1,27.20,'解忧杂货店','东野圭吾',27.20,'static/img/default.jpg','15294258455691'); +insert into order_items values(2,1,23.00,'边城','沈从文',23.00,'static/img/default.jpg','15294258455691'); ++----+-------+--------+---------+---------+-------+----------------+----------------+ +| 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 | ++----+-------+--------+------------+----------+-------+------------+----------------+ +``` \ No newline at end of file diff --git "a/09 \351\231\210\345\277\227\345\213\207/20230216 DDL\345\222\214DDM.md" "b/09 \351\231\210\345\277\227\345\213\207/20230216 DDL\345\222\214DDM.md" new file mode 100644 index 0000000..c238cf7 --- /dev/null +++ "b/09 \351\231\210\345\277\227\345\213\207/20230216 DDL\345\222\214DDM.md" @@ -0,0 +1,137 @@ +# 查询 + +## 1.基础查询 + +``` +SELECT 字段名 FROM 表名;查询部分 +SELECT * from 表名; 查询全部 +SELECT 字段名 as 别名 from 表名; 设置别名 +``` + +## 2.条件查询 + +``` +SELECT 字段名 from 表名 where 条件; +条件:> < <=> IN BETWEEN 大值 and 小值 is null and or xor ! +DISTINCT +``` + +## 3.函数 + +``` +SELECT 函数(字段名) from 表名 WHERE; +函数: +COUNT 总数 +max 最大值 +MIN 最小值 +``` + +## 4.分组查询 + +``` +SELECT xx from xx GROUP BY where; +``` + +## 5.排序查询 + +``` +SELECT xx FROM xx ORDER BY where; +``` + +## 6.分页查询 + +``` +SELECT xx FROM xx LIMIT ( ) WHERE; +``` + +# 二.约束 + +## 1.主键 + +PRIMARY key 特点 唯一,非空,一个表只能有一个 通常与自增一起使用 aotu_increase + +## 2.唯一键 + +unique 特点 唯一,可以空,一个表可以有多个 + +## 3.默认值 + +DEFAULT 特点 设定默认值 + +## 4.非空 + +not NULL 特点 非空 + +## 5.外键 + +f + +``` +oreign key 特点 +语法:FOREIGN key 字段名 REFERENCES 主表(字段); + +更改/删除时: +CASCADE 当更改删除时从表字段数值随主表更改删除而更改删除 +SET NULL 当删除时从表字段数值随主表删除而变成null +语法 +FOREIGN key 字段名 REFERENCES 主表(字段) NO UPDATE CASCADE NO DELETE set NULL; +``` + +# 库 + +``` +CREATE DATABASE xx charset utf8; +use xx ; +SHOW DATABASES xx; +DROP DATABASE xx; +``` + +# 表 + +``` +CREATE TABLE xx( + 字段名1 类型(长度),{COMMIT 备注} + 。。。 + 。。。 + 。。。 + 字段名n 类型(长度) + );{COMMIT 备注} + SHOW TABLE xx; + SHOW CREATE TABLE xx; + DROP TABLE xx; + DESC xx; + ALTER ADD xx 类型 ; + ALTER MODIFY xx 类型 新类型; + ALTER MODIFY xx 类型 after cc; + ALTER CHANGE xx 类型 cc ; + ALTER DROP xx; +``` + + + +# 数据类型 + +``` +INT +CHAR +varchar +FLOAT(x,x) +DOUBLE(x,x) +DATE( ) +YEAR( ) +``` + + + +``` +3.DQL +插入 +INSERT into xx 字段名1,字段名2,。。。VALUES (数值1,数值2,。。。); +INSERT into xx VALUES (数值1,数值2。。。); + +更改 +UPDATE xx set where; + +删除 +DELETE xx where +``` \ No newline at end of file diff --git "a/09 \351\231\210\345\277\227\345\213\207/20230223 \346\237\245\350\257\242.md" "b/09 \351\231\210\345\277\227\345\213\207/20230223 \346\237\245\350\257\242.md" new file mode 100644 index 0000000..c238cf7 --- /dev/null +++ "b/09 \351\231\210\345\277\227\345\213\207/20230223 \346\237\245\350\257\242.md" @@ -0,0 +1,137 @@ +# 查询 + +## 1.基础查询 + +``` +SELECT 字段名 FROM 表名;查询部分 +SELECT * from 表名; 查询全部 +SELECT 字段名 as 别名 from 表名; 设置别名 +``` + +## 2.条件查询 + +``` +SELECT 字段名 from 表名 where 条件; +条件:> < <=> IN BETWEEN 大值 and 小值 is null and or xor ! +DISTINCT +``` + +## 3.函数 + +``` +SELECT 函数(字段名) from 表名 WHERE; +函数: +COUNT 总数 +max 最大值 +MIN 最小值 +``` + +## 4.分组查询 + +``` +SELECT xx from xx GROUP BY where; +``` + +## 5.排序查询 + +``` +SELECT xx FROM xx ORDER BY where; +``` + +## 6.分页查询 + +``` +SELECT xx FROM xx LIMIT ( ) WHERE; +``` + +# 二.约束 + +## 1.主键 + +PRIMARY key 特点 唯一,非空,一个表只能有一个 通常与自增一起使用 aotu_increase + +## 2.唯一键 + +unique 特点 唯一,可以空,一个表可以有多个 + +## 3.默认值 + +DEFAULT 特点 设定默认值 + +## 4.非空 + +not NULL 特点 非空 + +## 5.外键 + +f + +``` +oreign key 特点 +语法:FOREIGN key 字段名 REFERENCES 主表(字段); + +更改/删除时: +CASCADE 当更改删除时从表字段数值随主表更改删除而更改删除 +SET NULL 当删除时从表字段数值随主表删除而变成null +语法 +FOREIGN key 字段名 REFERENCES 主表(字段) NO UPDATE CASCADE NO DELETE set NULL; +``` + +# 库 + +``` +CREATE DATABASE xx charset utf8; +use xx ; +SHOW DATABASES xx; +DROP DATABASE xx; +``` + +# 表 + +``` +CREATE TABLE xx( + 字段名1 类型(长度),{COMMIT 备注} + 。。。 + 。。。 + 。。。 + 字段名n 类型(长度) + );{COMMIT 备注} + SHOW TABLE xx; + SHOW CREATE TABLE xx; + DROP TABLE xx; + DESC xx; + ALTER ADD xx 类型 ; + ALTER MODIFY xx 类型 新类型; + ALTER MODIFY xx 类型 after cc; + ALTER CHANGE xx 类型 cc ; + ALTER DROP xx; +``` + + + +# 数据类型 + +``` +INT +CHAR +varchar +FLOAT(x,x) +DOUBLE(x,x) +DATE( ) +YEAR( ) +``` + + + +``` +3.DQL +插入 +INSERT into xx 字段名1,字段名2,。。。VALUES (数值1,数值2,。。。); +INSERT into xx VALUES (数值1,数值2。。。); + +更改 +UPDATE xx set where; + +删除 +DELETE xx where +``` \ No newline at end of file -- Gitee