Mysql入门-表操作

本系列内容基本上是从一本叫做《Mysql入门很简单》上面整理的。如果侵犯了你的权益,告诉我,我删掉!

一、创建表

语法:
CREATE TABLE表名(属性名 数据类型[完整性约束条件],
属性名 数据类型[完整性约束条件],
...
属性名 数据类型
)

常见约束条件
PRIMARY KEY 标识该属性为该表的主键,可以唯一的标识对应的元组
FOREIGN KEY 标识该属性为该表的外键,是与之联系的某表的主键
NOT NULL 标识该属性不能为空
UNIQUE 标识该属性的值是唯一的
AUTO_INCREMENT 标识该属性设置默认值
DEFAULT 标识该属性的值自动增加,这是MySOL的SOL语句的特色

例如:
CREATE TABLE student(stu_id INT PRIMARY KEY AUTO_INCREMENT, ---主键
stu_name VARCHAR(20) NOT NULL,
stu_sex BOOLEAN
)

CREATE TABLE student2(id INT UNIQUE,
stu_id INT,
stu_grade FLOAT DEFAULT 0,
PRIMARY KEY(stu_id,course_id) ---多字段组合主键
);

CREATE TABLE student3(id INT PRIMARY KEY,
stu_id INT,
course_id INT,
CONSTRAINT cfk FOREIGN KEY (stu_id,course_id)
REFERENCES student2(stu_id,course_id)
);

注释:
student2是父表,student3是子表。子表的数据依赖于父表。外键在子表上。


二、查看表结构
1、DESCRIBE student;
2、DESC student;
3、SHOW CREATE TABLE student;
4、SHOW CREATE TABLE studentG; <=> SHOW CREATE TABLE studentg;

三、修改表
1、修改表名
ALTER TABLE 旧表名 RENAME [TO] 新表名; -- ALTER TABLE user RENAME student;
2、修改表结构
ALTER TABLE 表名 MODIFY 属性名 数据类型; -- ALTER TABLE student MODIFY name VARCHAR(30);
3、修改表字段名
ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型; -- ALTER TABLE student CHANGE name stu_name VARCHAR(30);
4、修改表字段名和属性
ALTER TABLE student CHANGE sex stu_sex INT(2); -- 应遵循新属性包含旧属性原则
5、增加字段
ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件] [FIRST|AFTER属性名2];
--------
ALTER TABLE student ADD phone CHAR(20); --默认最后一列
ALTER TABLE student ADD age INT(4) NOT NULL;
ALTER TABLE student ADD s_no INT(8) PRIMARY KEY FIRST; --设置为主键,并且指定了放在第一列
ALTER TABLE student ADD address VARCHAR(30) NOT NULL AFTER phone; --新插入列放在phone后面
6、删除字段
ALTER TABLE 表名 DROP 属性名; ------ ALTER TABLE student DROP address;
7、编辑列
ALTER TABLE 表名 MODIFY 属性名1 数据类型 FIRST|AFTER 属性名2;
------------
ALTER TABLE student MODIFY s_no INT(8) FIRST;
ALTER TABLE student MODIFY address VARCHAR(30) NOT NULL AFTER phone;
8、更改表的存储引擎
ALTER TABLE 表名 ENGINE=存储引擎名; -- ALTER TABLE student ENGINE=MyISAM;
9、删除外键
ALTER TABLE 表名 DROP FOREIGN KEY 外键别名;
-------
ALTER TABLE student3 DROP FOREIGN cfk;
10、删除表
DROP TABLE 表名; -- DROP TABLE student3;

原文地址:https://www.cnblogs.com/smallfishy/p/13513917.html