📜  在 sql 中描述表(1)

📅  最后修改于: 2023-12-03 15:07:49.607000             🧑  作者: Mango

在 SQL 中描述表

在 SQL 中,表是由行和列组成的二维结构,其中行代表每个记录,列代表每个属性。在描述表时需要定义表的结构和字段类型,并指定每个字段的约束和默认值等信息。

创建表

创建表的基本语法如下:

CREATE TABLE table_name (
   column1 datatype constraints, 
   column2 datatype constraints, 
   column3 datatype constraints,
   ...
);

其中,table_name 表示表名;column1, column2, column3 等表示列名;datatype 表示数据类型;constraints 表示约束条件,如 NOT NULL, UNIQUE, PRIMARY KEY 等。

例如,创建一个名为 students 的表,包含 id, name, gender, age 四个字段,其中 id 是主键,类型为整数,自动递增;name 类型为字符串,不允许为空;gender 类型为字符串,只允许填写 MFage 类型为整数,可以为空,默认值为 18

CREATE TABLE students (
   id INT PRIMARY KEY AUTO_INCREMENT,
   name VARCHAR(50) NOT NULL,
   gender CHAR(1) CHECK(gender IN ('M','F')),
   age INT DEFAULT 18
);
描述表

可以使用 DESCDESCRIBE 来描述表的结构,例如:

DESC students;

输出结果类似于:

+--------+---------------------+------+-----+---------+----------------+
| Field  | Type                | Null | Key | Default | Extra          |
+--------+---------------------+------+-----+---------+----------------+
| id     | int(11)             | NO   | PRI | NULL    | auto_increment |
| name   | varchar(50)         | NO   |     | NULL    |                |
| gender | char(1)             | YES  |     | NULL    |                |
| age    | int(11)             | YES  |     | 18      |                |
+--------+---------------------+------+-----+---------+----------------+

其中,每一行代表一列的信息。包含 Field(列名),Type(数据类型),Null(是否允许为空),Key(约束条件),Default(默认值),Extra(额外信息,如自动递增)等字段。

修改表

可以使用 ALTER TABLE 来修改表的结构,例如:

  1. 添加新列
ALTER TABLE students ADD COLUMN email VARCHAR(50);
  1. 修改列名和数据类型
ALTER TABLE students CHANGE COLUMN gender sex ENUM('M','F');
  1. 删除列
ALTER TABLE students DROP COLUMN age;
删除表

可以使用 DROP TABLE 来删除表,例如:

DROP TABLE students;
总结

在 SQL 中,描述表包含创建表、描述表、修改表和删除表等过程,需要定义表的结构和字段类型,并指定每个字段的约束和默认值等信息。可以使用 CREATE TABLE, DESC(或 DESCRIBE),ALTER TABLE, DROP TABLE 等命令来完成这些操作。