文章目录

  • 1、创建和管理数据库
    • 1.1 创建数据库
    • 1.2 查看数据库
    • 1.3 修改数据库
    • 1.4 删除数据库
  • 2、 创建表
    • 2.1 创建表CREATE
    • 2.2 创建表AS
    • 2.3 查看表结构
  • 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
  • 7、练习题目

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;


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;

7、练习题目

--              ---------------------------------------------------------------1
#1. 创建数据库test01_office,指明字符集为utf8。并在此数据库下执行下述操作
CREATE DATABASE test01_office CHARACTER SET utf8;
CREATE DATABASE IF NOT EXISTS test01_office;
CREATE DATABASE IF NOT EXISTS test01_office CHARACTER SET utf8;SHOW DATABASES;#2. 创建表dept01
/*
字段 类型
id INT(7)
NAME VARCHAR(25)
*/
USE test01_office;
SELECT DATABASE();CREATE TABLE dept01 (id INT(7),name VARCHAR(10)
);SHOW TABLES FROM test01_office;
DESC dept01;#3. 将表departments中的数据插入新表dept02中
SELECT DATABASE();CREATE TABLE dept02
AS
SELECT * FROM atguigudb.departments;SHOW TABLES FROM test01_office;DESC dept02;#4. 创建表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)
);SHOW TABLES FROM test01_office;DESC emp01;#5. 将列last_name的长度增加到50
ALTER TABLE emp01
MODIFY last_name VARCHAR(50);DESC emp01;#6. 根据表employees创建emp02
CREATE TABLE emp02 AS
SELECT * FROM atguigudb.employees;DESC emp02;
SHOW TABLES FROM test01_office;#7. 删除表emp01
SHOW TABLES FROM test01_office;
DROP TABLE IF EXISTS emp01;
SHOW TABLES FROM test01_office;#8.将表emp02重命名为emp01
ALTER TABLE emp02
RENAME emp01;SHOW TABLES FROM test01_office;#9.在表dept02和emp01中添加新列test_column VARCHAR(10),并检查所作的操作
ALTER TABLE dept02 ADD test_column VARCHAR(10);
ALTER TABLE emp01 ADD test_column VARCHAR(10);
DESC dept02;
DESC emp01;#10.直接删除表emp01中的列 department_id
ALTER TABLE emp01
DROP department_id;--              ---------------------------------------------------------------2# 1、创建数据库 test02_market
CREATE DATABASE IF NOT EXISTS test02_market CHARACTER SET utf8;
SHOW DATABASES;# 2、创建数据表 customers
-- c_num int
-- c_name varchar(50)
-- c_contact varchar(50)
-- c_city varchar(50)
-- c_birth date
SELECT DATABASE();
USE test02_market;
SELECT DATABASE();CREATE TABLE customers (c_cum INT,c_name VARCHAR(50),c_contact VARCHAR(50),c_city VARCHAR(50),c_birth DATE
);# 3、将 c_contact 字段移动到 c_birth 字段后面
ALTER TABLE customers
MODIFY c_phone VARCHAR(50) AFTER c_birth;DESC customers;# 4、将 c_name 字段数据类型改为 varchar(70)
DESC customers;ALTER TABLE customers
MODIFY c_name VARCHAR(70);DESC customers;# 5、将c_contact字段改名为c_phone
ALTER TABLE customers
CHANGE c_contact c_phone VARCHAR(50);
-- 使用change改名也必须声明字段类型DESC customers;# 6、增加c_gender字段到c_name后面,数据类型为char(1)
ALTER TABLE customers
ADD c_gender CHAR(1) AFTER c_name;DESC customers;ALTER TABLE customers
MODIFY c_gender CHAR(1) AFTER c_name;# 7、将表名改为customers_info
ALTER TABLE customers
RENAME customers_info;SHOW TABLES FROM test02_market;# 8、删除字段c_city
ALTER TABLE customers_info
DROP c_city;DESC customers_info;--              ---------------------------------------------------------------3# 1、创建数据库test03_company
CREATE DATABASE IF NOT EXISTS test03_company CHARACTER SET utf8;
SHOW DATABASES; # 2、创建表offices
-- 字段名数据类型
-- officeCode int
-- city varchar(30)
-- address varchar(50)
-- country varchar(50)
-- postalCode varchar(25)
SELECT DATABASE();
USE test03_company;CREATE TABLE offices (officeCode INT,city VARCHAR(30),address VARCHAR(50),country VARCHAR(50),postalCode VARCHAR(25)
);# 3、创建表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)
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)
);# 4、将表employees的mobile字段修改到code字段后面
ALTER TABLE employees
MODIFY mobile VARCHAR(25) AFTER code;DESC employees;# 5、将表employees的birth字段改名为birthday
ALTER TABLE employees
CHANGE birth birthday DATE;# 6、修改sex字段,数据类型为char(1)
ALTER TABLE employees
MODIFY sex CHAR(1);# 7、删除字段note
ALTER TABLE employees
DROP note;# 8、增加字段名favoriate_activity,数据类型为varchar(100)
ALTER TABLE employees
ADD favoriate_activity VARCHAR(100);DESC employees;# 9、将表employees的名称修改为 employees_info
ALTER TABLE employees
RENAME employees_info;RENAME TABLE employees_info TO employees;SHOW TABLES FROM test03_company;

