diff --git "a/57 \345\210\230\346\263\260\346\261\237/20230220.md" "b/57 \345\210\230\346\263\260\346\261\237/20230220.md" new file mode 100644 index 0000000000000000000000000000000000000000..2eafe0f7e47a1915f54f0b646c5bf82ed491339e --- /dev/null +++ "b/57 \345\210\230\346\263\260\346\261\237/20230220.md" @@ -0,0 +1,273 @@ +1.第一节课学到的 + +DB :数据库(存储数据的地方) + +DBMS:数据库管理系统(Database Management System) + +cmd 打开方法 + +要先 环境变量 Path 加入mysql 的地址 重新启动mysql + + mysql -h 主机名 -P 端口号 -u 用户名 -p密码 + +show database;展示库。 + +DDL(数据定义语言) 创建(create) 修改(alter) 删除(drop) + +DML(数据操作语言) 增加(insert) 修改(update)删除(delete) + +DQL(数据查询语言) select * from 表名 + +DCL(数据控制语言) grant(授权)commit(确认)rollback(回滚) + +```sql +/* + Navicat Premium Data Transfer + + Source Server : ltjdsb + Source Server Type : MySQL + Source Server Version : 50737 + Source Host : localhost:3306 + Source Schema : class3 + + Target Server Type : MySQL + Target Server Version : 50737 + File Encoding : 65001 + + Date: 15/02/2023 20:32:10 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for student +-- ---------------------------- +DROP TABLE IF EXISTS `student`; +CREATE TABLE `student` ( + `id` int(15) NULL DEFAULT NULL, + `name` char(5) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `gender` char(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `hobby` char(5) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `address` char(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `phone` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `email` char(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `QQ` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of student +-- ---------------------------- +INSERT INTO `student` VALUES (30157, '刘泰江', '男', '篮球', '贵州省贵阳市白云区米兰春天', '18585850106', '3047034182@qq.com', '3047034182'); + +SET FOREIGN_KEY_CHECKS = 1; +``` + + + +2.今天学到了如何更改、替换、删除、增加、数据库或表的代码。 + +2.1重命名表 + +alter table 旧表名 rename 【to】 新表名; +rename table 旧表名称 to 新表名称; + +2.2修改字段 + +alter table 表名称 modify 【column】 字段名称 数据类型 first; +alter table 表名称 modify 【column】 字段名称 数据类型 after 另一个字段; + +2.3修改字段名称 + +alter table 表名称 change 【column】 旧字段名称 新的字段名称 新的数据类型; + +2.4修改字段的数据类型 + +alter table 表名称 modify 【column】 字段名称 新的数据类型; + +2.5增加字段 + +alter table 表名称 add 【column】 字段名称 数据类型; +alter table 表名称 add 【column】 字段名称 数据类型 first; +alter table 表名称 add 【column】 字段名称 数据类型 after 另一个字段; + +2.6删除字段 + +alter table 表名称 drop 【column】 字段名称; + +2.7修改数据表编码 + +alter table 表名称 convert to character set utf8; + +2.8删除表格(慎用!!!! 用于删库跑路) + +drop table 表名称;!!!!!!!!!!! + +```sql +-- 第1题 +-- +-- 1、创建数据库test01_market + CREATE table DATABASE test01_market charset utf8; +-- 2、创建表格 +use test01_market; +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 column 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); +alter table customers modify column c_gender char(1) after c_name; +-- **要求7:**将表名改为customers_info +alter table customers rename customers_info; +-- **要求8:**删除字段c_city +alter table customers_info drop c_city; +-- ```mysql +-- 第2题 +-- 1、创建数据库test02_library +CREATE database test02_library charset utf8; +USE test02_library; +-- 2、创建表格books +CREATE table books(b_id int(11)not null primary key,b_name varchar(50)not null,authors VARCHAR(100)not null,price float not null,pubdata year not null,note varchar(100),num int(11)not null); +-- | 字段名 | 字段说明 | 数据类型 | 允许为空 | 唯一 | +-- | ------- | -------- | ------------- | -------- | ---- | +-- | 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,'Tal of AAA','Dickes',23,1955,'novel',11); +-- 2)不指定字段名称插入第二记录 +insert into books values(2,'EmmaT','Jane lura',35,1993,'joke',22); +-- 3)同时插入多条记录(剩下的所有记录) +-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','UptonSarea',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。 +-- +UPDATE books set paice=price + 5where note='novel'; +-- 5、将名称为EmmaT的书的价格改为40。 +-- +update books set parice=40 where b_name='Emmat'; +-- 6、删除库存为0的记录 +-- +delete from books where num=0; +-- ```mysql +-- +-- 1、创建数据库test03_bookstore +create database test03_bookstore charset utf8; +use test03_bookstore; +-- 2、创建book表 +create table book(id int(11)not null primary key auto_increment,title varchar(100)not null,author varchar(100)not null,price double(11,2)not null,sales int(11)not null,stock int(11)not null,img_path varchar(100)not null); +-- +----------+--------------+------+-----+---------+----------------+ +-- | 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 '); +-- +----+-------------+------------+-------+-------+-------+----------------------------+ +-- | 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)not null primary key auto_increment,username varchar(100)not null,password varchar(100)not null,email varchar(100)not null); +-- +----------+--------------+------+-----+---------+----------------+ +-- | 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 '); +-- +----+----------+----------------------------------+--------------------+ +-- | id | username | password | email | +-- +----+----------+----------------------------------+--------------------+ +-- | 1 | admin | 112233 | admin@mxdx.com | +-- +----+----------+----------------------------------+--------------------+ +-- 4、创建订单表orders +create table orders(id varchar(100)not null primary key,order_time datetime not null,total_count int(11)not null,total_amount double(11,2)not null,state int(11)not null,user_id int(11)not null, key(user_id)); +desc 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 | | +-- +--------------+--------------+------+-----+---------+-------+ +-- 尝试添加部分模拟数据,参考示例如下: +insert into orders values(15294258455691 ,'2018-06-20 00:30:45',2,50.20,0,1); +select * from orders; +-- +----------------+---------------------+-------------+--------------+-------+---------+ +-- | 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_itrms(id int(11)not null auto_increment,count int(11)not null,amount double(11,2)not null,title varchar(100)not null,author varchar(100)not null,price double(11,2)not null,img_path varchar(100)not null,order_id varchar(100)not null,primary key(id),key(order_id)); +desc order_itrms; +-- +----------+--------------+------+-----+---------+----------------+ +-- | 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_itrms values(1,1,27.20,'解忧杂货店','东野圭吾',27.20,'static/img/default.jpg',15294258455691),(2,1,23.00,'边城','沈从文',23.00,'static/img/default.jpg',15294258455691); +select * from order_itrms; +-- +----+-------+--------+---------+---------+-------+----------------+----------------+ +-- | 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 | +-- +``` +