SQL表(字段)操作

目标:掌握数据库和字段的相关操作指令,熟练运用这些指令完成数据表的增删改查

  • 创建数据表

  • 显示数据库

  • 查看表结构

  • 更改数据表

  • 更改字段

  • 删除数据表

1、创建数据表

目标:了解数据表创建语法,掌握创建规则

概念

**创建数据表:**根据业务需求,确定数据表的字段信息,然后创建表结构

  • 表与字段不分家,相辅相成

  • 表的创建需要制定存储的数据库

    • 明确指定数据库:数据库、表名

    • 先使用数据库:use 数据库名字

  • 字段至少需要指定名字、类型

  • 数据库表不限定字段数量

    • 每个字段间使用逗号,分隔

    • 最后一个字段不需要逗号

  • 表可以指定表选项(都有默认值)

    • 存储引擎:engine[=]具体存储引擎

    • 字符集:[default]charset 具体字符集(继承数据库)

    • 校对集:collate(继承数据库)

  • 表创建语法

sql 复制代码
create table [数据库名.]表名(
    字段名 字段类型,
    ...
    字段名 字段类型
)表选项;

演示

1、创建简单数据表(指定数据库创建数据表)

sql 复制代码
create table db_2.t_1(
    name varchar(50)
);

2、创建数据表一一多字段

sql 复制代码
#使用数据库(进入数据库环境)
use db_2;
create table t_2(
    name varchar(50),
    age int,
    gender varchar(10)
);

演示

3、创建数据表一一表选项

sql 复制代码
create table t_3(
    name varchar(50)
)engine Innodb charset utf8MB4;

演示

小结

1、创建数据库表是为了存储具体数据

2、数据表的创建与字段是同时存在的

3、数据表的创建需要指定数据库

  • 在表名字前指定数据库:数据库名.表名

  • 进入数据库环境(常用)

4、一张数据表用来存一组相关数据

5、扩展:存储引擎是指数据存储和管理的方式,MySQL中提供了多种存储引擎,一般使用默认存储引擎

  • lnnoDB

    • 默认存储引擎

    • 支持事务处理和外键

    • 数据统一管理

  • Mylsam

    • 不支持事务和外键

    • 数据、表结构、索引独立管理

    • MySQL5.6以后不再维护

6、扩展:如果想创建一个与已有表一样的数据表,MySQL提供了一种便捷的复制模式

  • create table 表名 like 数据库名字.表名

2、显示数据表

目的:了解如何查看和数据表结构

概念

显示数据表:客户端通过指令显示已有的数据表

  • 数据表的显示跟用户权限有关

  • 显示数据表有梁总方式

    • 显示所有数据表

    • 显示具体数据表的创建指令

演示

1、显示所有数据表一一当前数据库下

sql 复制代码
show tables;

结果

2、显示所有数据表一一指定数据库

sql 复制代码
show tables from tb_3;

结果

3、显示部分关联数据表------匹配

sql 复制代码
show tables like '%like';   #_表示匹配一个字符(固定位置),%表示匹配n个字符

结果

4、显示数据表的创建指令

sql 复制代码
show create table t_1;  #看到的结果未必一定是真实创建的指令(系统会加工)

结果

小结

1、显示数据表有两种形式

  • 显示所有的数据表:show tables [from 指定数据库];

    • 显示部分:show tables like 'pattern';匹配模式:_匹配单个字符,%匹配不限量字符
  • 显示数据表创建指令:show create table 表名;

2、显示数据表通常是为了验证数据表是否存在或者验证数据表的创建指令是否正确

3、在显示数据的时候可以使用不同的语句结束符

  • \g:与普通分号无区别

  • \G:纵向显示列数据

3、查看数据表

目标:了解查看数据表的概念和掌握数据表查看的语法
概念

**查看数据表:**指查看数据表中的具体结构

  • 通常是查看字段信息

  • 详细的显示字段的各项信息

  • 查看语法有三种(效果一样)

sql 复制代码
desc 表名;
describe 表名;
show columns from 表名;

演示

sql 复制代码
desc t_1;

结果

小结

1、数据表的查看是为了查看表中具体字段的信息

2、查看数据表的指令有多个,效果都一样

  • desc表名;(常用)

  • describe 表名;

  • show columns from 表名;

3、查看表结构的原因通常是在开发过程中为了更清晰的了解数据的存储形式和要求

4、更改数据表

目标:了解数据表的修改内容以及修改语法

概念

**更改数据表:**修改表名字和表选项

  • 修改表名:rename tab1e 表名 to 新表名

  • 修改表选项:alter table 表名

演示

1、修改表名

sql 复制代码
rename table t_1 to t1;

结果

2、修改表选项

sql 复制代码
alter table t1 charset utf8;

结果

小结

1、更改数据表分为两个部分

  • 更改表名:rename table 原表名 to 新表名

  • 更改表选项:alter table 表名 表选项

2、通常我们较少使用更改数据表,数据表应该在创建时就定义好

5、更改字段

目标:了解字段更改的类型和基本语法的使用
概念

**更改字段:**指针对表创建好后,里面字段的增删改

  • 字段操作包含字段名字、类型和属性的操作

  • 字段操作分为四类

    • 新增字段:add [column]

    • 更改字段名:change0

    • 修改类型:modify0

    • 删除字段:drop。

  • 字段操作还有位置处理

  • 字段操作通常是在表已经存在数据后进行

