第三章:数据库表结构的操作

第三章:数据库表结构的操作 图1

3.1创建和查看数据库表

掌握创建和查看表结构操作

数据表:是数据库最重要的组成部分之一,是其他对象的基础。(二维表格,行、列)

创建数据库表:
create table <表名>
(
列明1 数据类型[列级别约束条件][默认值],
列明2 数据类型[列级别约束条件][默认值],
……
[表级别约束条件]
);

例子:

--创建图书管理系统的数据库
create database book;

--使用数据库
use book;

--创建读者信息表
create table reader(
card_id char(18),
name varchar(10),
sex enum('男','女'),
age tinyint,
tel char(11),
balance decimal(7,3)
);

--查看数据库表
show tables from book;

--查看数据表的基本结构
show columns from reader;

desc reader;

--查看表的详细结构(可以用来显示数据表的创建语句)
show create table reader;

3.2修改数据库表

重点:熟悉添加列,修改列和删除列

添加列:在已经存在的表添加新的列。

ALTER TABLE<表名>
ADD<新列明><数据类型>
[约束条件][FISR|AFTER已存在的列明];

修改列名
MySQL中修改表列明的语法规则如下:
ALTER TABLE <表名>
CHANGE <旧列名><新列明><新数据类型>;

修改列的数据类型:就是把列的数据乐行转成领一种数据类型。
ALTER TABLE <表名> MODIFY <列名>,<数据类型>

修改列的排列位置:ALTER TABLE来改变表中列的相对位置。
ALTER TABLE <表名>
MODIFY<列1><数据类型>FIRST|AFTER<列2>;

删除列:是将数据表中的某个列从表中移除。
ALTER TABLE <表名> DROP <列名>

修改表名:MYSQL是通过ALTER TABLE 语句来实现表名的修改的。
ALTER TABLE <旧表名> RENAME [TO] <新表名>

例句:

--修改表添加列
alter table reader add email varchar(30);

--查看表的基本结构
desc reader;

--修改表,在指定位置添加列
alter table reader add email2 varchar(30) after tel;

--修改列名
alter table reader change email2 email_bak varchar(30);

--修改列的数据类型
alter table reader modify email varchar(25);

--修改列的排列位置
alter table reader modify balance decimal(7,3) after email;

--删除列
alter table reader drop email_bak;

--修改表名
alter table reader rename to readerinfo;

3.3删除数据库表及了解表分区内容

熟悉删除数据库表的操作;

了解表分区内容;

删除数据库表:MySQL中,使用DROP TABLE 可以一次删除一个或多个没有被其他表关联的数据表。
DROP TABLE [IF EXISTS] 表1,表2……表n;

表分区

当我们创建的表,需要承载的数据量很大的时候,就要注意他性能问题,比如图书表信息,有1000万个图书信息,那么我们就的考虑如何优化它,其中一种方式就是表分区。

表分区就是把一张表的数据分成多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上,但所有的数据在在一个表中。

不过使用表分区有个前提就是你的数据库必须支持。那么,怎么知道我的数据库是否支持表分区呢?请执行下面的命令

show plugins;

执行结果显示如下:
partition active storage engine null GPL

数据库的表分区有两种方式,水平和垂直,水平分区是将表的数据按行分割成不同的数据文件,而垂直分区则是将表的数据按列分割成不同的数据文件。

创建表分区

在创建表的时间使用:partition by 类型(字段)
Range分区:
根据指定某列的范围值进行分区。
使用values less than 操作符定义分区

例句:

--删除多个数据库表
drop table t1,t2;

drop table if exists t3,t4;

--创建分区表
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
);

--插入3条测试数据
insert into bookinfo values(20100005,'t1');
insert into bookinfo values(20140015,'t2');
insert into bookinfo values(20170011,'t3');

--指定分区查看数据
select * from bookinfo partition(p1);

本文原创,作者:zxbcctv,其版权均为原作者所有,文章内容系作者个人观点,不代表 张小宾自媒体 对观点赞同或支持。如需转载,请注明出处:https://www.zxbcctv.com/2541.html
22

发表评论