mysql 培训表_MySQL学习——操作表

MySQL学习——操作表

摘要:本文主要学习了使用DDL语句操作表的方法。

创建表

语法

1 create table 表名 [表定义选项] [表选项];

表定义选项

用来创建定义表的结构,由列名(col_name)、列的定义(column_definition)以及可能的空值说明、完整性约束或表索引组成。

实例

1 mysql> create tabletest (2 -> id int(11) not null comment '编号',3 -> name varchar(50) default null comment '姓名',4 -> address varchar(50) default null comment '地址',5 -> status int(2) default null comment '状态',6 -> createtime date default null comment '创建时间',7 -> updatetime date default null comment '修改时间',8 -> primary key(id)9 -> ) engine=innodb default charset=utf8mb4 comment='测试';10 Query OK, 0 rows affected (0.01sec)11

12 mysql>

复制表

语法

1 create table 新表名 as select * from 旧表名;

实例

1 Databasechanged2 mysql> create table grade as select * fromscore;3 Query OK, 12 rows affected (0.01sec)4 Records: 12 Duplicates: 0 Warnings: 0

5

6 mysql>

查看表的列

语法

1 show columns from 表名;

实例

1 mysql> show columns fromtest;2 +------------+-------------+------+-----+---------+-------+

3 | Field | Type | Null | Key | Default | Extra |

4 +------------+-------------+------+-----+---------+-------+

5 | id | int(11) | NO | PRI | NULL | |

6 | name | varchar(50) | YES | | NULL | |

7 | address | varchar(50) | YES | | NULL | |

8 | status | int(2) | YES | | NULL | |

9 | createtime | date | YES | | NULL | |

10 | updatetime | date | YES | | NULL | |

11 +------------+-------------+------+-----+---------+-------+

12 6 rows in set (0.00sec)13

14 mysql>

说明

Field:列名。

Type:类型。

Null:表示该列是否可以存储NULL值。

Key:表示该列是否已编制索引。PRI表示该列是主键的一部分,UNI表示该列是UNIQUE索引的一部分,MUL表示在列中某个给定值允许出现多次。

Default:表示该列是否有默认值,如果有,值是多少。

Extra:表示可以获取的与给定列有关的附加信息,如:AUTO_INCREMENT等。

查看表结构

语法

1 desc 表名;

实例

1 mysql>desc test;2 +------------+-------------+------+-----+---------+-------+

3 | Field | Type | Null | Key | Default | Extra |

4 +------------+-------------+------+-----+---------+-------+

5 | id | int(11) | NO | PRI | NULL | |

6 | name | varchar(50) | YES | | NULL | |

7 | address | varchar(50) | YES | | NULL | |

8 | status | int(2) | YES | | NULL | |

9 | createtime | date | YES | | NULL | |

10 | updatetime | date | YES | | NULL | |

11 +------------+-------------+------+-----+---------+-------+

12 6 rows in set (0.00sec)13

14 mysql>

说明

Filed:列名。

Type:类型。

Null:表示该列是否可以存储NULL值。

Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分,UNI表示该列是UNIQUE索引的一部分,MUL表示在列中某个给定值允许出现多次。

Default:表示该列是否有默认值,如果有,值是多少。

Extra:表示可以获取的与给定列有关的附加信息,如:AUTO_INCREMENT等。

查询所有的表

语法

1 show tables;

实例

1 mysql>show tables;2 +----------------+

3 | Tables_in_demo |

4 +----------------+

5 | test |

6 +----------------+

7 1 row in set (0.00sec)8

9 mysql>

查看表的创建

语法

1 show create table 表名 \G;

实例

1 mysql> show create tabletest \G;2 *************************** 1. row ***************************

3 Table: test4 Create Table: CREATE TABLE`test` (5 `id` int(11) NOT NULL COMMENT '编号',6 `name` varchar(50) DEFAULT NULL COMMENT '姓名',7 `address` varchar(50) DEFAULT NULL COMMENT '地址',8 `status` int(2) DEFAULT NULL COMMENT '状态',9 `createtime` date DEFAULT NULL COMMENT '创建时间',10 `updatetime` date DEFAULT NULL COMMENT '修改时间',11 PRIMARY KEY(`id`)12 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测试'

13 1 row in set (0.00sec)14

15 ERROR:16 No query specified17

18 mysql>

查看表的状态

语法

1 show table status like from 数据库 [like '模糊查询表名'] \G;

实例

1 mysql> show table status fromdemo \G ;2 *************************** 1. row ***************************

3 Name: test4 Engine: InnoDB5 Version: 10

6 Row_format: Compact7 Rows: 0

8 Avg_row_length: 0

9 Data_length: 16384

10 Max_data_length: 0

11 Index_length: 0

12 Data_free: 0

13 Auto_increment: NULL

14 Create_time: 2019-09-02 17:21:06

15 Update_time: NULL

16 Check_time: NULL

17 Collation: utf8mb4_general_ci18 Checksum: NULL

19 Create_options:20 Comment: 测试21 1 row in set (0.00sec)22

23 ERROR:24 No query specified25

26 mysql>

查看表索引

语法

show index from 表名;

示例

1 mysql> show index from user;2 +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

3 | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |

4 +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

5 | user | 0 | PRIMARY | 1 | Host | A | NULL | NULL | NULL | | BTREE | | |

6 | user | 0 | PRIMARY | 2 | User | A | 3 | NULL | NULL | | BTREE | | |

7 +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

8 2 rows in set (0.00sec)9

10 mysql>

修改表

添加列

1 alter table 表名 add column 新列名 [数据类型] [约束条件] [first | after 已存在的列名];

实例

1 mysql> alter table test add column age int(3) null comment '年龄'after name;2 Query OK, 0 rows affected (0.01sec)3 Records: 0 Duplicates: 0 Warnings: 0

4

5 mysql>

修改列

1 alter table 表名 change column 旧列名 新列名 [新数据类型];

实例

1 mysql> alter table test change column username name varchar(30) not null default 'none' comment '姓名';2 Query OK, 0 rows affected (0.01sec)3 Records: 0 Duplicates: 0 Warnings: 0

4

5 mysql>

删除列

1 alter table 表名 drop 列名;

实例

1 mysql> alter table test dropage;2 Query OK, 0 rows affected (0.01sec)3 Records: 0 Duplicates: 0 Warnings: 0

4

5 mysql>

删除表

语法

1 drop table [if exists] 表名;

实例

1 mysql> drop tabledemo;2 Query OK, 0 rows affected (0.01sec)3

4 mysql>

清空表

语法

1 truncate table 表名;

实例

1 mysql> truncate tabledemo;2 Query OK, 0 rows affected (0.01sec)3

4 mysql>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值