From 31f463dd7740dd2904fe5afdcfb187f432cd7273 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E5=AF=8C?= <2744975513@qq.com> Date: Mon, 20 Feb 2023 23:59:12 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20230219 mysql\347\254\224\350\256\260.md" | 233 +++++++++++++++ ...00\346\254\241\344\275\234\344\270\232.md" | 272 ++++++++++++++++++ 2 files changed, 505 insertions(+) create mode 100644 "17 \345\221\250\345\257\214/20230219 mysql\347\254\224\350\256\260.md" create mode 100644 "17 \345\221\250\345\257\214/20230219 mysql\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232.md" diff --git "a/17 \345\221\250\345\257\214/20230219 mysql\347\254\224\350\256\260.md" "b/17 \345\221\250\345\257\214/20230219 mysql\347\254\224\350\256\260.md" new file mode 100644 index 0000000..513fe91 --- /dev/null +++ "b/17 \345\221\250\345\257\214/20230219 mysql\347\254\224\350\256\260.md" @@ -0,0 +1,233 @@ +# MySQL语法 + +1.不分大小写 + +2.一般以;结尾 + +3.库名,表名,字段名(列名),支持英文字母,_,数字 + +4.名称中不要用空格 + +5.名称中,不用sql语句的关键字 + +6.‘ “ `(反引号|飘号),用来标记名称 + +7.--注释,#注释内容,/* */多行注释,(ctel+/) + +8.数值直接写,不用符号包裹,字符串和时间数型用单引号包裹 + +### 数据类型 + +1.约束类型 + +2.规范数据空间的占用(内存) + +## 类型 + +#### 数值型 小数+整数 + +1.整形 int(M)这里的M不是限制长度,单独使用毫无意义,配合zerofill使用(补0) + +2.浮点 float(M,N) double(M,N) M表示限制整数+小数只能存放M长度,N限制小数的长度。如果小数的部分超过了N,会自动截断,并四舍五入。 + +3.定点 decimal(M,N) 默认(10,0),其他同上 + +#### 字符型 + +1.固定长度的 char 默认是1,最大是255 + +2.可变长度的 varchar(M) 这里的M不可缺省 + +#### 时间类型 + +1.data 年月日 + +2.time 时分秒 + +3.year 年 + +4.datatime + +5.timestamp 时间戳 + +#### enum枚举类型 + +类似单选框中的选项,只能选一个。 enum(1,2,3,4,5) + +#### set集合类型 + +类似多选框,可以选0个或是多个,但也只能选里面有的。set(1,2,3,4,5) + +### #一些数据库的属性 + +1.unsigned 无符号的,表示正数不能负数 + +2.null 允许为空。not null 不允许为空。 + +3.default 默认值 + +4.auto_increment 自增 + +## # DDL + +创建数据库 + +```MYSQL +create database 数据库名 charset 字符集; +``` + +查看所有数据库 + +```mysql +show databases; +``` + +查看数据库的定义语句 + +```mysql +show create database +``` + +修改数据库编码 + +```mysql +#修改数据库字符集和校对规则 +ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称 COLLATE 字符集对应校对规则; +``` + +删除数据库 + +```mysql +drop database 数据库名; +``` + +使用数据库 + +```mysql +use 数据库名; +``` + +查看数据库中的所有表格 + +```mysql +use 数据库名; +show tables; +或 +show tables from 数据库名; +``` + +创建表格 + +```mysql +create table 数据表名称( + 字段名 数据类型, + 字段名 数据类型 + ... +); +``` + +查看表的定义信息 + +```mysql +show create table 表名称; +``` + +查看表结构 + +```mysql +desc 表名称; +``` + +修改表名称 + +```mysql +alter table 旧表名 rename 【to】 新表名; +rename table 旧表名称 to 新表名称; +``` + +删除表格 + +```mysql +drop table 表名称; +``` + +删除字段 + +```mysql +alter table 表名称 drop 【column】 字段名称; +``` + +增加字段 + +```mysql +alter table 表名称 add 【column】 字段名称 数据类型; +alter table 表名称 add 【column】 字段名称 数据类型 first; +alter table 表名称 add 【column】 字段名称 数据类型 after 另一个字段; +``` + +修改字段的数据类型 + +```mysql +alter table 表名称 modify 【column】 字段名称 新的数据类型; +``` + +修改字段名称 + +```mysql +alter table 表名称 change 【column】 旧字段名称 新的字段名称 新的数据类型; +``` + +修改字段位置 + +```mysql +alter table 表名称 modify 【column】 字段名称 数据类型 first; +alter table 表名称 modify 【column】 字段名称 数据类型 after 另一个字段; +``` + +# DML + +添加一条记录到表中 + +```mysql +insert into 表名称 values(值列表);#值列表中的值的顺序、类型、个数必须与表结构一一对应 + +insert into 表名称 (字段列表) values(值列表); +``` + +添加多条记录到表中 + +```mysql +insert into 表名称 values(值列表),(值列表),(值列表); #值列表中的值的顺序、类型、个数必须与表结构一一对应 + +insert into 表名称 (字段列表) values(值列表),(值列表),(值列表); +``` + +修改所有行 + +```mysql +update 表名称 set 字段名 = 值, 字段名 = 值; #给所有行修改 +``` + +修改部分行 + +```mysql +update 表名称 set 字段名 = 值, 字段名 = 值 where 条件; #给满足条件的行修改 +``` + +删除部分行的数据 + +```mysql +delete from 表名称 where 条件; +``` + +删除整张表的数据,表结构留下 + +```mysql +delete from 表名称; +``` + +截断表,清空表中的数据,只留有表结构 + +```mysql +truncate 表名称; +``` \ No newline at end of file diff --git "a/17 \345\221\250\345\257\214/20230219 mysql\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232.md" "b/17 \345\221\250\345\257\214/20230219 mysql\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232.md" new file mode 100644 index 0000000..24eb6d7 --- /dev/null +++ "b/17 \345\221\250\345\257\214/20230219 mysql\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232.md" @@ -0,0 +1,272 @@ +-- ## 第1题 +-- +-- 1、创建数据库test01_market +-- +-- ~~~ MYSQL +CREATE DATABASE text01_market; +use text01_market; +-- ~~~ +-- +-- 2、创建表格customers +-- +-- ~~~ mysql +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字段后面 | | | +| -- | | | +| -- ~~~ 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 VARCHAR(50); | | | +| -- ~~~ | | | +| -- | | | +| -- **要求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 customers_info; | | | +| -- ~~~ | | | +| -- | | | +| -- **要求8:**删除字段c_city | | | +| -- | | | +| -- ```mysql | | | +| ALTER TABLE customers_info DROP c_city; | | | +| -- ``` | | | +| -- | | | +| -- ## 第2题 | | | +| -- | | | +| -- 1、创建数据库test02_library | | | +| -- | | | +| -- ~~~ mysql | | | +| CREATE DATABASE text02_library; | | | +| use text02_library; | | | +| -- ~~~ | | | +| -- | | | +| -- 2、创建表格books | | | +| -- | | | +| -- ~~~ 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) | | | +| ); | | | +| -- ~~~ | | | +| -- | | | +| -- | | | +| -- | | | +| -- | 字段名 | 字段说明 | +| -- | ------- | -------- | +| -- | b_id | 书编号 | +| -- | b_name | 书名 | +| -- | authors | 作者 | +| -- | price | 价格 | +| -- | pubdate | 出版日期 | +| -- | note | 说明 | +| -- | num | 库存 | +| -- | | | +| -- 3、向books表中插入记录 | | | + +-- 1) 指定所有字段名称插入第一条记录 +INSERT INTO books(b_id,b_name,authors,price,pubdate,note,num) VALUES (88,'ahdj','fafa',9.9,2018,'fawf',88); +-- 2)不指定字段名称插入第二记录 +INSERT INTO books VALUES (99,'awda','dads',9.9,2018,'jjjj',66); +-- 3)同时插入多条记录(剩下的所有记录) +INSERT INTO books VALUES (99,'awda','dads',9.9,2018,'jjjj',66),(88,'ahdj','fafa',9.9,2018,'fawf',88),(99,'awda','dads',9.9,2018,'jjjj',66); +| -- | 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。 | | | | | | | | +| UPDATE books set price = price+5 where note='jjjj'; | | | | | | | | +| -- 5、将名称为EmmaT的书的价格改为40。 | | | | | | | | +| UPDATE books set price = 40 WHERE b_name='awda'; | | | | | | | | +| -- 6、删除库存为0的记录 | | | | | | | | +| DELETE FROM books where num=88; | | | | | | | | +| -- ```mysql | | | | | | | | +| -- | | | | | | | | +| -- ``` | | | | | | | | +| -- | | | | | | | | +| -- | | | | | | | | +| -- | | | | | | | | +| -- ## 第3题 | | | | | | | | +| -- | | | | | | | | +| -- 1、创建数据库test03_bookstore | | | | | | | | +| CREATE DATABASE test03_bookstore; | | | | | | | | +| use test03_bookstore; | | | | | | | | +| -- 2、创建book表 | | | | | | | | +| 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) | | | | | | | | +| ); | | | | | | | | +| alter DATABASE test03_bookstore charset utf8; | | | | | | | | +| ALTER TABLE book charset utf8; | | | | | | | | +| show CREATE TABLE 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 | | | +| -- +----------+--------------+------+-----+---------+----------------+ | | | | | | | | +| -- ``` | | | | | | | | +| -- | | | | | | | | +| -- 尝试添加部分模拟数据,参考示例如下: | | | | | | | | +| INSERT into book VALUES (1,'解忧杂货店','东野圭吾',27.20,102,98,'upload/books/解忧杂货店.jpg'),(2,'边城','沈从文',23.00,102,98'upload/books/边城.jpg'); | | | | | | | | +| -- ```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,并插入数据 | | | | | | | | +| create table users ( | | | | | | | | +| id int(11), | | | | | | | | +| username varchar(100), | | | | | | | | +| password 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 | | | +| -- +----------+--------------+------+-----+---------+----------------+ | | | | | | | | +| -- ``` | | | | | | | | +| -- | | | | | | | | +| -- 尝试添加部分模拟数据,参考示例如下: | | | | | | | | +| insert into users VALUES (1,'admin','112233','admin@mxdx.com'); | | | | | | | | +| -- ```mysql | | | | | | | | +| -- +----+----------+----------------------------------+--------------------+ | | | | | | | | +| -- | id | username | password | email | | | | +| -- +----+----------+----------------------------------+--------------------+ | | | | | | | | +| -- | 1 | admin | 112233 | admin@mxdx.com | | | | +| -- +----+----------+----------------------------------+--------------------+ | | | | | | | | +| -- ``` | | | | | | | | +| -- | | | | | | | | +| -- 4、创建订单表orders | | | | | | | | +| 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 | | | +| -- +--------------+--------------+------+-----+---------+-------+ | | | | | | | | +| -- ``` | | | | | | | | +| -- | | | | | | | | +| -- 尝试添加部分模拟数据,参考示例如下: | | | | | | | | +| insert into orders VALUES ('15294258455691','2018-06-20 00:30:45',2,50.20,0,1); | | | | | | | | +| -- ```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 | | | | | | | | +| create table order_items( | | | | | | | | +| 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) | | | | | | | | +| ); | | | | | | | | +| -- ```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 | | | +| -- +----------+--------------+------+-----+---------+----------------+ | | | | | | | | +| -- ``` | | | | | | | | +| -- | | | | | | | | +| -- 尝试添加部分模拟数据,参考示例如下: | | | | | | | | +| INSERT into order_items VALUES (1,1,27.20,'解忧杂货店','东野圭吾',27.20,'static/img/default.jpg','15294258455691'),(2,1,23.00,'边城','沈从文',27.20,'static/img/default.jpg','15294258455691'); | | | | | | | | +| -- ```mysql | | | | | | | | +| -- +----+-------+--------+---------+---------+-------+----------------+----------------+ | | | | | | | | +| -- | id | count | amount | title | author | price | img_path | +| -- +----+-------+--------+------------+----------+-------+----------------+----------------+ | | | | | | | | +| -- | 1 | 1 | 27.20 | 解忧杂货店 | 东野圭吾 | 27.20 | static/img/default.jpg | +| -- | 2 | 1 | 23.00 | 边城 | 沈从文 | 23.00 | static/img/default.jpg | +| -- +----+-------+--------+------------+----------+-------+------------+----------------+ | | | | | | | | +| -- ``` | | | | | | | | +| -- | | | | | | | | \ No newline at end of file -- Gitee