标签:0 rows char drop 重命名 warnings pre 英文 数据库 修改表
创建表前先使用use 数据库名进入某一个数据库,创建表语句的格式如下:
create table 表名称 (
列名1 列的数据类型 [约束],
列名2 列的数据类型 [约束],
列名2 列的数据类型 [约束],
...
列名N 列的数据类型 [约束]
);
#注意:最后一个末尾没有逗号
比如创建一个表名称为students,有name和age两列的表的命令为:
create table students (
name varchar(20),
age INTEGER
);
创建完之后通过show tables命令,就可以看到刚创建的表了,如下所示:
mysql> create table students (
-> name varchar(20) ,
-> age INTEGER
-> );
Query OK, 0 rows affected (0.60 sec)
mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| students |
+----------------+
1 row in set (0.00 sec)
mysql>
注意:所有mysql语句都是使用的英文的符号!
查看数据库中所有表,使用show tables命令,例如:
mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| students |
+----------------+
1 row in set (0.00 sec)查看表字段信息,使用desc 表名称,例如查看上面创建的students表的字段,可以使用desc students命令,执行结果如下:
mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| students |
+----------------+
1 row in set (0.00 sec)查看表的创建细节,使用命令show create table 表名称,例如查看上面创建的students表创建细节,可以使用show create table students命令,显示了创建表的完整sql语句。执行结果如下:
mysql> show create table students;
+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| students | CREATE TABLE `students` (
`name` varchar(20) DEFAULT NULL,
`age` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>? 数据库表创建完成后,我们还可以根据需要对表结构进行修改,比如增加字段,删除字段,重命名字段,修改字段的数据类型和修改表的字符集等。
增加字段,使用命令alter table 表名称 add 字段名称 数据类型,比如在上面创建的students表中增加一列score的命令为alter table students add score INTEGER,执行结果如下:
#增加前查看表结构
mysql> desc students;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
#增加一列
mysql> alter table students add score INTEGER;
Query OK, 0 rows affected (0.80 sec)
Records: 0 Duplicates: 0 Warnings: 0
#增加后再查看表结构,score已经增加了
mysql> desc students;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| score | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.05 sec)
mysql>修改字段名称,使用命令alter table 表名称 change 原字段名称 新字段名称 数据类型,比如将students表中score字段重命名为socre1,使用的命令为alter table students change score score1 INTEGER,执行结果如下:
mysql> desc students;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| score | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.05 sec)
# 重命名字段
mysql> alter table students change score score1 INTEGER;
Query OK, 0 rows affected (0.33 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc students;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| score1 | int(11) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql>删除字段,使用命令alter table 表名称 drop 字段名称来删除字段,比如将students表中score1字段删除的命令为alter table students drop score1
修改表名称,使用命令rename table 原表名称 to 新表名称 ,比如将students表名称修改为studentstab的命令为rename table students to studentstab
修改表的字符集,使用命令alter table 表名称 character set 字符集,比如将students表字符集修改为utf8的命令为alter table students character set utf8
? 删除表的命令很简单,格式为drop table 表名称,比如删除上面创建的students表的sql语句为drop table students,执行结果如下,表已经被删除了:
mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| students |
+----------------+
1 row in set (0.00 sec)
mysql> drop table students;
Query OK, 0 rows affected (0.50 sec)
mysql> show tables;
Empty set (0.00 sec)
mysql>标签:0 rows char drop 重命名 warnings pre 英文 数据库 修改表
原文地址:https://www.cnblogs.com/ay-a/p/11483958.html