数据表的创建
查看数据表命令 | 必须先选择数据库
show tables;
创建 MySQL 数据表需要以下信息:
- 表名
- 表字段名
- 定义每个表字段的数据类型
以下为创建 MySQL 数据表的 SQL 通用语法:
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
...
);
参数说明:
table_name
是你要创建的表的名称。column1
,column2
, ... 是表中的列名。datatype
是每个列的数据类型。
示例1:
CREATE TABLE Username(id int,Username varchar(255),Password varchar(255));
id
: 用户 id,整数类型Username
: 用户名称,字符串类型Password
: 用户密码,字符串类型
创建成功如下:
mysql> CREATE TABLE Username(id int,Username varchar(255),Password varchar(255));
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
+----------------------+
| Tables_in_robomaster |
+----------------------+
| username |
+----------------------+
1 row in set (0.00 sec)
以下示例为进阶部分可跳过
以下是一个具体的实例,创建一个用户表 users:
在 RoboMaster 数据库下进行操作
示例2:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
birthdate DATE,
is_active BOOLEAN DEFAULT TRUE
);
id
: 用户 id,整数类型,自增长,作为主键username
: 用户名,变长字符串,不允许为空email
: 用户邮箱,变长字符串,不允许为空birthdate
: 用户的生日,日期类型is_active
: 用户是否已经激活,布尔类型,默认值为 true- AUTO_INCREMENT 定义列为自增的属性,一般用于主键,数值会自动加 1
- PRIMARY KEY 关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔
- DEFAULT 关键字设置默认值约束,相当于初始化
- ENGINE 设置存储引擎,CHARSET 设置编码
如果你不想字段为空可以设置字段的属性为 NOT NULL
创建成功如下:
mysql> CREATE TABLE users (
-> id INT AUTO_INCREMENT PRIMARY KEY,
-> username VARCHAR(50) NOT NULL,
-> email VARCHAR(100) NOT NULL,
-> birthdate DATE,
-> is_active BOOLEAN DEFAULT TRUE
-> );
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
+----------------------+
| Tables_in_robomaster |
+----------------------+
| users |
+----------------------+
1 row in set (0.00 sec)
查看数据表结构,语法如下
desc 表名;
示例:
desc Username;
查询成功如下:
mysql> desc Username;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| Username | varchar(255) | YES | | NULL | |
| Password | varchar(255) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
3 rows in set (0.01 sec)