【MySQL】数据库操作

作者:码农 | 发布时间:

文章目录

  • 1、创建和管理数据库
    • 1.1 创建数据库
    • 1.2 查看数据库
    • 1.3 修改数据库
    • 1.4 删除数据库
  • 2、 创建表
    • 2.1 创建表CREATE
    • 2.2 创建表AS
  • 3、修改表
    • 3.1 添加列 ALTERT TABLE ADD
    • 3.2 修改列 ALTER TABLE MODIFY
    • 3.3 重命名列 ALTER TABLE CHANGE
    • 3.4 删除列 ALTER TABLE DROP
  • 4、重命名表 ALTER TABLE RENAME
  • 5、删除表DROP TABLE
  • 6、清空表 DELETE FROM

1、创建和管理数据库

1.1 创建数据库

CREATE DATABASE dbname;

# 创建数据库
CREATE DATABASE testdb;# 创建数据库并指定字符集
CREATE DATABASE testdb CHARACTER SET UTF8;# 判断数据库是否已经存在,不存在则创建数据库
CREATE DATABASE IF NOT EXISTS testdb;

1.2 查看数据库

  • 注意:要操作表格和数据之前必须先说明是对哪个数据库进行操作,否则就要对所有对象加上“数据库名.”。
查看当前所有的数据库
SHOW DATABASES;查看当前正在使用的数据库
SELECT DATABASE();查看指定库下所有的表
SHOW TABLES FROM atguigudb;查看数据库的创建信息
SHOW CREATE DATABASE atguigudb;使用/切换数据库
USE atguigudb;
SELECT DATABASE();
USE testdb;
SELECT DATABASE();

1.3 修改数据库

  • 注意:DATABASE 不能改名。一些可视化工具可以改名,它是建新库,把所有表复制到新库,再删旧库完成的。
  • 更改数据库字符集
更改数据库字符集
ALTER DATABASE testdb CHARACTER SET gbk;
ALTER DATABASE testdb CHARACTER SET utf8;

1.4 删除数据库

方式1:删除指定的数据库
DROP DATABASE test2;方式2:删除指定的数据库
DROP DATABASE IF EXISTS test2;# 示例
CREATE DATABASE test2;
SHOW DATABASES;
DROP DATABASE test2;
SHOW DATABASES;
DROP DATABASE IF EXISTS test2;
SHOW DATABASES;

2、 创建表

2.1 创建表CREATE

  • 必须具备:CREATE TABLE权限、存储空间
CREATE TABLE emp (emp_id INT,emp_name VARCHAR(20),salary DOUBLE,birthday DATE
);DESC emp;CREATE TABLE dept(deptno INT,dname VARCHAR(14),loc VARCHAR(13),-- 主键PRIMARY KEY(deptno));DESC dept;SHOW TABLES FROM testdb;

2.2 创建表AS

  • 将创建表和插入数据结合起来
  • 指定的列和子查询中的列要一一对应
  • 通过列名和默认值定义列
CREATE TABLE emp1 AS SELECT * FROM atguigudb.employees;CREATE TABLE emp2 AS SELECT * FROM atguigudb.employees WHERE 1=2; 
-- 创建的emp2是空表CREATE TABLE dept80 
AS
SELECT employee_id, last_name, salary*12 ANNSAL, hire_date
FROM atguigudb.employees
WHERE department_id = 80;

2.3 查看数据表结构

  • DESCRIBE/DESC 语句查看数据表结构
  • SHOW CREATE TABLE 语句查看数据表结构:不仅可以查看表创建时的详细语句,还可以查看存储引擎和字符编码。
DESC dept80;SHOW CREATE TABLE dept80;

d2b5ca33bd210415

d2b5ca33bd210504

3、修改表

  • 使用 ALTER TABLE 语句可以实现修改数据库中已经存在的数据表的结构。
  • 向已有的表中添加列、修改现有表中的列、删除现有表中的列、重命名现有表中的列。

3.1 添加列 ALTERT TABLE ADD

# 语法格式如下:
ALTER TABLE 表名 ADD 【COLUMN】 字段名 字段类型 【FIRST|AFTER 字段名】;# 举例:
ALTER TABLE dept80 
ADD job_id VARCHAR(15);

3.2 修改列 ALTER TABLE MODIFY

  • 可以修改列的数据类型,长度、默认值和位置
# 修改字段数据类型、长度、默认值、位置的语法格式如下:
ALTER TABLE 表名 MODIFY 【COLUMN】 字段名1 字段类型 【DEFAULT 默认值】【FIRST|AFTER 字段名2】;ALTER TABLE dept80 
MODIFY last_name VARCHAR(30);

3.3重命名列 ALTER TABLE CHANGE

  • 使用 CHANGE old_column new_column dataType子句重命名列。
# 语法格式如下:
ALTER TABLE 表名 CHANGE 【column】 列名 新列名 新数据类型;ALTER TABLE dept80 
CHANGE ANNSAL ann_sal VARCHAR(15);

3.4 删除列 ALTER TABLE DROP

  • 删除表中某个字段的语法格式如下:
ALTER TABLE 表名 DROP 【COLUMN】字段名ALTER TABLE dept80 
DROP COLUMN job_id;

4、重命名表 ALTER TABLE RENAME

RENAME TABLE emp 
TO myemp;ALTER TABLE dept RENAME TO detail_dept;ALTER TABLE dept 
RENAME detail_dept;

5、删除表DROP TABLE

  • 当一张数据表没有与其他任何数据表形成关联关系时,可以将当前数据表直接删除。
  • 数据和结构都被删除
  • 所有正在运行的相关事务被提交
  • 所有相关索引被删除
  • DROP TABLE 语句不能回滚
# 语法格式: 
DROP TABLE [IF EXISTS] 数据表1 [, 数据表2, …, 数据表n];DROP TABLE emp2;SHOW TABLES;

6、清空表 DELETE FROM

  • TRUNCATE TABLE语句:
    删除表中所有的数据
    释放表的存储空间
  • TRUNCATE语句不能回滚
  • DELETE 语句删除数据,可以回滚
TRUNCATE TABLE myemp;SELECT * FROM dept80;DELETE FROM dept80;SELECT * FROM dept80;ROLLBACK;SELECT * FROM dept80;
标签:学习笔记, 小白教学