mysql 博客建表语句,MySQL基础学习之大战表操作

2d63e16e71ee834dabf59d102e6b1a14.png

点击上方「蓝字」关注"程序员Bob"

每天与你不见不散!

593642bb5714fa0a4bd39f10d5332394.gif

每日一句,送给最珍贵的你:

生命中真正重要的不是你遭遇了什么,而是你记住了哪些事,又是如何铭记的。

上次小编聊了关于MySQL的库操作,不知小伙伴是否还记得,如果想要熟练掌握,还是自己得多多上机实操啦。传送门:

小编将上次SQL的基本操作根据操作对象分为了三类,即:库操作;表操作(字段);数据操作。

聊完库操作,小编就可以开始表操作啦~

48c98697942d64126872738de1a6fc3b.gif

表操作

数据表:DataTable 是一个临时保存数据的网格虚拟表(表示内存中数据的一个表)。且表与字段是密不可分的。

对于表操作,小编这里也是将其分为对数据表的增删改查。

新增数据表

在对数据表进行操作之前,我们得先新建一个数据表,既然是表,我们就得将表分配在数据库中。在命令行窗口中,新建表的大致思路便是先选定所需数据库(必须先选定数据库),然后新建数据表。

新建数据表大致语句如下:

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

新建表语句说明:

1.if not exists:如果表名不存在,那么就创建,否则不执行创建代码,即为检查功能。

2.表选项:控制表的表现形式

字符集:

charset/character set 具体字符集:-- 保证表中数据存储的字符集;

校对集:

collate 具体校对集;

存储引擎:

engine 具体的存储引擎(innodb和myisam);

不知

大家有没有发现上面的新建数据表语句其实有一个问题,即前面所说的没有指定数据库,那么我们该如何指定数据库呢,小编这里提供两种解决方案:

1.显示的指定表所属的数据库:

create table 数据库.表名();即将当前数据表创建到指定的数据库下。

语句如下:

create table if not exists mydatabase.student(-- 显示的将表放到mydatabase数据库下)name varchar(10);gender varchar(10);number varchar(10);age int);charset utf8;

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

相关语句执行如下:

#进入数据库环境:use 数据库名字;-- 进入数据库->创建数据表use madatabase;    #分开执行create table class(    #创建表name varchar(10);)charset utf8;

那么当我们创建数据表的SQL语句被执行之后,会发生些啥呢?

指定数据库下已经存在对应的表。

在数据库对应的文件夹下,会产生对应表的结构文件(跟存储引擎有关系) To:.frm为结构文件(编译文件(可逆文件),需要反编译才能看)。

查看数据表

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

查看所有表语句:show tables;

查看部分表,模糊匹配语句为:show tables like 'pattem';  如:show tables like '%s';(不推荐,效率低)

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

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

相关语句执行如下:

-- 查看所有表show tables;   -- (先使用use进入数据库再执行语句)

执行如下:

19fffcab5ea7197136030e3eb5f637a8.png

相关语句执行如下:

-- 查看以s结尾的表-- (先使用use进入数据库再执行语句)show tables like '%s'; #效率低

执行如下:

bcc842d70d6fd5873bf3b41e63f3139d.png

相关语句执行如下:

-- 查看表创建语句show create table student\g -- \g==;show create table student\G    -- 将查到的结构旋转90度变成纵向,有时候看起来舒服一点

执行如下:

2a30f647f773dd1d21b2fbf6d3d411bf.png

相关语句执行如下:

#查看表结构desc tables;

执行如下:

65d031fde4f03a9acf597417a7c40425.png

修改数据表

表本身存在,还包含字段,表的修改分为两个部分:修改本身和修改字段。

修改表本身,表本身可以被修改,即修改表名和表选项。

修改表名语句:rename  table 老表名 to 新表名;

修改表选项分为:字符集,校对集和存储引擎。语句为:Alter table 表名 表选项 [=] 值;

修改字段,关于字段操作很多:新增,修改,重名,删除。

1.新增字段语句:Alter table 表名 add[column(可有可无)] 字段名 数据类型 [列属性] [位置];    位置:字段名可以存放在表中的任意位置    First:第一个位置;After:在哪个字段之后:after 字段名;默认是在最后一个字段之后。

相关语句执行如下:

-- 重命名表->my_student(取数据库名字前两个字母)rename table student to my_student-- 修改表选项:字符集alter table my_student charset=GBK;-- 给学生表增加ID放到第一个位置alter table my_studentadd column id intfirst; -- mysql自动寻找分号:作为结束符

2.修改字段语句(修改通常是修改属性或者数据类型):alter table 表名 modify 字段名 数据类型 [属性] [位置] ;

相关语句执行如下:

-- 将学生表中的number学号字段变成固定长度,且放到第二位(id之后)alter table my_studentmodify number char(10) after id;

执行如下:

554913a6e3f9cad6b281a54c695b1376.png

3.重命名字段语句:alter table 表名 change 旧字段 新字段名 数据类型 [属性] [位置];

相关语句执行如下:

-- 修改学生表中的gender字段为sexalter table my_studentchange gender sex varchar(10);

执行如下:

a03338fded098c8fa2ed21df9081f3e6.png

4.删除字段语句:alter table 表名 drop 字段名;

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

相关语句执行如下:

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

执行如下:

833e84d43da0b109bc3e39700841b6dd.png

85d8db58ad4bf4d8b743c07d79972905.png

往期推荐:

为你,千千万万遍.

关注程序员Bob公众号,与你一起终生学习

一键三连,就差你了

704778ebcab3eabe1308642dc26165ea.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值