5.1、新增字段

目标:了解字段新增的语法
概念

**新增字段:**在表创建好后往里面增加其他字段

  • 字段的新增必须同时存在字段类型

  • 新增语法

sql 复制代码
alter tab1e 表名 add[column]字段名 字段类型 [字段属性] [字段位置]

演示

1、给已经存在的t_3表增加一个字段age

sql 复制代码
alter table t_3 add age int;

结果

2、给已经存在的t_3表增加一个字段nickname

sql 复制代码
alter table t_3 add column nickname varchar(10);

结果

小结

1、新增字段就是给已有表追加一个字段(较少)

2、字段新增必须指定字段类型

3、字段新增语法为:alter table 表名 add [column]字段名 字段类型;

4、字段的追加默认是在所有字段之后

5.2、字段位置

目标:了解字段位置的概念,掌握字段位置的使用
概念

  • 字段位置:指字段放到某个指定字段之后

    • 字段位置分为两种

    • 第一个字段:first

  • 某个字段后:after 已经存在字段名。字段位置适用于追加字段、修改字段、更改字段名

  • 字段位置语法

sql 复制代码
alter table 表名 字段操作 字段位置;

演示

1、为t_3表增加一个id字段,放到最前面

sql 复制代码
alter table t_3 add id int first;

结果

2、在t_3表name字段后增加一个身份证字段card

sql 复制代码
alter table t_3 add card varchar(18) after name;

结果

小结

1、字段位置是配合字段操作的(新增、修改)

2、字段位置分两种

  • 最前面(第一个字段):first

  • 字段后面:after 已存在字段名

5.3、更改字段名

目标:了解更改字段名的基本语法
概念

**更改字段名:**指对已经存在的字段名进行修改

  • 字段名的修改也必须跟上字段类型

  • 字段名修改语法

sql 复制代码
alter table 表名 change 原字段名 新字段名 字段类型 [字段属性] [位置]

演示

修改字段名card为sfz

sql 复制代码
alter table t_3 change card sfz varchar(18);

结果

小结

1、字段名更改通常只是修改字段名字,但是也必须跟随类型

2、字段名修改语法:alter table 表名 change 原字段名 新字段名 字段类型

3、字段名修改change其实也可以修改字段类型、属性和位置,但是通常不使用(专人专事)

5.4、修改字段

目标:了解字段修改的概念和基本语法,掌握字段修改的实现
概念

**修改字段:**指修改字段的相关信息

  • 修改字段类型、字段属性和位置

  • 修改字段语法

sql 复制代码
alter table 表名 modify 字段名 字段类型 [字段属性] [位置];

演示

修改身份证的类型为char(18)并且位置放到id后面

sql 复制代码
alter table t_3 modify sfz char(18) after id;

结果

小结 1、修改字段包含多个操作

  • 字段类型修改

  • 字段属性修改

  • 字段位置修改

2、修改字段语法:alter table 表名 odify 字段名 字段类型 [字段属性] [位置];

6、删除字段

目标:了解字段删除语法
概念

**删除字段:**即将某个不要的字段从表中剔除

  • 删除字段会将数据也删除(不可逆)

  • 删除字段语法

sql 复制代码
alter table 表名 drop 字段名;

演示

删除年龄字段

sql 复制代码
alter table t_3 drop age;

结果

小结

1、字段删除在删除字段名的同时会删除字段对应的数据,而且不可逆

2、字段删除语法:alter table 表名 drop 字段名

7、总结

1、数据表结构的操作是数据操作的基础 2、一般情况下新手都不会接触数据表的设计,但是作为一名新手一定要在使用数据表之前查看数据表的结构信息

3、不要轻易的修改或者删除数据表结构(数据会一并被处理掉) 4、数据表结构的维护通常是一次性的,在业务开展前尽可能好的设计好数据表,而不要后期再进行其他维护

相关推荐
Azoner7 分钟前
postgresql安装部署(linux)
数据库·postgresql
PyAIGCMaster31 分钟前
文本模式下成功。ubuntu P104成功。
服务器·数据库·ubuntu
drebander44 分钟前
MySQL 查询优化案例分享
数据库·mysql
初晴~1 小时前
【Redis分布式锁】高并发场景下秒杀业务的实现思路(集群模式)
java·数据库·redis·分布式·后端·spring·
盖世英雄酱581361 小时前
InnoDB 的页分裂和页合并
数据库·后端
YashanDB3 小时前
【YashanDB知识库】XMLAGG方法的兼容
数据库·yashandb·崖山数据库
独行soc3 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍11基于XML的SQL注入(XML-Based SQL Injection)
数据库·安全·web安全·漏洞挖掘·sql注入·hw·xml注入
风间琉璃""4 小时前
bugkctf 渗透测试1超详细版
数据库·web安全·网络安全·渗透测试·内网·安全工具
drebander4 小时前
SQL 实战-巧用 CASE WHEN 实现条件分组与统计
大数据·数据库·sql
IvorySQL4 小时前
IvorySQL 4.0 发布:全面支持 PostgreSQL 17
数据库·postgresql·开源数据库·国产数据库·ivorysql