MYSQL学习与实验(一)——数据库定义与操作

发布于 2020-12-04  1194 次阅读


MYSQL学习与实验(一)——数据库定义与操作

1.1创建数据库语句

CREATE  DATABASE [IF NOT EXISTS] 数据库名 [选项...];

这里创建一个DBMS的数据库

 create database if not exists DBMS character set gbk;

在这里插入图片描述
这里使用了if not exists 这个条件,意思是如果不存在该数据库则创建,如果已经存在了则不创建。比如这个DBMS数据库已经被创建,这时候就不会重复创建这个数据库,如果不使用这个if not exists那么直接使用创建数据库语句:create database DBMS character set gbk;

则会报错:
在这里插入图片描述

1.2.修改数据库信息:

 alter database 数据库名 修改选项  修改的新值
  alter database DBMS character set utf8mb4;

在这里插入图片描述
使用查看数据库信息命令查看当前数据库DBMS的信息:

 show create database dbms;

在这里插入图片描述
可以发现,我们刚开始创建的时候这个数据库的编码设置“gbk”,现在已经改变为了“utf8mb4”,然后开始将编码修改为原来的样子:
在这里插入图片描述

可以发现修改成功了。

1.3创建一个临时数据库tempDBMS然后删除

1.3.1建表语句:drop database if exists tempDBMS;

在这里插入图片描述

1.3.2删除数据库:drop database 数据库名

 drop database  tempDBMS;

在这里插入图片描述
可以看到该数据库已经被删除了。

1.4.创建表

1.4.1新建

CREATE TABLE employee (employeeID CHAR(6) NOT NULL PRIMARY KEY, name CHAR(10) NOT NULL, education CHAR(4) NOT NULL,birth DATE NOT NULL, gender TINYINT(1) NOT NULL DEFAULT 1,workYear TINYINT(1),address VARCHAR(100),phone CHAR(12), departmentID CHAR(3) REFERENCES department(departmentID));
在这里插入图片描述

1.4.2从已有数据中新建:

CREATE  TABLE [IF NOT EXISTS] 表名  [ ( ) LIKE 已有表名 [ ] ] | [AS ( 表达式 )];
在这里插入图片描述
在这里插入图片描述

1.5修改表

1.5.1首先创建一个临时例子的表 person:

create table if not exists person (id int(8) primary key auto_increment,name varchar(20) not null,password varchar(20) not null,sex tinyint(1) not null,address varchar(128));
在这里插入图片描述

1.5.2修改表名:

rename table  表名  to  新的表名

修改表person的名为newperson:
在这里插入图片描述

1.5.2删除列:

alter table table-name drop col-name;
 alter table newperson drop sex ;
在这里插入图片描述

可见删除列“sex”成功。

1.5.3增加列(单列):

alter table table-name add col-name col-type comment 'xxx';
在这里插入图片描述

1.5.4增加表字段并指明字段放置为第一列:

alter table table-name add col-name col-type COMMENT 'sss' FIRST;
alter table newperson add column age int(3) comment "年龄" first;
在这里插入图片描述

1.5.5增加表字段并指明字段放置为特定列后面:

alter table table-name add col-name col-type after col-name-1;
 alter table newperson add column jobName varchar(20) comment "工作名称" after id;
在这里插入图片描述

1.5.6使用MODIFY修改字段类型:

alter table table-name  modify  column col-name col-type;
 alter table newperson modify name varchar(40) not null;
在这里插入图片描述

1.5.7使用CHANGE修改字段类型:

alter table table-name change col-name col-name col-type;
 alter table newperson change address newAddress varchar(64) not null;
在这里插入图片描述

1.5.8修改字段的默认值:

alter table table-name alter col-name set default 要设置的默认值;
 alter table newperson alter age set default 18;
在这里插入图片描述

1.5.9字段删除默认值:

alter table table-name alter col-name drop default;
alter table newperson alter age drop default;
在这里插入图片描述

1.6.删除临时表:

drop table 表名 [if exists]
 drop table if exists;
在这里插入图片描述

1.7思考与练习

创建一个基本表的时候,LIKE和AS有何区别?试着对比表数据和表结构。

创建表时从已有数据中复制:

CREATE TABLE employee2 LIKE employee ;和CREATE TABLE employee3 AS (SELECT * FROM employee );的区别:

CREATE TABLE employee2 LIKE employee ;创建表时复制的是employee 的表结构,但是并没有复制employee 中的数据到employee2中,查询数据时为空。
在这里插入图片描述
在这里插入图片描述
CREATE TABLE employee3 AS (SELECT * FROM employee );创建表时不仅把employee 的结构复制过来了,其中的数据也复制过来了,employee3 和employee3的数据一致。

1.8详细的实验资料以及指导PPT请访问笔者GitHub地址:https://github.com/LJF2402901363/database_experiment.git


繁华落尽,雪花漫天飞舞。