本文为本人学习书籍《MySQL必知必会》笔记系列,欢迎持续关注,有问题随时留言评论,一起探讨学习~
21创建和操作表
21.1创建表CREATE TABLE
使用交互式工具创建,例如Navicat Premium
使用MySQL语句创建
21.1.1SQL语句创建表
CREATE TABLE product.school
(
id int NOT NULL AUTO_INCREMENT,#自动增量
number char(50) NOT NULL,
name char(50) NOT NULL,
sex char(3) NOT NULL,
age int NULL,
class char(50) NULL,
school char(50) NOT NULL DEFAULT 1,#默认值为1
PRIMARY KEY(id) #设置主键
)EMGINE=InnoDB;#引擎类型
一般情况下,使用默认值而不是NULL值(NOT NULL),便于后续数据处理
每个表只允许一个AUTO_INCREMENT列,且它必须被索引
使用自动增量AUTO_INCREMENT生成主键的缺点是不知道id值有哪些。
如何在使用AUTO_INCREMENT列时获取生成的id值呢?
可使用last_insert_id()获取。如下:
SELECT LAST_INSERT_ID()
该语句返回最后一个AUTO_INCREMENT值,然后可以将它用于后续SQL语句。
21.2更新表ALTER TABLE
21.2.1给表custnew增加列cust_tempy,必须明确cust_tempy的数据类型
ALTER TABLE custnew
ADD cust_tempy CHAR(20);
21.2.2删除刚添加的列cust_tempy
ALTER TABLE custnew
DROP COLUMN cust_tempy;
21.2.3定义外键
ALTER TABLE的一种常见用途是定义外键,语句结构如下:
ALTER TABLE 表1名称
ADD CONSTRAINT fk_表1名称_表2名称
FOREIGN KEY(表1的主键列名) REFERENCES 表2名(表2的主键列名);
21.3删除表
DROP TABLE 表1名称;
这条语句删除表1。删除没有确认也不能撤销,永久删除。不能撤销,永久删除!不能撤销,永久删除!
21.4重命名表
RENAME TABLE 表1名称 TO 修改后的表1名称,
表2名称 TO 修改后的表2名称,
表3名称 TO 修改后的表3名称;