内容正文:
专题四 定义表
数据库原理与应用技术-MySQL
专题复习讲练测
河北科学技术出版社
掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
考纲要求
一
(二) 定义表
1.掌握MySQL常用的数据类型、掌握创建表、查看表、修改表、重命名表、复制表和删除表的基本操作;
2.掌握MySQL的常用数据类型:数字类型、字符串类型、日期和时间类型等;
3.掌握建立数据表的命令:CREATE TABLE;
4.掌握查看表结构的命令:SHOW COLUMNS、DESCRIBE;
5.掌握修改表结构的命令:ALTER TABLE;
6.掌握重命名表的命令:RENAME TABLE;
7.掌握复制表的命令:CREATE TABLE …LIKE;
8.掌握删除表的命令:DROP TABLE;
知识点梳理
二
创建数据表
CREATE TABLE table_name (
column1 datatype [constraint],
column2 datatype [constraint],
...
[PRIMARY KEY (column_list)],
[UNIQUE (column_list)],
[FOREIGN KEY (column_list)
REFERENCES ref_table(ref_column_list)]
);
➽ CREATE TABLE
知识点梳理
二
创建数据表
column:列名,应遵循 MySQL 的命名规则。
datatype:列的数据类型,如上述介绍的各种类型。
constraint:列的约束条件,常见的有:
NOT NULL:该列不允许为空。
DEFAULT value:为列设置默认值。
AUTO_INCREMENT:用于整数类型的列,自动递增。
PRIMARY KEY:指定表的主键,保证表中每行数据的唯一性。一个表只能有一个主键,可以是单个列,也可以是多个列的组合。
UNIQUE:保证列或列组合的值在表中是唯一的,但可以为 NULL。
FOREIGN KEY:用于建立表与表之间的关联关系,引用另一个表的主键。
➽ CREATE TABLE
知识点梳理
二
创建数据表
➽ CREATE TABLE
知识点梳理
二
查看表结构
语法:SHOW COLUMNS FROM table_name [LIKE 'pattern'];
功能:显示指定表的列信息,包括列名、数据类型、是否允许为空、默认值、额外信息(如 AUTO_INCREMENT)等。LIKE 子句可用于筛选列名符合特定模式的列。
➽ SHOW COLUMNS
知识点梳理
二
查看表结构
语法:
DESCRIBE table_name [column_name];
或简写为 DESC table_name [column_name];
功能:与 SHOW COLUMNS 功能类似,用于查看表的结构信息。如果指定了 column_name,则只显示该列的详细信息。
➽ DESCRIBE
知识点梳理
二
修改表结构
添加列
ALTER TABLE table_name ADD [COLUMN] column_name datatype [constraint] [FIRST | AFTER existing_column];
注意:
FIRST:将新列添加到表的第一列。
AFTER existing_column:将新列添加到指定列之后。
➽ ALTER TABLE
知识点梳理
二
修改表结构
修改列的数据类型
ALTER TABLE table_name MODIFY [COLUMN] column_name new_datatype [constraint];
➽ ALTER TABLE
知识点梳理
二
修改表结构
修改列名和数据类型
ALTER TABLE table_name
CHANGE [COLUMN] old_column_name new_column_name new_datatype [constraint];
➽ ALTER TABLE
知识点梳理
二
修改表结构
删除列
ALTER TABLE table_name
DROP [COLUMN] column_name;
➽ ALTER TABLE
知识点梳理
二
修改表结构
添加主键
ALTER TABLE table_name
ADD PRIMARY KEY (column_list);
➽ ALTER TABLE
知识点梳理
二
修改表结构
删除主键
ALTER TABLE table_name
DROP PRIMARY KEY;
➽ ALTER TABLE
知识点梳理
二
修改表结构
添加唯一约束
ALTER TABLE table_name
ADD UNIQUE (column_list);
➽ ALTER TABLE
知识点梳理
二
修改表结构
删除唯一约束
ALTER TABLE table_name
DROP INDEX index_name;
➽ ALTER TABLE
知识点梳理
二
修改表结构
添加外键约束
ALTER TABLE table_name
ADD FOREIGN KEY (column_list) REFERENCES ref_table(ref_column_list);
➽ ALTER TABLE
知识点梳理
二
修改表结构
删除外键约束
ALTER TABLE table_name
DROP FOREIGN KEY fk_name;
➽ ALTER TABLE
知识点梳理
二
重命名表
语法
RENAME TABLE old_table_name TO new_table_name;
➽ RENAME TABLE
知识点梳理
二
复制表
语法
CREATE TABLE new_table_name LIKE old_table_name;
此命令会复制 old_table_name 表的结构(包括列名、数据类型、约束等)到 new_table_name 表,但不复制表中的数据。
➽ CREATE TABLE …LIKE
知识点梳理
二
删除表
语法
DROP TABLE [IF EXISTS] table_name [, table_name2, ...];
IF EXISTS:可选参数,如果指定该参数,当表不存在时不会报错。
可以同时删除多个表,用逗号分隔表名。
➽ DROP TABLE
知识点梳理
二
数据类型
类别 数据类型 说明 示例
数字类型 TINYINT 1 字节有符号整数(-128~127) TINYINT(4)
SMALLINT 2 字节有符号整数(-32768~32767) SMALLINT
INT/INTEGER 4 字节有符号整数(-2147483648~2147483647) INT UNSIGNED
BIGINT 8 字节有符号整数(±9.2e18) BIGINT AUTO_INCREMENT
FLOAT 4 字节单精度浮点数(约 7 位有效数字) FLOAT(8,2)
DOUBLE 8 字节双精度浮点数(约 15 位有效数字) DOUBLE
DECIMAL 高精度定点数(存储为字符串) DECIMAL(10,2)
知识点梳理
二
数据类型
类别 数据类型 说明 示例
字符串类型 CHAR 固定长度字符串(0~255 字符) CHAR(10)
VARCHAR 可变长度字符串(0~65535 字符) VARCHAR(100)
TEXT 长文本(0~65535 字符) TEXT
BLOB 二进制大对象(0~65535 字节) BLOB
ENUM 枚举类型(最多 65535 个值) ENUM (' 男 ',' 女 ',' 未知 ')
SET 集合类型(最多 64 个值) SET('A','B','C')
知识点梳理
二
数据类型
类别 数据类型 说明 示例
日期时间类型 DATE 日期(YYYY-MM-DD) DATE
TIME 时间(HH:MM:SS) TIME
DATETIME 日期时间(YYYY-MM-DD HH:MM:SS) DATETIME DEFAULT CURRENT_TIMESTAMP
TIMESTAMP 时间戳(1970-01-01 00:00:01 到 2038-01-19 03:14:07) TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
YEAR 年份(1901-2155) YEAR
限时练习
三
1.适合存储精确的货币金额的数据类型是( )
A. FLOAT
B. DOUBLE
C. DECIMAL
D. INT
答案:C
解析:DECIMAL 类型支持指定精度和标度,适合金融计算,而 FLOAT 和 DOUBLE 存在精度误差。
限时练习
三
2.创建表时,若某字段需要自动递增,应使用( )关键字
A. AUTO_INCREMENT
B. UNIQUE
C. NOT NULL
D. DEFAULT
答案:A
解析:AUTO_INCREMENT 用于整数类型字段,实现主键自动递增。
限时练习
三
3.若要将 orders 表中的 total_amount 字段从 DECIMAL(10,2) 修改为 DECIMAL(12,4),应使用( )命令
A. ALTER TABLE orders MODIFY total_amount DECIMAL(12,4)
B. ALTER TABLE orders CHANGE total_amount TO DECIMAL(12,4)
C. UPDATE TABLE orders SET total_amount = DECIMAL(12,4)
D. MODIFY COLUMN total_amount DECIMAL(12,4) IN orders
答案:A
解析:MODIFY COLUMN 正确修改字段的数据类型。
限时练习
三
4.SHOW COLUMNS 和 DESCRIBE 功能相同。( )
答案:正确
解析:两者都用于查看表结构。
限时练习
三
5.创建一个名为 products 的表,包含以下字段:
product_id:整数类型,作为主键,自动递增。
product_name:可变长度字符串,最大长度为 100,非空。
category:可变长度字符串,最大长度为 50,默认值为 'Uncategorized'。
price:定点数类型,总位数为 10,小数位数为 2,非空且必须大于 0。
stock_quantity:整数类型,默认值为 0。
限时练习
三
-- 创建 customers 表
CREATE TABLE customers (
customer_id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
registration_date DATETIME DEFAULT CURRENT_TIMESTAMP
);
内容小结
四
谢谢
$$