MySQL数据库表结构的操作(第三章)

1.创建和查看数据库表

数据库表

  • 数据表:是数据库最重要的组成部分之一,是其他对象的基础。如下图就是一个数据库中的数据表:

《MySQL数据库表结构的操作(第三章)》

创建数据库表

《MySQL数据库表结构的操作(第三章)》

创建数据表的语句为 CREATE TABLE*
CREATE TABLE<表名>
(
列名1 数据类型[列级别约束条件][默认值],
列名2 数据类型[列级别约束条件][默认值],

[表级别约束条件]
);
上述创建表的语句中[]表示不是必须要写的,需要时才添加这些条件和默认值,下面以图书管理系统为例。
首先创建一个数据库:

//创建数据库
create database book;
//使用book数据库
use book;

使用cmd命令登录到MySQL之后,输入如下命令:
《MySQL数据库表结构的操作(第三章)》

接着,创建一个名为reader的表:

create table reader(
	card_id char(18),
	name varchar(10),
	sex enum('男','女'),
	age tinyint,
	tel char(11),
	balance decimal(7,3)
);

《MySQL数据库表结构的操作(第三章)》

查看数据库表(1)

查看数据库表基本结构:

  • SHOW TABLES [FROM 数据库名]
  • DESCRIBE <表名>/DESC <表名>
  • SHOW COLUMNS FROM <表名>
    中括号“[]”是可选项,如果查看当前数据库中的表,可省略。
    演示以下语句查看数据库中的表:
show tables from book;

《MySQL数据库表结构的操作(第三章)》
如果当前操作位置为book,则可以使用:

 show tables;

《MySQL数据库表结构的操作(第三章)》
都可以查找到book数据库中创建的表。
下面演示查看表结构:

describe reader;
desc reader;
show columns from reader;

《MySQL数据库表结构的操作(第三章)》
《MySQL数据库表结构的操作(第三章)》

show create table reader;

执行结果:
《MySQL数据库表结构的操作(第三章)》

2.修改数据库表

《MySQL数据库表结构的操作(第三章)》
在reader表中添加一列email:

alter table reader add email varchar(30);

执行结果如下:
《MySQL数据库表结构的操作(第三章)》
上面的语句只能在末尾追加列。要想在特定的列后面追加列,则使用以下语句:

alter table reader add email2 varchar(30) after tel;

执行结果:
《MySQL数据库表结构的操作(第三章)》
《MySQL数据库表结构的操作(第三章)》
例如将列email2修改为email_bak:

alter table reader change email2 email_bak varchar(30);

执行结果:
《MySQL数据库表结构的操作(第三章)》
《MySQL数据库表结构的操作(第三章)》
将列email的长度修改为varchar(25):

 alter table reader modify email varchar(25);

执行结果:
《MySQL数据库表结构的操作(第三章)》
《MySQL数据库表结构的操作(第三章)》
把余额balance放到最后:

alter table reader modify balance decimal(7,3) after email;

执行结果:
《MySQL数据库表结构的操作(第三章)》
《MySQL数据库表结构的操作(第三章)》
删除列email_bak:

alter table reader drop email_bak;

执行结果:
《MySQL数据库表结构的操作(第三章)》
《MySQL数据库表结构的操作(第三章)》
将book数据库中的reader表表名称reader改为readerinfo:

alter table reader rename to readerinfo;

执行结果:
《MySQL数据库表结构的操作(第三章)》

3.删除数据库表

《MySQL数据库表结构的操作(第三章)》
在删除数据库表的时候,如果要删除的表不存在,就会报错(虽然会报错,但是已经存在于数据库中的表也被删除了)。因此加上IF EXISTS就会在表存在的时候删除,不存在就不删除也不会报错。
首先在book数据库中建立t1、t2、t3、t4四张表,然后查看:
《MySQL数据库表结构的操作(第三章)》
删除表t1和t2:

drop table t1, t2;

结果如下:
《MySQL数据库表结构的操作(第三章)》
现在删除表t2和t3:

drop table t2, t3;

结果如下:
《MySQL数据库表结构的操作(第三章)》
现在加上IF EXISTS关键字,删除表t3和t4:

drop table if exists t3, t4;

结果如下:
《MySQL数据库表结构的操作(第三章)》
加上IF EXISTS关键字后,成功删除表t4,表t3虽然不存在了,但是也没有报错。
特别说明:SQL语句中可以不区分大小写。

3.1《MySQL数据库表结构的操作(第三章)》

《MySQL数据库表结构的操作(第三章)》
《MySQL数据库表结构的操作(第三章)》
《MySQL数据库表结构的操作(第三章)》
《MySQL数据库表结构的操作(第三章)》
《MySQL数据库表结构的操作(第三章)》
创建一个分区表bookinfo:

create table bookinfo(
	book_id int,
	book_name varchar(20)
)
partition by range(book_id)(
partition p1 values less than(20109999),
partition p2 values less than(20159999),
partition p3 values less than MAXVALUE
);

结果如下:
《MySQL数据库表结构的操作(第三章)》
向表中插入3条测试数据:

insert into bookinfo values(20100005, 't1');
insert into bookinfo values(20140015, 't2');
insert into bookinfo values(20170001, 't3');

现在bookinfo表中有3条数据:
《MySQL数据库表结构的操作(第三章)》
如果按分区进行查找:

select * from bookinfo partition(p1);

结果如下:
《MySQL数据库表结构的操作(第三章)》
在数据量非常大的时候,使用表分区查询表中数据,可以大大节省查询时间,提高查询效率。对于初学者来说,我们要有关于表分区的概念,对于真正在开发中表分区的使用,以后在开发中再进行深入的研究。

    原文作者:吉他征
    原文地址: https://blog.csdn.net/weixin_40056279/article/details/105780484
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