diff --git "a/38 \351\273\204\346\255\243\347\204\225/20230218 \347\254\254\344\272\214\346\254\241\347\254\224\350\256\260\345\217\212\344\275\234\344\270\232.md" "b/38 \351\273\204\346\255\243\347\204\225/20230218 \347\254\254\344\272\214\346\254\241\347\254\224\350\256\260\345\217\212\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..90a271520178aa6d450c64d677122614090ac02c --- /dev/null +++ "b/38 \351\273\204\346\255\243\347\204\225/20230218 \347\254\254\344\272\214\346\254\241\347\254\224\350\256\260\345\217\212\344\275\234\344\270\232.md" @@ -0,0 +1,304 @@ +## insert的三种形式 + +指定:insert into表名(列名列表,也称字段) values (值列表); + +book表为例: + +```mysql +insert into book(id,price,bookname) values (1001,89.5,'红楼梦') +``` + +全部设置:insert into 表名 values(值1,值2); + +```mysql +insert into book values(值1,值2); +``` + +一条添加多条:insert into book values(值列表1),(值列表2); + +```mysql +insert into book values(值1,值2,值3),(值11,值22,值33); +``` + +insert表示重新增加一行,只能往后添加 + +而update则是更新数据就可以在同一行 + +## 数值 + +1.整数 + +int(5),这里的5需要与zerofill使用,表示显示的长度。1==>00001 + +小数 + +浮点:float(m,n)/double(m,n) + +float(5,2)表示整数最多3位,小数最多2位 + +定点:decimal + +2.字符串 m为限制长度 + +char(m) + +固定长度,数据库系统在存放用户数据时,以固定长度来占用容量 + +varchar(m) + +可变长度,若实践长度达不到M,以实际长度为准 + +3.字符集 + +创建数据库的同时可修改 + +create database 数据库名 charset 字符集(一般是utf8); + +## 作业 + +1. + +```mysql + -- ## 第1题 + -- 1、创建数据库test01_market +create database test001_market charset utf8; + use test001_market + -- 2、创建表格customers +create table customers( +c_num int (11), +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字段后面 + alter table customers modify c_contact varchar(50) after c_birth; +-- **要求4:**将c_name字段数据类型改为 varchar(70) +alter table customers modify column c_name varchar(70); + -- **要求5:**将c_contact字段改名为c_phone +alter table customers change column c_contact c_phone varchar(50); + -- **要求6:**增加c_gender字段到c_name后面,数据类型为char(1) + ALTER TABLE customers ADD c_gender char(1) AFTER c_name; + -- **要求7:**将表名改为customers_info + alter table customers rename customers_info; + -- **要求8:**删除字段c_city + alter table customers drop column c_city; + SELECT * FROM customers; + DESC customers; +``` + +2. + +```mysql + ## 第2题 + -- 1、创建数据库test02_library + create database test002_library; + use test002_library; + ALTER DATABASE test002_library CHARSET utf8; + show CREATE DATABASE test002_library; + -- 2、创建表格books +create table books( +b_id int(11), +b_name varchar(50), +authors varchar(50), +price float, +pubdate year, +note varchar(100), + num int(11) + ); + select * from books; + desc 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) 指定所有字段名称插入第一条记录 + insert into books(b_id,b_name,authors,price,pubdate,note,num) VALUES(1,'西游记','吴承恩',9.9,'2023','唐僧,猴子,八戒,沙僧',99); +-- 2)不指定字段名称插入第二记录 + insert into books values(2,'三国演义','罗贯中',9.9,'2023','三国斗争',100); + -- 3)同时插入多条记录(剩下的所有记录) +insert into books values(3,'水浒传','施耐庵',9.9,'2023','英雄好汉',101),(4,'红楼梦','曹雪芹',9.9,'2023','四大名著',102), +-- -- | 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 | + create table books1( + b_id int(11), + b_name varchar(50), + authors varchar(50), + price float, + pubdate year, + note varchar(100), + num int(11) + ); + select * from books1; + desc books1; + insert into books1 values + (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。 + update books1 set price = price+5 where note = 'novel'; + -- 5、将名称为EmmaT的书的价格改为40。 + update books1 set price = 40 where b_name = 'EmmaT'; + -- 6、删除库存为0的记录 + delete from books1 where num = 0; +``` + +3. + +```mysql +## 第3题 +-- +-- 1、创建数据库 test03_bookstore +create database test003_bookstore charset utf8; +use test003_bookstore; +-- 2、创建book表 +create table books2( +-- -- +----------+--------------+------+-----+---------+----------------+ +-- -- | 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 | | +-- -- +----------+--------------+------+-----+---------+----------------+ +-- -- ``` + id int(11), + title varchar(100), + author varchar(100), + price double(11,2), + sales int(11), + stock int(11), +img_path varchar(100) +); + select * from books2; +desc books2; +-- -- 尝试添加部分模拟数据,参考示例如下: +-- -- +----+-------------+------------+-------+-------+-------+----------------------------+ +-- -- | id | title | author | price | sales | stock | img_path | +-- -- +----+-------------+------------+-------+-------+-------+-----------------------------+ +-- -- | 1 | 解忧杂货店 | 东野圭吾 | 27.20 | 102 | 98 | upload/books/解忧杂货店.jpg | +-- -- | 2 | 边城 | 沈从文 | 23.00 | 102 | 98 | upload/books/边城.jpg | +-- -- +----+---------------+------------+-------+-------+-------+----------------------------+ +insert into books2 values + (1,'解忧杂货店','东野圭吾',27.20,102,98,'upload/books/解忧杂货店.jpg '), + (2,'边城','沈从文',23.00,102,98,'upload/books/边城.jpg') +; +-- 3、创建用户表users,并插入数据 +-- +----------+--------------+------+-----+---------+----------------+ +-- | 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 | | +-- +----------+--------------+------+-----+---------+----------------+ +create table users( +id int(11), +username varchar(100), +passwrod varchar(100), +email varchar(100) + ); +select * from users; +desc users; +-- -- 尝试添加部分模拟数据,参考示例如下: +-- -- +----+----------+----------------------------------+--------------------+ +-- -- | id | username | password | email | +-- -- +----+----------+----------------------------------+--------------------+ +-- -- | 1 | admin | 112233 | admin@mxdx.com | +-- -- +----+----------+----------------------------------+--------------------+ + insert into users VALUES (1,'admin',112233,'admin@mxdx.com'); +-- -- 4、创建订单表orders +create table orders( +-- -- +--------------+--------------+------+-----+---------+-------+ +-- -- | 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 | | +-- -- +--------------+--------------+------+-----+---------+-------+ +id varchar(100), +order_time datetime, +total_count int(10), +total_amount double(11,2), +state int(11), +user_id int(11) +); +select * from orders; +desc orders; +-- -- 尝试添加部分模拟数据,参考示例如下: +-- -- +----------------+---------------------+-------------+--------------+-------+---------+ +-- -- | id | order_time | total_count | total_amount | state | user_id | +-- -- +----------------+---------------------+-------------+--------------+-------+---------+ +-- -- | 15294258455691 | 2018-06-20 00:30:45 | 2 | 50.20 | 0 | 1 | +-- -- +----------------+---------------------+-------------+--------------+-------+---------+ +insert into orders values(15294258455691,'2018-06-20 00:30:45',2,50.20,0,1); +-- -- 5、创建订单明细表order_items +create table orders_items( +-- +----------+--------------+------+-----+---------+----------------+ +-- | 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 | | +-- +----------+--------------+------+-----+---------+----------------+ +id int(11), +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) +); +select * from orders_items; +desc orders_items; +-- -- 尝试添加部分模拟数据,参考示例如下: +-- -- +----+-------+--------+---------+---------+-------+----------------+----------------+ +-- -- | 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 | +-- -- +----+-------+--------+------------+----------+-------+------------+----------------+ +insert into orders_items values +(1,1,27.20,'解忧杂货店','东野圭吾',27.20,'static/img/default.jpg','15294258455691'), +(2,1,27.20,'边城','沈从文',23.00,'static/img/default.jpg''15294258455691') +; +``` +