SQL基本操作 - 新增、查看、修改、删除数据表

时间:2022-04-16 20:14:42

1. 新增数据表

create table [if not exists] 表名(
字段名字 数据类型,
字段名字 数据类型 -- 最后一行不需要逗号
)[表选项];

if not exists: 如果表名不存在,就创建,否则不执行创建代码。 表选项:控制表的表现     字符集:charset/character set 具体字符集; -- 保证表中数据存储的字符集     校对集合:collate 具体校对集;     存储引擎:engine 具体的存储引擎(innodb和myisam)

-- 创建表
create table if not exists t_student(
name varchar(10),
age int
)charset utf8;

SQL基本操作 - 新增、查看、修改、删除数据表


任何一个表的设计都必须指定数据库。

方案1:显式的指定表所属的数据库 create table 数据库名.表名(); -- 将当前数据表创建到指定的数据库下 SQL基本操作 - 新增、查看、修改、删除数据表


方案2:隐式的指定表所属数据库。先进入到某个数据库环境,然后这样创建的表自动归属到 某个指定的数据库。 进入数据库环境:use 数据库名字;

SQL基本操作 - 新增、查看、修改、删除数据表


当创建数据表的SQL指令执行之后,到底发生了什么? 1. 指定数据库下已经存在对应的表; 2. 在数据库对应的文件夹下,会产生对应表的结构文件(跟存储引擎有关系)

SQL基本操作 - 新增、查看、修改、删除数据表



2. 查看数据表


数据库能查看的方式,表都可以查看。

2.1 查看所有表:show tables;

SQL基本操作 - 新增、查看、修改、删除数据表

2.2 查看部分表,模糊匹配 show tables like 'pattern'; SQL基本操作 - 新增、查看、修改、删除数据表


2.3 查看表的创建语句 show create table 表名;

-- 查看表的创建语句
show create table t_student;
show create table t_student\g -- \g 等价于 ;
show create table t_student\G -- \G 将查到的结构旋转90度,变成纵向

SQL基本操作 - 新增、查看、修改、删除数据表


SQL基本操作 - 新增、查看、修改、删除数据表


2.4 查看表的结构:查看表中的字段信息 desc 表名/describe 表名/show columns from 表名;

desc t_student;
describe t_student;
show columns from t_student;

SQL基本操作 - 新增、查看、修改、删除数据表



3. 修改数据表

表本身存在,还包含字段。表的修改分为两个部分:修改表本身和修改字段   3.1 修改表本身 表本身可以修改 表名 和 表选项
3.1.1 修改表名 rename table 旧表名 to 新表名;
-- 重命名表:t_student ==> t_stu
rename table t_student to t_stu;

3.1.2 修改表选项修改字符集,校对集和存储引擎alter table 表名 表选项 [=] 值;
-- 修改表选项:字符集
alter table t_stu charset = GBK;

3.2 修改字段
字段操作很多:新增、修改、重名、删除
3.2.1 新增字段alter table 表名 add [column] 字段名 数据类型 [列属性][位置];位置:字段名可以存放到表中的任意位置First: 第一个位置After: 在哪个字段之后:after 字段名;默认是在最后一个字段之后
-- 给学生表增加ID放到第一个位置
alter table t_stu add column id int first;

3.2.2 修改字段修改通常是修改属性或者数据类型alter table 表名 modify 字段名 数据类型 [属性][位置];
-- 将学生表中的number学号字段变成固定长度,且放到第二位(id之后)
alter table t_stu modify number char(10) after id;

3.2.3 重命名字段
alter table change 旧字段 新字段名 数据类型 [属性][位置];
-- 修改学生表中的gender字段为sex
alter table t_stu change gender sex varchar(10);

3.2.4 删除字段alter table 表名 drop 字段名;
-- 删除学生表中的年龄字段(age)
alter table t_stu drop age;

如果表中已经存在数据,那么删除字段会清空该字段的所有数据(不可逆)



4. 删除数据表
drop table 表名1, 表名2...; -- 可以一次性删除多张表
当删除数据表的指令执行之后发生了什么?1. 在表空间中,没有了指定的表(数据也没有了)2. 在数据库对应的文件夹下,表对应的文件(与存储引擎有关)也会被删除
注意:删除有危险,操作需谨慎!(不可逆)