MySQL 24小时入门笔记(4)表的建立、修改、删除

MySQL 24小时入门笔记

建立表

CREATE TABLE

CREATE TABLE的做用是建立表。很少说,先建立个简单的学生表。code

CREATE TABLE students (
    id int,
    name char(16) NOT NULL,
    primary key (id)
);

这里没写 ENGINE=InnoDB,由于这是新 MariaDB 的默认值。索引

那么进入正题,CREATE TABLE的语法以下。入门

CREATE TABLE [表名] (
    [列名] [类型] [约束和其余属性],
    [列名] [类型] [约束和其余属性],
    ....
    [其余表配置]
);

很容易看出,括号里面写的是表的相关配置,包括列定义,主键定义,索引定义等等。table

默认值

在建立表时能够指定默认值,有默认值的列在插入时能够不填。class

语法以下。配置

CREATE TABLE [表] (
    [列] [类型] DEFAULT [值],
);

便可为一个列设定默认值。语法

非空

非空约束很是常见。好比说,咱们要记录学生信息,包括学号、成绩、姓名,那么学生姓名能不能留空呢?显然不行,由于没有姓名的记录让谁看都是一脸懵逼,这破坏了一条记录的完整性。引用

建立非空约束的语法以下。im

CREATE TABLE [表] (
    [列] [类型] NOT NULL,
);

这就建立了非空约束。非空约束下,插入数据时不能不填写这个列。命名

若是须要要求可空,那么这样作。但通常不用特意写,不少DBMS的列默认建立就是可空的。

CREATE TABLE [表] (
    [列] [类型] NULL,
);

修改表

ALTER TABLE

ALTER TABLE能够修改表定义,添加删除列,修改约束,等等。

添加列

举例,在一个只有学号和姓名两个列的学生表加入一个新的成绩列,代码以下。

ALTER TABLE students
ADD score int;

语法基本是这样。

ALTER TABLE [表名]
ADD [列名] [类型] [其余属性和约束];

后面列的定义写法基本和CREATE TABLE时差很少。

删除列

和添加列差很少,但删除的关键字不是DELETE,而是DROP

ALTER TABLE [表名]
DROP [列名];

添加外键约束

外键约束其实保证的是引用完整性,外键约束的列的值必须引用了一个有效的行,或者是NULL

举例来讲,咱们先有两个表。

学生表

id name class
1 student 1 1
2 student 2 2
3 student 3 3

班级表

id level
1 Lv5
2 Lv4
3 Lv3

为了让学生表的class关联到班级表的id,咱们要这样作。

ALTER TABLE students
ADD CONSTRAINT fk_students_classes
FOREIGN KEY (class) REFERENCES classes (id);

语法基本是这样子的

ALTER TABLE [保存外键的表]
ADD CONSTRAINT [外键约束的名字,通常fk开头]
FOREIGN KEY ([外键名]) REFERENCES [引用的表名] ([引用的键名])

比较复杂。

删除表

那么终于到了期待已久的删库跑路阶段。

删除表的语法很是简单,那么从一开始活到如今的这所学校终于干不下去了,校长决定遣散学生。

DROP TABLE students;

人走光了。

重命名表

校长决定把学校改为夜总会,因而他写道:

RENAME TABLE school TO night_club;

要是换行有这么容易就行了……(你敢说回车看看)

相关文章
相关标签/搜索