设为首页 收藏本站
查看: 967|回复: 0

[经验分享] mysql之DDL操作--数据表

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-8-15 10:50:19 | 显示全部楼层 |阅读模式
我们创建好了数据库以后,就可以创建相应的数据表,那么创建表也是属于DDL数据定义层面,接下来我们来学习一下。

1、创建数据表
创建指令:create table tb_name [表选项]
我们发现指令与数据库的创建指令是相同的,没什么大的区别。
PS:当然我们创建表之前,首先先选择相应的数据库。

接下来我们创建一张学生信息表
create table student_studentinfo(
id int,
name varchar(5),
class_id int);

关于列类型以及列约束即列属性会在后面说到。
wKioL1evAjnCMmbdAAAT2Mp8mpA229.jpg
这里有几个要注意的地方:我们在创建数据表时是选择了相应的数据库的,使用的指令是:

use db_name
同时,在创建数据表时,我们在业务逻辑上设置表的前缀,一般在成熟的项目里都有前缀,为什么要设置前缀呢?主要有以下几个因素
A、当我们只有一个数据库时,如果一个数据库里有多个项目,为了防止数据表的管理混乱,一般我们都要设置前缀以便识别和管理。
B、当数据表非常多的时候,使用前缀得于快速检索,如一个数据库里有多个项目,如有学生信息系统,学生考试系统,教师管理系统,那么通过前缀就可以快速的检索到数据表。
数据表名的规则也是要遵循标识符的规则,这里不再多说。
那么我们再创建数据表,如果没有选择数据库,我们可以这样创建:
create table db_name.tb_name
wKiom1evA_uD1bBBAAALl85aLrU514.jpg

我们上次说到创建数据库时会在data目录 下自动生动以数据库名命名的目录,那么我们在创建数据表的时候也会自动一些文件。

wKioL1evBHmB_cl_AACPRXoSPE4742.jpg
我们发现教师信息表生成了两个后缀名.frm .ibd的文件,其实这两个文件是数据表的结构以及索引和数据的存储文件,这是innodb存储引擎默认生成的文件,那么如果是myisam的话则会生成三个文件。
wKiom1evBnaAMbssAAAiCX-8AWo048.jpg


2、查看数据表 查看创建的数据表信息以及表的结构
指令:show tables;  show create table tb_name;describle tb_name

show tables  是查看当前数据库下有哪些数据表,和查看库一样。
show create table tb_name 则是查看数据表的相关创建信息
describle tb_name 也支持简写 desc tb_name
wKiom1evEC3jsKoOAAAdjlIV4As698.jpg
同理,我们查看数据表时也支持show tables like 指令


这里就不测试了哈。

3、删除数据表
针对不想要的表我们可以删除,和删除数据库的方法是一样的
删除指令:drop table tb_name 或是drop table if exists tb_name
wKioL1evEPmi45tvAAAUSVH4yFA728.jpg

4、数据表的更新操作
A、可以更新表名
rename table old_tbname to new_tbname
同时该指令也支持跨数据库命名
wKiom1evEZeQXH6cAAARydUgYqk058.jpg
wKioL1evEl_hdkKMAAAdTKkRb5U227.jpg
所以利用这个功能我们可以完成数据库的复制和重命名功能。
1、首先我们先创建一个数据库
2、利用rename指令将要复制的数据库里的所有表全部复制到新的数据库里
复制多张表可以这样:rename table tb_name1 to db_name.tb_name,tb_name2 to db_name.tb_name2 ...
通过这两步就可以完成数据库的复制了。

B、可以更新表的结构
更新表的结构主要有添加新的列定义

修改列定义
重命名列定义
删除列定义
alter table tb_name add 列定义
             modify 列名  列定义
             change 列名  新列名 列定义
             drop 列名
wKiom1evE8rR7ME0AAAkVV9vmsk778.jpg
重命名一个列
wKioL1evFBKTpt3EAAAcHShatyQ762.jpg
更新一个列
wKioL1evFFmDUwPBAAAqExZEOag991.jpg
关于列的删除就非常简单了,在这里就没演示怎么操作了。

C、可以更新表的选项信息
更新表的字符编码或是存储引擎
alter table tb_name character set 编码
alter table tb_name engine 存储引擎
wKioL1evFQry-M_HAAALqvY0TjA068.jpg
wKioL1evFauSnd5cAAAXt_T4cK0182.jpg

最后是数据表的删除操作了,通过前面的知识我们已经知道怎么删除数据库了,所以删除表和删除数据库是一样的道理。这里不演示了。

一般来说,数据表删除后是不可以恢复的,最好慎用drop命令。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-258076-1-1.html 上篇帖子: MySQL 5.5主从复制实践 下篇帖子: Linux+MySQL运维的基础命令 数据表 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表