目录
[二: 查看所有表](#二: 查看所有表)
[2.1 语法](#2.1 语法)
[3.1 语法](#3.1 语法)
[3.2 实例](#3.2 实例)
[3.3 表在磁盘上对应的⽂件](#3.3 表在磁盘上对应的⽂件)
[4.1 语法](#4.1 语法)
[4.2 ⽰例](#4.2 ⽰例)
[5.2 ⽰例](#5.2 ⽰例)
[5.2.1 向表中添加⼀列](#5.2.1 向表中添加⼀列)
[5.2.2 修改某列的⻓度](#5.2.2 修改某列的⻓度)
[5.2.3 重命名某列](#5.2.3 重命名某列)
[5.2.4 删除某个字段](#5.2.4 删除某个字段)
[6.2 ⽰例](#6.2 ⽰例)
[6.3 注意事项](#6.3 注意事项)
一:本节⽬标
掌握创建、查看、修改和删除表。
二: 查看所有表
2.1 语法
sqlshow tables;
首先我们先使用我们的数据库java116,由于我库没有创建表 就查询, 所以返回空。
empty set:表示空结果集,表示当前数据库中没有表
三:创建表
3.1 语法
sqlCREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name( field datatype [约束] [comment '注解内容'] [, field datatype [约束] [comment '注解内容']] ... ) [engine 存储引擎] [character set 字符集] [collate 排序规则];
TEMPORARY: 表⽰创建的是⼀个临时表
field:列名
datatype:数据类型
comment:对列的描述或说明(就是注释)
engine:存储引擎,不指定则使⽤默认存储引擎
(和创建库的时候一样,如果创建表的时候指定,则只针对当前表生效)
character set:字符集,不指定则使⽤默认字符集
collate:排序规则,不指定则使⽤默认排序规则
3.2 实例
创建⼀个⽤⼾表,其中包含⽤⼾编号、⽤⼾名、密码、⽣⽇,并指定字符集为utf8mb4,排序规则为utf8mb4_0900_ai_ci。
java-- 创建⼀个⽤⼾表,其中包含⽤⼾编号、⽤⼾名、密码、⽣⽇,并指定字符集为utf8mb4,排序规则为utf8mb4_0900_ai_ci -- 两个横线加空格(-- )注释 # 这个也是注释 /* 这个是多行注释 /
sqlcreate table if not EXISTS users( id bigint comment '用户编号', username VARCHAR(30) COMMENT'用户名', `password` VARCHAR(30) comment '密码', birthday date COMMENT '生日' );
创建成功后 就会出现一个OK的字符
我们在navicat中创建表 ,然后我们在命令中查询表
-- 创建⼀个表并指定存储引擎为MyISAM
sqlcreate table if not EXISTS t_myisam( id bigint , `name` varchar(30) )engine = myISAM;
注意:
还需要注意 其他列都以逗号结尾,最后一列的变量没有逗号。
如果我们创建的变量是关键字,我们就要使用反引号
3.3 表在磁盘上对应的⽂件
创建表后有相应的文件
innodb存储引擎,一个表中对应一个文件
其他就是myisan存储引擎对应的三个文件:MYD中my就代表my D就代表数据
四:查看表结构
4.1 语法
sqldesc 表名;
4.2 ⽰例
Field:表中的列名
Type:列的数据类型
Null:该列的值是否允许为Null
Key:该列的索引类型
Default:该列的默认值
Extra:扩展信息
五:修改表
在项⽬的实际开发中,随着版本的迭代和需求的变更,经常会对表结构进⾏调整,⽐如向现有表中添加列,删除列,或者修改某列的列名、数据类型或⻓度,这时就需要对表进⾏修改操作
5.1语法
sqlALTER TABLE tbl_name [alter_option [, alter_option] ...]; alter_option: { table_options | ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name](新增列加到表第一列 | 加到哪一列之后就是 after+列明) | MODIFY [COLUMN] col_name (列名) column_definition(数据类型) [FIRST | AFTER col_name]修改列的位置 | DROP [COLUMN] col_name | RENAME COLUMN old_col_name TO new_col_name | RENAME [TO | AS] new_tbl_name tbl_name:要修改的表名 ADD:向表中添加列 MODIFY:修改表中现有的列 DROP:删除表中现有的列 RENAME COLUMN:重命名表中现有的列 RENAME [TO | AS] new_tbl_name:重命名当前的表 修改类型至少有一个,多个修改逗号隔开。
5.2 ⽰例
5.2.1 向表中添加⼀列
sql`-- 向表中末尾加入一列` `alter table users add assets VARCHAR(100) comment '头像地址' after birthday;`
运行展示:
执行以下命令行
在navicat中展示:
5.2.2 修改某列的⻓度
alter table users MODIFY assets VARCHAR(200);
这样子就很直观的看到修改长度的变化:
5.2.3 重命名某列
sql-- 重命名某列 alter table users rename COLUMN id to idname;
运行前后我们看一下命令:
5.2.4 删除某个字段
sql-- 删除列 alter table users DROP idname;
前后对比
5.2.5修改表名
sql-- 修改表名 alter table users rename user1;
前后查询对比
六:删除表
6.1语法
sqlDROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... TEMPORARY:表⽰临时表 tbl_name:将要删除的表名
数据库删除中所有删除操作都是危险操作,在以后工作中就把删除忘记 !!!
6.2 ⽰例
要使用反引号把表引起来
我们查看以下表:就没有t_myisam
6.3 注意事项
删除表是⼀个危险操作,执⾏删除语句时⼀定要谨慎
删除表成功后,磁盘上对应的数据⽂件也会被删除
⼀次可以删除多个表,表与表之间⽤逗号隔开