【MySQL】数据库操作

news2025/2/27 14:07:36

文章目录

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

3.3 查看数据表结构

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

SHOW CREATE TABLE dept80;

在这里插入图片描述
在这里插入图片描述

3、修改表

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

3.1 添加列 ALTERT TABLE ADD

# 语法格式如下:
ALTER TABLE 表名 ADDCOLUMN】 字段名 字段类型 【FIRST|AFTER 字段名】;

# 举例:
ALTER TABLE dept80 
ADD job_id VARCHAR(15);

3.2 修改列 ALTER TABLE MODIFY

  • 可以修改列的数据类型,长度、默认值和位置
# 修改字段数据类型、长度、默认值、位置的语法格式如下:
ALTER TABLE 表名 MODIFYCOLUMN】 字段名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 表名 DROPCOLUMN】字段名

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;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/347303.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文讲透丨如何破解安全应用容器架构的17大挑战!

众所皆知,云计算/云原生技术因能极大地提高云上资源利用率以及应用交付效率而被广泛采用。然而,云计算/云原生技术的发展也让用户遭受了更多高级威胁与攻击。如何构建有效的云原生安全管理体系应对层出不穷的安全威胁这一问题也一直受到千行百业用户的关…

Keras深度学习实战——使用深度Q学习进行SpaceInvaders游戏

Keras深度学习实战——使用深度Q学习进行SpaceInvaders游戏 0. 前言1. 问题与模型分析2. 使用深度 Q 学习进行 SpaceInvaders 游戏相关链接0. 前言 在《深度Q学习算法详解》一节中,我们使用了深度 Q 学习来进行 Cart-Pole 游戏。在本节中,我们将利用深度Q学习来玩“太空侵略…

CHAPTER 2 Zabbix界面操作

Zabbix界面操作2.1 Zabbix界面操作1.zabbix的web界面安装2.添加监控信息3.查看监控内容4.查看图像2.2 自定义监控与监控报警1.自定义监控1.1 说明1.2 预备知识2.实现自定义监控2.1 自定义语法2.2 agent注册2.3 在server端注册(web操作)2.4 查看监控图形2.3 监控报警1.第三方报警…

hive实现oracle merge into matched and not matched

create database cc_test; use cc_test; table1 可以理解为记录学生最好成绩的表。 table2可以理解为每次学生的考试成绩。 我们要始终更新table1的数据 create table table1 (id string ,maxScore string );create table table2 (id string ,score string );insert into table…

用于汽车传感器的混合点云语义压缩:性能评估

Hybrid Point Cloud Semantic Compression for Automotive Sensors: A Performance Evaluation https://arxiv.org/pdf/2103.03819.pdf 在自动驾驶中,车辆与车辆之间的信息共享起着重要作用。在所有传感器中,激光雷达产生的3D点云的数据量通常较高。因…

设计模式实践示例

以下是我针对自己所掌握的知识出的设计模式题目,有不足的地方欢迎指摘。 一、设计模式原则 设计模式原则有哪些? 1.开闭原则:对扩展开放,对修改关闭 2.接口隔离原则:每个接口只完成单独业务的部分,不要将…

设计模式之工厂模式(C++)

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 一、工厂模式是什么? 工厂模式是一种创建型的软件设计模式。定义一个用于创建对象的工厂接口,并让工厂子类…

MybatisPlus------application文件配置新增SQL打印以及测试类编写(二)

MybatisPlus------application文件配置新增SQL语句打印以及测试类编写 增加日志打印,具体打印执行的SQL语句。 操作: 只需在application配置文件中增加如下配置: mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout…

快递员配送手机卡,要求当面激活有“猫腻”吗?

咨询:快递员配送手机卡,要求当面激活有“猫腻”吗?有些朋友可能在网上看到了一些关于快递小哥激活会采集信息的文章,所以觉得让快递小哥激活流量卡并不安全,其实,哪有这么多的套路,只要你自己在…

