数据库的创建、修改与删除

创建和管理表

在MySQL中,一个完整的数据存储过程总共有4步,分别是创建数据库、确认字段、创建数据表、插入数据。
从系统架构的层次上看,MySQL数据库系统从大到小依次是数据库服务器、数据库、数据表、数据表的行与列。
在这里插入图片描述
创建数据库

#方式一 创建的此数据库使用的是默认的字符集 utf-8
create database 数据库名;
#方式二
create database 数据库名 character set 字符集;
create database mytest character set 'gbk';
#方式三 判断数据库是否已经存在,不存在则创建数据库(推荐)
create database if not exists 数据库名;

查看数据库的结构
show create database mytest1

管理数据库
查看当前连接中的数据库有哪些
show databases;

切换数据库
use db_test;

查看当前数据库中有哪些表
show 表名;

查看当前使用的数据库
select database() from dual;

查看指定数据库下保存的数据表
show tables from mysql;

修改数据库
更改数据库的字符集
alter database db_test character set ‘gbk’;

注意
database不能改名。一些可视化工具可以改名,它是新建库,把所有表复制到新库,再删旧库完成的。

删除数据库
方式一
drop database mytest
方式二:推荐,若要删的数据库不存在,不会报错,而方式一会报错
drop database if exists mytest
在这里插入图片描述
常用的数据类型
在这里插入图片描述

创建数据表
use db_test
show create database atguigudb;
方式一:需要用户具备创建表的权限
create table if not exists myempl(
id int , #整型
emp_name varchar(15) , #字符类型
hire_date date # 日期类型
) ;

查看表的字段内容
desc myempl

create database if not exists db_test;#创建数据库
select database() from dual;#查看当前使用的数据库
use db_test;#切换数据库
show tables from db_test;#查看数据库中的数据表
show create database db_test;#查看数据库的属性
#创建数据表
create table if not exists myempl(
id int,
name varchar(15),
hire_date date
);
show create table myempl;#查看表的属性
desc myempl;#查看表的字段内容
select *from myempl;#查看表的内容

如果创建表时没有指明使用的字符集,则默认使用表所在数据库的字符集。

基于现有的表创建新表,可以把现有表中同名的字段以及字段中的内容复制过来
在这里插入图片描述
在这里插入图片描述
需求1:创建一个表employees_copy,实现对employees表的复制,包括表数据

create table if not exists employees_copy
as
select *
from employees;

需求2:创建一个表employees_blank,实现对employees表的复制,不包括表数据

create table employees_blank
as
select *
from employees
where 1=2;

修改表
alter table

添加一个字段

alter table myempl
add salary double(10,2);#默认添加到表中的最后一个字段位置

alter table myempl
add phone_num varchar(15) first;#指定添加到第一个字段位置

alter table myempl
add email varchar(45) after emp_name;#指定添加到emp_name后面

修改一个字段:数据类型、长度、默认值(略)

alter table myempl
modify emp_name varchar(25);#修改字段长度

alter table myempl
modify emp_name varchar(35) default 'aaa';#修改字段默认值,一般字段默认值为null

alter table customers
modify c_contact varchar(50) after c_birth;#将c_contact移动到c_birth后面 

重命名一个字段

alter table myempl
change salary monthly_salary double(10,2);

alter table myempl
change email my_email varchar(50);

删除一个字段

alter table myempl
drop column my_eemail;

重命名表
方式一:推荐
rename table

rename table myempl to myempl1;

方式二:

alter table myempl1
rename to myempl2;

删除表
drop table
不光表结构删除掉,同时表中的数据也删除掉,释放表空间

drop table if exists myempl;

清空表
清空表中的所有数据,但表结构保留。

truncate table employees_copy;

DCL中commit与rollback的使用
commit:提交数据。一旦执行commit,则数据就被永久保存在数据库中,意味着数据不可rollback回滚(撤回),但可以采用其他操作。

rollback:回滚数据,可以实现数据回滚。回滚到最近的一次commit之后。

对比truncate table和delete from
相同点:都可以实现对表中所有数据的删除,同时保留表结构。
不同点:truncate table一旦执行,表数据全部清除。同时数据是不可以回滚的。
delete from表数据可以全部清除(不带where)也可以选择性删除。且数据可以回滚。

DDL和DML的说明

DDL操作一旦执行,就不可回滚。

DML操作默认情况下也是不可回滚的。但若在执行DML前执行了SET autocommit=FALSE,则执行的DML操作就可以实现回滚。

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值