§ Table/表管理
§ 什么是表
在GreatSQL中,表(Table)是数据库的基本组成部分,用于存储具有相同结构的数据集合。表由行(Row)和列(Column)组成,每一列代表一个属性或字段(Field),每一行代表一个数据记录(Record)。
§ 表的创建
在数据库中创建数据表基本语法如下:
CREATE TABLE [IF NOT EXISTS]tablename(
COLUMN_NAME_1 COLUMN_TYPE_1 CONSTRAINTS
COLUMN_NAME_2 COLUMN_TYPE_2 CONSTRAINTS
字段3, 数据类型 [约束条件] [默认值],
...
COLUMN_NAME_N COLUMN_TYPE_N CONSTRAINTS
)
2
3
4
5
6
7
其中,tablename
为数据表名称,COLUMN_NAME_1
为列名,COLUMN_TYPE_1
为列的数据类型,CONSTRAINTS
为约束条件,DEFAULT
为默认值。
举例: 创建一个test_greatsql的表 表里包括id(idb编号)、name(姓名)、sex(性别)、address(地址)四个字段
greatsql> CREATE TABLE test_greatsql(
id INT NOT NULL AUTO_INCREMENT,
ename VARCHAR(10) NOT NULL,
sex CHAR(1) NOT NULL,
address VARCHAR(20) NOT NULL,
PRIMARY KEY(id)
);
Query OK, 0 rows affected (0.02 sec)
2
3
4
5
6
7
8
使用SHOW CREATE TABLE test_greatsql \G
可得到更全面的建表信息
greatsql> SHOW CREATE TABLE test_greatsql \G
*************************** 1. row ***************************
Table: test_greatsql
Create Table: CREATE TABLE `test_greatsql` (
`id` int NOT NULL AUTO_INCREMENT,
`ename` varchar(10) NOT NULL,
`sex` char(1) NOT NULL,
`address` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)
2
3
4
5
6
7
8
9
10
11
§ 表的删除与清空
对表的操作,包括删除表和清空表。
§ 删除表
DROP TABLE [IF EXISTS] tablename;
例如,删除test_greatsql表
greatsql> DROP TABLE test_greatsql;
Query OK, 0 rows affected (0.02 sec)
2
§ 清空表
不删除表结构,只删除内容
TRUNCATE TABLE tablename;
例如,清空test_greatsql表
greatsql> TRUNCATE TABLE test_greatsql;
Query OK, 0 rows affected (0.01 sec)
2
§ 表的修改
§ 添加字段
ALTER TABLE tablename ADD COLUMN_NAME COLUMN_TYPE;
例如,在test_greatsql表中添加age字段
greatsql> ALTER TABLE test_greatsql ADD age INT;
Query OK, 0 rows affected (0.02 sec)
2
§ 修改字段
ALTER TABLE tablename MODIFY COLUMN_NAME COLUMN_TYPE;
例如,将test_greatsql表的age字段修改为varchar类型
greatsql> ALTER TABLE test_greatsql MODIFY age VARCHAR(10);
Query OK, 0 rows affected (0.02 sec)
2
§ 删除字段
ALTER TABLE tablename DROP COLUMN_NAME;
例如,删除test_greatsql表的age字段
greatsql> ALTER TABLE test_greatsql DROP age;
Query OK, 0 rows affected (0.02 sec)
2
§ 重命名表
RENAME TABLE old_tablename TO new_tablename;
或
ALTER TABLE old_tablename RENAME TO new_tablename;
2
3
例如,将test_greatsql表重命名为test_greatsql1
greatsql> RENAME TABLE test_greatsql TO test_greatsql1;
Query OK, 0 rows affected (0.02 sec)
2
§ 表的查看
§ 查看数据库中的表
greatsql> SHOW TABLES;
例如,查看test数据库中的表
greatsql> SHOW TABLES;
+------------------+
| Tables_in_test |
+------------------+
| test_greatsql |
+------------------+
1 row in set (0.00 sec)
2
3
4
5
6
7
§ 表的创建参考
详情可见:Schema设计规范参考
举例几个《Java开发手册》之字段命名
【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。 正例:aliyun_admin,rdc_config,level3_name 反例:AliyunAdmin,rdcConfig,level_3_name
【强制】表必备三字段:id, gmt_create, gmt_modified。 说明:其中 id 必为主键,类型为BIGINT UNSIGNED、单表时自增、步长为 1。gmt_create, gmt_modified 的类型均为 DATETIME 类型,前者现在时表示主动式创建,后者过去分词表示被动式更新。
【推荐】表的命名最好是遵循 “业务名称_表的作用”。 正例:alipay_task 、 force_project、 trade_config
【推荐】库名与应用名称尽量一致。
【参考】合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检索速度。 正例:无符号值可以避免误存负数,且扩大了表示范围。
扫码关注微信公众号
← Schema/库管理 Index/索引管理 →