【MySQL小白之路】表的创建与操作
表的创建
关键字:CREATE TABLE
所需信息:1.表名 2.列名与列的定义(类型,能否为空)
样例:
CREATE TABLE student ( #表名:student
stu_id int NOT NULL, #列名:stu_id 类型:int 能否为空:NOT
stu_name char(50) NOT NULL, #列名:stu_name 类型:char(50) 能否为空:NOT
PRIMARY KEY (stu_id) #主键:stu_id
) ENGINE = InnoDB; #引擎:InnoDB
样例分析:
表名跟于CREATE TABLE关键字后;
列名与列的定义位于括号内,逗号分隔。顺序:列名 数据类型 能否为空 其他选项(可选);
主键声明于PRIMARY KEY关键字后的括号内,至少一个。主键只能定义为NOT NULL;
引擎位于最后;
拓展:
IF NOT EXISTS关键字:表示仅在不存在该表时创建该表。位于表名后。
AUTO_INCREMENT关键字:每当增加一行时自动增量,每张表仅可设一个,且该列为主键。位于列定义中的其他选项。
SELECT last_insert_id() :last_insert_id函数返回最后一个AUTO_INCREMENT值
DEFAULT关键字:设置默认值,只支持常量。在插入行未给出值时,使用默认值。位于列定义中的其他选项。
主键:用于区分表中的行与行,主键值相同的行是同一行。
引擎类型:SHOW ENGINES 查看支持的引擎
常用:
InnoDB(默认):优秀的事务处理引擎;
MyISAM:高性能引擎,但不支持事务;
MEMORY:功能同MyISAM,但数据存于内存,速度快,适合临时表;
表的操作
表的更新
关键字:ALTER TABLE
所需信息:1.已存在的表名 2.所做更改的列
样例:
#列的添加与删除
ALTER TABLE student #选定更新的表:student
ADD stu_email char(50), #添加名为:stu_email的列,数据类型为:char(50)
DROP COLUMN stu_email; #删除名为:stu_email的列
#定义外键
ALTER TABLE student #选定更新的表:student
ADD CONSTRAINT fk_student_course #添加名为:fk_student_course的外键
FOREIGN KEY (stu_id) #以stu_id列为标准
REFERENCES course (stu_id); #链接到course表的stu_id列
表的删除
关键字:DROP TABLE
所需信息:1.表名
样例:
DROP TABLE student;
注意:该操作不可撤回!!!
表的重命名
关键字:RENAME TABLE … TO …
所需信息:1.表名 2.重新名
样例:
RENAME TABLE student TO students;
提示:可对多个表重命名,以逗号分隔。