欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL学习——有关表的操作语句

程序员文章站 2022-05-18 12:13:10
MySQL学习——有关表的操作语句 摘要:本文主要学习了使用DDL语句对表进行操作的方法。 创建表 语法 表定义选项 用来创建定义表的结构,由列名(col_name)、列的定义(column_definition)以及可能的空值说明、完整性约束或表索引组成。 实例 查看表结构 语法 实例 说明 Nu ......

mysql学习——有关表的操作语句

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

创建表

语法

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

表定义选项

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

实例

1 create table test (
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='测试';

查看表结构

语法

1 describe 表名;

实例

 1 mysql> describe 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.00 sec)
13 
14 mysql> 

说明

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.00 sec)
8 
9 mysql> 

查看表的创建

语法

1 show create table 表名 \g;

实例

 1 mysql> show create table test \g;
 2 *************************** 1. row ***************************
 3        table: test
 4 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.00 sec)
14 
15 error: 
16 no query specified
17 
18 mysql> 

查看表的状态

语法

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

实例

 1 mysql> show table status from demo \g ;
 2 *************************** 1. row ***************************
 3            name: test
 4          engine: innodb
 5         version: 10
 6      row_format: compact
 7            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_ci
18        checksum: null
19  create_options: 
20         comment: 测试
21 1 row in set (0.00 sec)
22 
23 error: 
24 no query specified
25 
26 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.01 sec)
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.01 sec)
3 records: 0  duplicates: 0  warnings: 0
4 
5 mysql> 

删除字段

1 alter table 表名 drop 字段名;

实例

1 mysql> alter table test drop age;
2 query ok, 0 rows affected (0.01 sec)
3 records: 0  duplicates: 0  warnings: 0
4 
5 mysql> 

删除表

语法

1 drop table [if exists] 表名;

实例

1 mysql> drop table demo;
2 query ok, 0 rows affected (0.01 sec)
3 
4 mysql>