MySQL基础教程

第一章: 环境搭建,安装MySQL

第二章: 掌握数据库的核心概念

第三章: MySQL服务与Show命令

第四章: 创建数据库与数据表

第五章: MySQL增查改删

第六章: MySQL常用函数

第七章: 在Python中操作MySQL

首页 > MySQL基础教程 > 第四章: 创建数据库与数据表 > 4.5节: 数据表的创建与删除(下)

4.5节: 数据表的创建与删除(下)

薯条老师 2021-11-19 12:45:48 191200 0

编辑 收藏

广州番禺Python, Java小班周末班培训

薯条老师在广州做Python和Java的小班培训,一个班最多10人,学员的平均就业薪资有11K。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Python机器学习,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6

4.5.1 创建数据表

4.2节讲解了在MySQL中创建数据表的语法,现在结合4.3节的数据类型以及4.4节的约束类型来分别创建一个商品表和订单表。在创建数据表之前,我们先创建一个名为chipscoco的数据库。创建chipscoco数据库的SQL实例:

create database chipscoco;

创建成功后再执行use chipscoco命令切换至chipscoco数据库:

use chipscoco;

4.5.2 创建商品表

商品表用来保存商品信息,下表所示为商品表的主要字段:

列名
类型约束描述
id
整型
非空,主键,自增
商品的编号
name
字符串
非空
商品名
price
浮点型
非空
商品价格
ct
时间戳
非空,默认;默认值为系统当前的时间戳
入库时间

创建商品表的SQL语句:

create table goods(
 id int not null primary key auto_increment, 
 name varchar(20) not null,
 price double not null,
 ct timestamp not null default current_timestamp
);

4.5.3 创建订单表

订单表用来保存订单信息,下表所示为订单表的主要字段:

列名
类型约束描述
id
整型
非空,主键,自增
订单编号
sum
浮点型
非空
订单金额
gid
整型
非空,外键
引用了goods表中的主键
ct
时间戳
非空,默认;默认值为系统当前的时间戳入库时间

创建订单表的SQL语句:

create table orders(
  id int not null primary key auto_increment,
  sum double not null,
  gid int not null,
  ct timestamp not null default current_timestamp,
  foreign key(gid) references goods(id) on delete cascade
);

读者须注意,以上订单表与商品表是一对一的关系,即一个商品只对应一个订单,一个订单只包含一个商品。现在问题来了,一个订单需包含多种商品,一个商品会对应到多个订单,请问该如何设计数据表,使得商品表与订单表建立多对多的关系?

4.5.4 查看数据表

执行show tables命令可查看当前数据库下的所有数据表:

mysql> show tables;
+---------------------+
| Tables_in_chipscoco |
+---------------------+
| goods               |
| orders              |
+---------------------+
2 rows in set (0.02 sec)

如需查看指定数据库中的数据表,需通过from关键字来指定数据库。例如查看chipscoco数据库下的所有数据表:

mysql> show tables from chipscoco;
+---------------------+
| Tables_in_chipscoco |
+---------------------+
| goods               |
| orders              |
+---------------------+
2 rows in set (0.00 sec)

使用DESC语句可快速查看数据表的结构以及列类型,键类型等:

mysql> desc goods;
+-------+-------------+------+-----+-------------------+-------------------+
| Field | Type        | Null | Key | Default           | Extra             |
+-------+-------------+------+-----+-------------------+-------------------+
| id    | int         | NO   | PRI | NULL              | auto_increment    |
| name  | varchar(20) | NO   |     | NULL              |                   |
| price | double      | NO   |     | NULL              |                   |
| ct    | timestamp   | NO   |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
+-------+-------------+------+-----+-------------------+-------------------+
4 rows in set (0.01 sec)

如需查看数据表定义的SQL语句,可使用show create table语句,例如查看创建goods表的SQL语句,写法为show create table goods。

mysql> show create table goods\G
*************************** 1. row ***************************
       Table: goods
Create Table: CREATE TABLE `goods` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `price` double NOT NULL,
  `ct` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

4.5.5 最具实力的小班培训

薯条老师在广州做Python和Java的小班培训,一个班最多10人。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。打算参加小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。

(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,包拿Offer
(3) 数据分析高薪就业班,月薪11K-15K, 免费领取课程大纲
(4)
Python大数据挖掘,量化投资就业班,月薪12K-25K,免费领取课程大纲

扫码免费领取Python学习资料:



欢迎 发表评论: