当前位置:网站首页>MySQL基础 数据库创建基础
MySQL基础 数据库创建基础
2022-06-09 08:50:00 【Maximize+】
创建数据库










数值类型

日期类型

字符串类型

空间数据类型


#创建表
#方式1:
USE atguigudb;
SHOW CREATE DATABASE atguigudb;#默认使用UTF8
SHOW TABLES;
CREATE TABLE IF NOT EXISTS myemp1( #需要用户具备创建表的权限
id INT,
emp_name VARCHAR(15),#使用VARCHAR来定义字符串,必须在使用时指明其长度
hire_date DATE
);
#查看表结构
DESC myemp1;
SHOW CREATE TABLE myemp1;
SELECT *FROM myemp1;
#方式2: 基于现有的表
CREATE TABLE myemp2
AS
SELECT employee_id,last_name,salary
FROM employees;
DESC myemp2;
DESC employees;
SELECT*FROM employees
CREATE TABLE myemp3
AS
SELECT e.employee_id,e.last_name,d.department_name
FROM employees e JOIN departments d
ON e.department_id = d.department_id
SELECT * FROM myemp3;
#创建一个表employees_cpoy,实现对employees表的复制,包括表数据
CREATE TABLE employees_cpoy
AS
SELECT *
FROM employees;
SELECT * FROM employees_cpoy
#创建一个表employees_blank,实现对employees表复制,不包括表数据
CREATE TABLE employees_blank
AS
SELECT *
FROM employees;
SELECT * FROM employees
WHERE department_id > 10000;
#where 1=2;#山无棱,天地含,乃敢与君绝。
删除、修改数据库