【MySQL】数据库表操作相关推荐

  1. MYSQL数据库表操作pdf

    <MYSQL数据库表操作pdf> 下载地址: 网盘下载 转载于:https://www.cnblogs.com/long12365/p/9731023.html

  2. qt mysql怎么选表_Qt的Mysql数据库表操作(1)

    Qt中的QSqlDatabase.QSqlQueryModel.QSqlRecord.QSqlTableModel等类为我们提供了快速开发数据库的方式,支持多种数据库连接,例如oracle,db2,M ...

  3. 跟沐风晓月一起玩转数据库之MySQL数据库表操作技巧与实用方法解析

    前言 今天我们开始探讨数据库表的操作,包含了表的增删改查,但不包含数据的增删改查,想要了解更多关于数据库表中对表中数据进行增删改查的方法,参见下篇文章. 可以关注我的云原生社区:云原生社区 也可以关注 ...

  4. unicode表_Python数据库操作 Mysql数据库表引擎与字符集#学习猿地

    # Mysql数据库表引擎与字符集 ![](./imgs/752951346A5F4E7EBDE362FA97107707.png) ### 1.服务器处理客户端请求 其实不论客户端进程和服务器进程是 ...

  5. 织梦数据库改mysql前缀_织梦快速批量修改MYSQL数据库表前缀与表名实例操作

    这篇文章主要为大家详细介绍了织梦快速批量修改MYSQL数据库表前缀与表名实例操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. 我们在安装织梦系统的时候,有一次 ...

  6. 数据库 MySQL 之 表操作、存储引擎

    数据库 MySQL 之 表操作.存储引擎 浏览目录 创建(复制) 删除 修改 查询 存储引擎介绍 一.创建(复制) 1.语法: 1 2 3 4 5 CREATE TABLE 表名(     字段名1 ...

  7. mysql数据库DDL操作

    #1.数据库操作sql语句 ##创建数据库 CREATE DATABASE db_0224;##显示所有的数据库 SHOW DATABASES; #删除数据库 #DROP DATABASE db_02 ...

  8. MySQL 数据库的操作 连接、新增、删除、选择数据库 命令行(带图)

    MySQL 数据库的操作 连接.新增.删除.选择数据库 命令行 一.连接数据库 在命令行通过 下面命令 mysql -u root -p123456 #这里跟的是自己的密码 8.0的密码要回车后输入. ...

  9. 程序员面试之MySQL数据库表的设计

    如果要选择一门程序员必备的技能,那答案无疑是数据库,而MySQL是首选.很多企业在面试过程中会提问MySQL数据库表设计要注意什么,接下来小千就给大家讲解一下. MySQL相较于MSSQL SERVE ...

  10. Mysql数据库(三)——mysql数据库高级操作

    Mysql数据库(三)--mysql数据库高级操作 一.指定主键的另一种方式 二.克隆/复制一个表 1.方法一 2.方法二 三.清空表,删除表内数据 1.方法一 2.方法二 3.方法三 4.三个删除方 ...

最新文章

  1. 使用结构体输出员工工资表
  2. 一起谈.NET技术,一句代码实现批量数据绑定[下篇]
  3. 数据输出:如何将数据带给页面||SpringMVC除过在方法上传入原生的request和session外还能怎么样把数据带给页面
  4. 计算机软件工作总结,计算机软件培训总结及小结-工作总结
  5. 5_less中传入可变参数
  6. java8新特性——Stream流
  7. java-注解-自定义注解-注解解析
  8. 【一些好听的英文歌曲】
  9. 百度BD09加密经纬度转国测局GCJ02经纬度
  10. android 多个蓝牙连接电脑,Android BLE蓝牙多设备连接
  11. 更改计算机的主题和桌面背景,禁止更改电脑主题背景的技巧
  12. 为Android虚拟机创建SDCard
  13. android 申请移动应用的签名生成方法
  14. redis incr mysql_redis命令_INCR
  15. VB编程:数组中删除数组元素-27
  16. html5--2.9新的布局元素(5)-hgroup/address
  17. 162天,100期Java项目终于更完了!
  18. 上海亚商投顾:沪指收跌0.62% 东数西算板块逆势领涨
  19. 未来已来!28年后,人类将永生不死,但代价是...
  20. 通过OPC网关快速实现采集PLC数据到OPC Server服务器

热门文章

  1. centos7.9编译安装构建系统gn+ninja
  2. Windows xp 落选logo方案首次公开!居然设计了这么多版本!
  3. 基于c扩展框架php,深入Php底层,用c为php编写拓展
  4. 骨传导耳机是什么意思?骨传导耳机工作原理是什么
  5. java里面case是什么意思_什么是Java中的switch case语句以及如何使用它?
  6. 1-100之间的随机数小游戏
  7. Python 樱花树
  8. 当社群本身具备活跃性,我们应该做什么
  9. 国信证券金色阳光版修改增强,还有闪电下单爽啊
  10. ElementUI el-table合并单元格