一文看懂Java语言与Java生态圈

Java语言与Java生态圈 1、Oracle JDK与Open JDK之间的关系 Oracle JDK Java最早是由SUN公司发明,Oracle JDK之前叫SUN JDK,显而易见,这是在2009年Oracle收购SUN公司之前,收购之后被名为Oracle JDK,实际上&#xff0…

【图文教程】笔记本总是自动关机怎么办?win11自动关机问题解决方案

使用场景及环境: 日常使用,代码、文档使用。 系统:win11、win10、win8、win7笔记本都可通用 笔记本:联想ThinkPad E450 笔记本相关性能参数 设备名称 XXX 处理器 Intel Core™ i3-8145U CPU 2.10GHz 2.30 GHz 机带 RAM 8.00 GB (…

JavaEE——MyBatis的简单介绍和使用

MyBatis是什么 MyBatis是一个支持普通SQL查询,存储过程以及高级映射的持久层框架,他消除了几乎所有的JDBC代码和参数的手动设置以及对结果集的检索,使用简单的XML或注解进行配置和原始映射,将接口和Java的POJO映射成数据库中的记…

StarUML画流程图

1. 前言 工作中,在写文档总结时,对于需求的理解总有一个重要的环节,那就是画流程图,Ubuntu下我推荐使用StartUML 来画,嘎嘎好用,如果不知道这个工具,请参考笔者这篇文章下载安装: U…

关于springboot读取配置类,使用@Autowired自动注入为null的问题

问题 之前写了一个配置类,读取config.yml配置文件里写好的阿里云oss的一些参数配置。配置类读取并无问题,但是在另一个普通类里自动注入该配置类时,引用配置类属性却报NullPointer异常。然后终于发现问题原因了。 代码 1. 配置文件 appli…

GeoTools:Shapefile创建

在上一篇文章《GeoTools:Feature&Shapefile之CRUD操作》中,介绍了基于GeoTools的Shapefile文件CRUD基本操作,那么,能否使用GeoTools创建Shapefile文件呢?答案是可以的。以下,我们将深入讨论如何实现。 …

零基础机器学习做游戏辅助第十二课--原神自动钓鱼(二)

一、模拟训练环境 上节课我们已经能够判断人物的钓鱼状态,接下来我们就需要对鱼儿上钩后的那个受力框进行DQN训练。 方案有两个: 使用卷积神经网络直接输入图像对网络进行训练。使用普通网络,自己写代码模拟出图像中三个点的动态并把值给神经网络进行训练。这里我们选用第二…

IB数学课程有哪些异同?如何选课?

自从IBDP在2019年进行数学课程改革后,许多IB小伙伴们就不知该如何选课了……改革后的IB数学课程包括4门课程,也就是:● Mathematics: analysis and approaches SL & HL (first assessment 2021)● Mathematics: applications and interpr…

科技云报道:“吞金兽”ChatGPT背后:AI算力告急!

科技云报道原创。 近两个月来,全世界的网友们都在兴致勃勃的“调教”ChatGPT,但第一个受不了的却是ChatGPT的所有者。 为了更长远的发展,OpenAI宣布了付费订阅版ChatGPT Plus,每月收费20美元。 虽然OpenAI表示,将持…

Monorepo or 物料市场?结合工作实际情况对公司现有前端体系的思考

前言 去年年中基于若依vue前端框架进行了改造,加上后端的配合,我写了一套脚手架和项目中后台模板。中后台模板中包含了许多基础代码,比如登录/注册、路由、权限等等相关功能。这个中后台模板是基于我们实际开发定制的,所以跟通用…

SpringBoot——配置文件

项目中有许多公共使用的变量,例如端口号,连接数据库的配置,还有我们自己创建的变量,这些可以放到SpringBoot的配置文件中统一调配使用 properties 基本语法格式: keyvalue例如配置项目的端口号为8888: …