操作数据库

本篇包括:

  1. 数据库的创建,修改,删除
  2. mysql的数据类型
  3. 数据库表的创建,查看,修改,删除
  4. 数据库表的分区
  5. mysql中的约束

1. 数据库的创建,修改,删除

创建数据库

create database test1;

如果没有数据库的话就创建:

create database if not exists test2 character set utf8;

显示创建的数据库:

show databases:

修改数据库

比如将test2的字符集改成拉丁文:

alter database test2 character set latin1;

转向编辑哪个数据库:

use test1;

转向哪个数据库之后,哪个数据库就会变成黑色的选中状态。

然后我们查看编码格式:

use test2;
show variables like 'character%';

在这里插入图片描述
我们发现database已经编码格式从utf8变成了latin1这种格式了

删除数据库

drop database test2;
drop database if exists test2;

2.mysql的数据类型

整形和浮点型
在这里插入图片描述
在这里插入图片描述
时间日期型和字符型
在这里插入图片描述
在这里插入图片描述

3.数据库表的创建,查看,修改,删除

数据库表的创建,查看
在这里插入图片描述

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)
);

这里先创建一个数据库book,然后选中该数据库,创建一张reader的表,表里的信息有id,name,sex,age,tel,balance

数据库表的查看

(1)查看数据库表
show tables[from db_name];

show tables from book;

在这里插入图片描述
(2) 查看数据库表
show columns from tbl_name;
desc 表名/describe 表名

show columns from reader;

在这里插入图片描述
如果当前目录就是book这个库,可以直接用desc查看表的信息

desc reader;

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

show create table reader;

在这里插入图片描述
数据库表的修改
(1)数据库表添加列
语法结构:
ALTER TABLE <表名> ADD <新列名> <数据类型> [约束条件] [FIRST|AFTER已存在列名]

alter table reader 
add email varchar(30)

emal这就添加到Columns里面去了
在这里插入图片描述

desc reader 

查看reader
在这里插入图片描述

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

表示指定在tel后面加email2
在这里插入图片描述
(2)修改表列名
语法结构:
ALTER TABLE <表名> CHANGE <旧列明><新列名><新数据类型>;

alter table reader change  email2 emailback varchar(30);
desc reader;

在这里插入图片描述
(3)修改列的数据类型
ALTER TABLE <表名> MODIFY <列名> <数据类型>

alter table reader modify  email varchar(25);
desc reader;

email的数据类型变成了varchar(25)
在这里插入图片描述
(4)修改列的排列位置
语法结构:
ALTER TABLE <表名> MODIFY <列1> <数据类型> FIRST|AFTER <列2>

alter table reader modify balance decimal(7.3) after email;
desc reader;

把余额放到了最后
在这里插入图片描述
(5)删除列
语法结构
ALTER TABLE <表名> DROP <列名>;
这里删除掉emailback

alter table reader drop emailback;
desc reader;

在这里插入图片描述
(6)修改表名称
语法结构:
ALTER TABLE <旧表名> [TO] <新表名>

alter table reader rename to readerinfo;

在这里插入图片描述
(7)数据库表的删除
与非结构:
DROP TABLE [IF EXIST] 表1,表2,...,表n;
在这里插入图片描述
在这里插入图片描述
我们发现mytest1下面有一张表叫test1,我们现在把它删除掉:

use mytest1;
drop table if exists test1;
show tables;

加上if exist就会隐藏报错,没有的表删除时也不会报错
在这里插入图片描述

4.数据库表的分区

表分区:
当我们创建的表,需要承载的数据量很大的时候,就要开率如何优化它,就要考虑表分区。表分区就是把一张表的数据分成多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上,但是所有的数据还是在一个表中

使用表分区有前提:你的数据库必须支持表分区
查看:
show plugins;
会出现很多配置器情况,如果有一行是patition ACTIVE STORAGE ENGINE NULL GPL

说明数据库支持分区
我的8.0.13版本不支持分区,查阅资料发现:
通用分区处理程序已从MySQL服务器中删除。 为了支持给定表的分区,用于表的存储引擎现在必须提供其自己的(“native”)分区处理程序。 --partition和–skip-partition选项已从MySQL服务器中删除, SHOW PLUGINS命令和INFORMATION_SCHEMA.PLUGINS表中不再显示与分区相关的变量信息。

现在两种存储引擎支持native分区:InooDB和NDB(NDBCLUSTER,NDB集群)。而在8.0版本中,只支持InnoDB。

所以如果从Mysql5.7升级到8.0版本,如果有不是InooDB存储引擎的分区表,那么无法升级。有两种解决办法,再升级:
Reference

为了不那么麻烦,决定重新下载5.7版本
show plugins;
查看发现5.7有分区功能!!!(5.7的版本里面不支持中文,所以之前创建表格时性别‘男’,‘女’要改成英文的)
在这里插入图片描述

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

use book;
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
  );

这就是说在book里面创建一张表叫bookinfo,然后使用book_name索引来分区,小于20109999的分为p1;小于20159999的分为p2;以上的都分为p3。
在这里插入图片描述
我们现在向bookinfo表中插入三条数据:

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

查看数据时,可以通过分区检索查看数据:

select * from bookinfo partition(p1);

在这里插入图片描述
只查看p1中的数据,只有一个。

sql中的约束

对表的行或这列做出限制,来确保表的完整性,唯一性,(如图书编号,约束其不能为空,且不能重复,那么这一列就应该有约束)

约束类型
(1)非空约束(NOT NULL)
(2)主键约束(PRIMARY KEY)如图书编号这样的用于索引的,不能重复的
(3)唯一约束(UNIQUE)
(4)默认约束(DEFAULT)
(5)外键约束(FORIGN KEY)如类别编号,去关联图书类别表

(1)非空约束
空值与非空
NULL:字段值可以为空
NOT NULL:字段值不能为空

语法规则:
创建表时的非空约束列名 数据类型 NOT NULL

create table bookinfo(
book_id int,
book_name varchar(20)not null
);

修改表为指定列添加非空约束
alter table bookinfo modify book_name varchar(20) not null;
在这里插入图片描述
删除非空约束
alter table bookinfo modify book_name varchar(20);

设置了书名非空之后再不输入书名的话,就会报错,信息数不进去

insert into bookinfo (book_id) values (20110202);

(2)主键约束
主键约束要求主键列的数据唯一,并且不允许重复,主键能够唯一的标识表中的一条数据

类型:单字段主键,多字段联合主键

单字段主键:
添加主键约束列名 数据类型 PRIMARY KEY;
在列定义的后面指定主键[constraint <约束名> primary key];

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值