DESC myemp1;
##修改表
#添加一个字段 --->alter table
ALTER TABLE myemp1
ADD salary DOUBLE(10,2);#2位小数点 默认添加到表中的最后一个字段位置
ALTER TABLE myemp1
ADD phone_number VARCHAR(20) FIRST; #
ALTER TABLE myemp1
ADD email VARCHAR(45) AFTER emp_name;#插入**之后
#修改一个字段
#一般不会修改字段类型
ALTER TABLE myemp1
MODIFY emp_name VARCHAR(25);
ALTER TABLE myemp1
MODIFY emp_name VARCHAR(35) DEFAULT 'aaa';
#重命名字段
ALTER TABLE myemp1
CHANGE salary monthly_salary DOUBLE(10,2);
ALTER TABLE myemp1
CHANGE email my_email VARCHAR(50);
#删除一个字段
ALTER TABLE myemp1
DROP COLUMN my_email;
##重命名表
#方式1
RENAME TABLE myemp1
TO myemp11;
SHOW TABLES;
#方式2
ALTER TABLE myemp2
RENAME TO myemp12;
##删除表
DROP TABLE myemp12;
##清空表
#清空表中的所有数据,但表结构保留
SELECT *FROM employees_cpoy;
TRUNCATE TABLE employees_cpoy;
SELECT *FROM employees_cpoy;
DESC employees_cpoy;
#DCL 中 COMMIT 和 ROLLBACK
#COMMIT:提交数据,一旦执行COMMIT,则数据就被永久保存在数据库中,意味着不可以回滚
#ROLLBACK:回滚数据,一旦执行ROLLBACK,则可以实现数据的回滚,回滚到最后一次COMMIT之后。
#对比 TURNCATE TABLE 和 DELECT FROM
#相同点:都可以实现对表中所有数据的删除,同时是保留表结构的
#不同点:
# TRUNCATE:清空表数据,一旦执行该操作,表数据全部清除,同时数据是不可以回滚的
# DELECT FROM :一旦执行该操作,表数据可以全部清除(不带WHERE)。同时数据可以实现回滚
/* DDL和DML的说明 ①DDL的操作一旦执行就不可回滚。指令SET autocommit = FLASE对DDL操作失效(因为在执行 DDL操作之后一定会执行一次COMMIT,而且此COMMIT不收受指令影响) ②DML的操作默认情况下也是不可回滚。但是如果在执行DML之前,执行了 SET autocommit = false.则执行操作可以实现回滚,默认为true */
#演示 : DELETE FROM
#1
COMMIT;#提交数据
#2
SELECT* FROM myemp3
#3
SET autocommit = FALSE;
#4
DELETE FROM myemp3
#5
SELECT* FROM myemp3
#6
ROLLBACK;
#7
SELECT* FROM myemp3
#演示 : TRUNCATE TABLE
#1
COMMIT;#提交数据
#2
SELECT* FROM myemp3
#3
SET autocommit = FALSE;
#4
TRUNCATE TABLE myemp3
#5
SELECT* FROM myemp3
#6
ROLLBACK;
#7
SELECT* FROM myemp3
############
#MySQL8.0新特性:DDL的原子化
#执行如下操作
#如果是5.0则会删除book1,报错book2不存在
#如果是8.0则会删除bokk1,后报错book2并回滚book1表
#原子化:要么都执行要么都不执行,不能分隔,整体
CREATE DATABASE mytest;
USE mytest;
CREATE TABLE book1(
book_id INT,
book_name VARCHAR(255)
);
DELETE TABLE book1,book2
SHOW TABLES;
创建管理表练习
练习1
#创建和管理表练习
#创建数据库test01_office,指明字符集为utf-8,并在此数据库下执行下述操作
CREATE DATABASE IF NOT EXISTS test01_office CHARACTER SET 'utf8';
USE test01_office;
#建立表 dept01
/* 字段 类型 id INT(7) NAME VARCHAR(25) */
CREATE TABLE dept01(
id INT(7),
`name` VARCHAR(25)
);
#将表departments中的数据插入新表dept02中
CREATE TABLE dept02
AS
SELECT * FROM atguigudb.`departments`
#创建emp01表
/* 字段 类型 id INT(7) first_name VARCHAR(25) last_name VARCHAR(25) dept_id INT(7) */
CREATE TABLE emp01(
id INT(7),
first_name VARCHAR(25),
last_name VARCHAR(25),
dept_id INT(7)
);
DESC emp01;
ALTER TABLE emp01
MODIFY last_name VARCHAR(50);
#根据employees创建emp2表
CREATE TABLE emp02
AS
SELECT*FROM atguigudb.`employees`;
SHOW TABLES;
SHOW TABLES FROM test01_office;
#删除emp01表
DROP TABLE emp01;
#将表emp02重命名为emp01
#alter table emp02 rename to emp01;
RENAME TABLE emp02 TO emp01;
#在表dept02中和emp01添加新列 test_column
ALTER TABLE emp01 ADD test_column VARCHAR(10)
ALTER TABLE dept02 ADD test_column VARCHAR(10)
#直接删除表emp01中的列department_id
ALTER TABLE emp01
DROP COLUMN department_id;
DESC emp01;
练习2
#创建数据库test02_market
CREATE DATABASE IF NOT EXISTS test02_market CHARACTER SET 'utf8';
#打开数据库
USE test02_market;
SHOW CREATE DATABASE test02_market;
#创建数据表 customers
CREATE TABLE IF NOT EXISTS customers(
c_num INT,
c_name VARCHAR(50),
c_contact VARCHAR(50),
c_city VARCHAR(50),
c_birth DATE
);
SHOW TABLES;
DESC customers;
#将c_contact字段移动到c_birth字段后面
ALTER TABLE customers
MODIFY c_contact VARCHAR(50) AFTER c_birth;
DESC customers;
#将c_name数据类型改为varchar(70)
ALTER TABLE customers
MODIFY c_name VARCHAR(70);
#将c_contact字段改名为c_phone
ALTER TABLE customers
CHANGE c_contact c_phone VARCHAR(50);
#增加c_gender字段到c_name后面,数据类型为char(1)
ALTER TABLE customers
ADD c_gender CHAR(1) AFTER c_name;
#将表名改为customers_info
RENAME TABLE customers
TO customers_info;
DESC customers_info;
#删除字段c_city
ALTER TABLE customers_info
DROP COLUMN c_city;
DESC customers_info;
练习3
#创建数据库test03_company
CREATE DATABASE IF NOT EXISTS test03_company CHARACTER SET 'utf8';
#进入数据库
USE test03_company;
#创建表office
CREATE TABLE IF NOT EXISTS office(
officeCode INT,
city VARCHAR(30),
address VARCHAR(50),
country VARCHAR(50),
postalCode VARCHAR(25)
);
SHOW TABLES;
#创建表employees
CREATE TABLE IF NOT EXISTS employees(
empNum INT,
lastName VARCHAR(50),
firstName VARCHAR(50),
mobile VARCHAR(25),
`code` INT,
jobTitle VARCHAR(50),
birth DATE,
note VARCHAR(255),
sex VARCHAR(5)
);
DESC employees;
#将表employees的mobile字段修改到code字段后面
ALTER TABLE employees
#如果修改的长度不合理则会报错
MODIFY mobile VARCHAR(25) AFTER `code`;
DESC employees;
#将表employees的birth字段改名为birthday
ALTER TABLE employees
CHANGE birth birthday DATE;
#修改sex字段,数据类型为char(1)
ALTER TABLE employees
MODIFY sex CHAR(1);
#删除字段note
ALTER TABLE employees
DROP COLUMN note;
DESC employees;
#增加字段名favoriate_activity,数据类型为varchar(100)
ALTER TABLE employees
ADD favoriate_activity VARCHAR(100);
DESC employees;
#将表名employees的名称修改为employees_info
RENAME TABLE employees TO employees_info;
DESC employees_info;
边栏推荐
- Summary of string inversion methods
- Sql: actors and directors who have cooperated at least three times
- Leetcode game 295
- 【Redis学习11】分布式缓存之数据持久化,主从集群
- 修改市場活動錶
- 修改市场活动表
- MySQL在存储过程中使用while批量插入数据(批量提交和单个提交的性能差异)
- 【无标题】
- Energy management and control system for industrial enterprises helps enterprises strengthen energy management and improve equipment operation efficiency
- 文件排序 (拓展)
猜你喜欢

Shared network port settings for Dell Idrac express version

SSM implements selected deletion

安科瑞企业微电网能效管理平台推动电网向能源互联网升级

FreeRtos信号量复习

C language pointer

Precautions for Tencent cloud pagoda website construction

【无标题】
![[texstudio] [1] fractional dfrac, tfrac undefined control square error](/img/c4/ef1b8097fb78210fc922e7e9a42234.jpg)
[texstudio] [1] fractional dfrac, tfrac undefined control square error

腾讯云宝塔搭建网站注意事项

3D编程模式:依赖隔离模式
随机推荐
.NET C#基础(6):命名空间 - 组织代码的利器
JS window object
项目面试题
Shell script connects 157 servers to the network in batches, configures password free, and resets the root password
vim的简单使用
如何查看手机绑定过的网站或者APP:注销手机号之前你必须要做的——换绑所有旧手机号绑定过的网站或者APP
Update and delete operations in Clickhouse of data warehouse series
English grammar_ adverb
SSM implements selected deletion
文件排序 (拓展)
RMAN backup concept_ Consistent and inconsistent RMAN backups
JS realizes three-level linkage
编辑器说明-备用
Simple use of vim
Sql: actors and directors who have cooperated at least three times
3D编程模式:依赖隔离模式
English grammar_ adverb of manner
Lambda expression
Install MySQL nanny tutorial
HVV blue team points north