mysql之DDL操作--数据表

我们创建好了数据库以后,就可以创建相应的数据表,那么创建表也是属于DDL数据定义层面,接下来我们来学习一下。

1、创建数据表

创建指令:create table tb_name [表选项]

我们发现指令与数据库的创建指令是相同的,没什么大的区别。

PS:当然我们创建表之前,首先先选择相应的数据库。

接下来我们创建一张学生信息表

create table student_studentinfo(

id int,

name varchar(5),

class_id int);

关于列类型以及列约束即列属性会在后面说到。

这里有几个要注意的地方:我们在创建数据表时是选择了相应的数据库的,使用的指令是:

use db_name

同时,在创建数据表时,我们在业务逻辑上设置表的前缀,一般在成熟的项目里都有前缀,为什么要设置前缀呢?主要有以下几个因素

A、当我们只有一个数据库时,如果一个数据库里有多个项目,为了防止数据表的管理混乱,一般我们都要设置前缀以便识别和管理。

B、当数据表非常多的时候,使用前缀得于快速检索,如一个数据库里有多个项目,如有学生信息系统,学生考试系统,教师管理系统,那么通过前缀就可以快速的检索到数据表。

数据表名的规则也是要遵循标识符的规则,这里不再多说。

那么我们再创建数据表,如果没有选择数据库,我们可以这样创建:

create table db_name.tb_name

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

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

2、查看数据表 查看创建的数据表信息以及表的结构

指令:show tables;  show create table tb_name;describle tb_name

show tables  是查看当前数据库下有哪些数据表,和查看库一样。

show create table tb_name 则是查看数据表的相关创建信息

describle tb_name 也支持简写 desc tb_name

同理,我们查看数据表时也支持show tables like 指令

这里就不测试了哈。

3、删除数据表

针对不想要的表我们可以删除,和删除数据库的方法是一样的

删除指令:drop table tb_name 或是drop table if exists tb_name

4、数据表的更新操作

A、可以更新表名

rename table old_tbname to new_tbname

同时该指令也支持跨数据库命名

所以利用这个功能我们可以完成数据库的复制和重命名功能。

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 列名

重命名一个列

更新一个列

关于列的删除就非常简单了,在这里就没演示怎么操作了。

C、可以更新表的选项信息

更新表的字符编码或是存储引擎

alter table tb_name character set 编码

alter table tb_name engine 存储引擎

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

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

时间: 2024-12-24 10:09:19

mysql之DDL操作--数据表的相关文章

MySQL中快速复制数据表方法汇总

本文将着重介绍两个MySQL命令的组合,它将以原有数据表为基础,创建相同结构和数据的新数据表. 这可以帮助你在开发过程中快速的复制表格作为测试数据,而不必冒险直接操作正在运行 的数据表. 示例如下: 将 production 数据库中的 mytbl 表快速复制为 mytbl_new,2个命令如下: CREATE TABLE mytbl_new LIKE production.mytbl; INSERT mytbl_new SELECT * FROM production.mytbl; 第一个命令

mysql更改已有数据表的字符集,保留原有数据内容

mysql更改已有数据表的字符集,保留原有数据内容     原文网址:http://blog.csdn.net/learn_2/article/details/6460370 环境:在应用开始阶段没有正确的设置字符集,在运行一段时间以后才发现存在不能满足需求需要调整,又不想丢弃这段时间的数据,那么就需要进行字符集的修改.字符集的修改不能直接通过"alter database character set *** " 或者 "alter table tablename chara

MySQL基础学习之数据表

查看数据表 SHOW TABLE; 查看数据表详细结构 SHOW CREATE TABLE 表名\G; 创建数据表 CREATE TABLE 表名(数据名 类型,数据名1  类型2); CREATE TABLE department ( d_id INT(10) , d_name VARCHAR(20) , function VARCHAR(20) , address VARCHAR(30) ); 删除数据表 DROP TABLE 表名; 修改数据表 修改数据表名        ALTER TA

批量删除mysql一个库所有数据表方法

批量删除mysql一个库所有数据表方法 删除表的命令 drop table 表名; 如果有100张表,手工执行100次,想想就崩溃. 下面提供一个使用information_schema库的方案来批量删除数据表:SELECT CONCAT('drop table ',table_name,';') FROM information_schema.`TABLES` WHERE table_schema='数据库名'; 如通过这条命令来得到drop table 表名;这样的语句,然后批量执行.mys

MySQL DDL操作--------指定表数据文件存放目录最佳实战

1. 背景 * 在MYSQL中建立一张数据表,在其数据目录对应的数据库目录下都有对应表的.frm文件,.frm文件是用来保存每个数据表的元数据(meta)信息,包括表结构的定义等,.frm文件跟数据库存储引擎无关,也就是任何存储引擎的数据表都必须有.frm文件,命名方式为数据表名.frm,如user.frm. .frm文件可以用来在数据库崩溃时恢复表结构. * MySQL文件包括MySQL所建数据库文件和MySQL所用引擎创建的数据库文件. * .frm 文件与操作系统和数据库引擎无关,都有这么

Mysql入门到精通之数据表的操作

修改表 ALTER TABLE tb_name; 1.添加字段 ALTER TABLE tb_name ADD 字段名字 字段类型 约束条件 [FIRST/AFTER 字段名称] 1>添加用户名字段 ALTER TABLE test ADD username VARCHAR(20); 2>将字段test添加到表中第一个字段 ALTER TABLE test ADD test VARCHAR(20) FIRST; 3>在id之后添加年龄字段 ALTER TABLE test ADD age

mysql在线ddl操作

mysql5.6开始支持在线ddl,在线ddl能够提供下面的好处: 1提高生产环境的可用性2在ddl执行期间,获得性能和并发性的平衡,可以指定LOCK从句与algorithm从句,lock=exclusize会阻塞整个表的访问,lock=shared会允许查询但不允许dml,lock=none允许查询和dml操作,lock=default或是没有指定,mysql使用最低级别的锁,algorithm指定是拷贝表还是不拷贝表直接内部操作,3只对需要的地方做改变,不是创建一个新的临时表. 之前ddl操

mysql之DDL操作--数据库

SQL是操作关系数据库非常重要的一门编程语言 structure query language既然是语言自然可以编程,SQL的分类可依据操作对象的不同分为DDL,DML,DCL. 我们操作数据库如创建,添加,更新,删除操作,如操作表等都是属于定义范围. 所以DDL则是SQL定义语言. 我们要用数据库来存储数据,自然是先有库,再有表,然后再数据,所以我们要先定义库,定义表. 1.创建数据库 create database db_name [数据库选项] 一般情况下选项可以不填写 如我们创建一个学生

mysql中数据库与数据表编码格式的查看、创建及修改

一.查看数据库编码格式 ? 1 mysql> show variables like 'character_set_database'; 二.查看数据表的编码格式 ? 1 mysql> show create table <表名>; 三.创建数据库时指定数据库的字符集 ? 1 mysql>create database <数据库名> character set utf8; 四.创建数据表时指定数据表的编码格式 ? 1 2 3 4 5 create table tb