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

1.1创建数据库语句

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

这里创建一个DBMS的数据库

create database if not exists DBMS character set gbk;

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_数据库操作


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

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_数据库定义_02

1.2.修改数据库信息:

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

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_数据库定义_03


使用查看数据库信息命令查看当前数据库DBMS的信息:

show create database dbms;

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_MYSQL_04


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

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_数据库操作_05

可以发现修改成功了。

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

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

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_数据库操作_06

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

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_数据库定义_07


可以看到该数据库已经被删除了。

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

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_MYSQL_08

1.4.2从已有数据中新建:
CREATE  TABLE [IF NOT EXISTS] 表名  [ ( ) LIKE 已有表名 [ ] ] | [AS ( 表达式 )];

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_学习_09


mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_MYSQL_10

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

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_学习_11

1.5.2修改表名:

rename table  表名  to  新的表名

修改表person的名为newperson:

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_数据库定义_12

1.5.2删除列:

alter table table-name drop col-name;
alter table newperson drop sex ;

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_MYSQL_13

可见删除列“sex”成功。

1.5.3增加列(单列):
alter table table-name add col-name col-type comment 'xxx';

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_数据库定义_14

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;

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_数据库定义_15

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;

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_MYSQL_16

1.5.6使用MODIFY修改字段类型:
alter table table-name  modify  column col-name col-type;
alter table newperson modify name varchar(40) not null;

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_学习_17

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;

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_学习_18

1.5.8修改字段的默认值:
alter table table-name alter col-name set default 要设置的默认值;
alter table newperson alter age set default 18;

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_实验_19

1.5.9字段删除默认值:
alter table table-name alter col-name drop default;
alter table newperson alter age drop default;

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_MYSQL_20

1.6.删除临时表:

drop table 表名 [if exists]
 drop table if exists;

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_学习_21

1.7思考与练习

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

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

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

CREATE TABLE employee2 LIKE employee ;创建表时复制的是employee 的表结构,但是并没有复制employee 中的数据到employee2中,查询数据时为空。

mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_MYSQL_22


mysql数据库技术第三版周德伟实训答案 mysql数据库技术与实验指导_数据库定义_23


CREATE TABLE employee3 AS (SELECT * FROM employee );创建表时不仅把employee 的结构复制过来了,其中的数据也复制过来了,employee3 和employee3的数据一致。