MySQL INSERT CRTATE DELETE DORP UPDATE WHERE 的用法

devtools/2024/11/27 16:12:32/

MySQL INSERT CRTATE DELETE DORP UPDATE WHERE 的用法

 

-- 创建数据库
CREATE DATABASE example_db;-- 使用数据库
USE example_db;-- 创建表
CREATE TABLE employees (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100),position VARCHAR(50),salary DECIMAL(10, 2)
);-- 插入数据
INSERT INTO employees (name, position, salary) VALUES ('John Doe', 'Developer', 75000.00);
INSERT INTO employees (name, position, salary) VALUES ('Jane Smith', 'Manager', 85000.00);-- 查询所有员工
SELECT * FROM employees;-- 更新员工信息
UPDATE employees SET salary = 80000.00 WHERE name = 'John Doe';-- 删除特定员工
DELETE FROM employees WHERE name = 'Jane Smith';-- 删除表
DROP TABLE employees;-- 删除数据库
DROP DATABASE example_db;

 

在MySQL中,上述语句涵盖了从数据库创建到数据表的增删改查操作。下面将详细讲解这些语句的注意点和使用细节。

创建数据库

 

sql

深色版本

CREATE DATABASE example_db;
  • 字符集:在创建数据库时,可以指定字符集以确保数据存储的一致性。例如 CREATE DATABASE example_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; 这里指定了使用utf8mb4字符集和相应的排序规则

    2

  • 存在检查:为了避免尝试创建已经存在的数据库而引发错误,可以使用 IF NOT EXISTS 选项,如 CREATE DATABASE IF NOT EXISTS example_db;

    3

使用数据库

 

sql

深色版本

USE example_db;
  • 确保数据库已存在,并且当前用户有权限访问该数据库。如果数据库不存在或没有权限,将会收到错误提示。

创建表

 

sql

深色版本

CREATE TABLE employees (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100),position VARCHAR(50),salary DECIMAL(10, 2)
);
  • 字段定义:每个字段都需要明确其数据类型。对于数值类型,如这里的salary,选择合适的精度和小数位数很重要。DECIMAL(10, 2)表示总共有10位数字,其中2位是小数部分。
  • 主键设置id字段被定义为自动递增的主键,这有助于唯一标识每条记录。
  • 注释:为了提高代码可读性和维护性,建议对表和字段添加注释,例如 name VARCHAR(100) COMMENT '员工姓名';

    7

  • 命名规范:表名和字段名应具有描述性,避免使用保留字,同时保持简洁

    11

插入数据

 

sql

深色版本

INSERT INTO employees (name, position, salary) VALUES ('John Doe', 'Developer', 75000.00);
  • 插入顺序:当指定了列名时,值的顺序必须与列名匹配。如果省略列名,则需要提供所有列的值。
  • 批量插入:对于大量数据的插入,可以使用多行VALUES子句或者使用INSERT...SELECT语句来提高效率

    17

  • 数据验证:确保插入的数据符合字段的数据类型要求,特别是日期和时间类型,要使用正确的格式。

查询所有员工

 

sql

深色版本

SELECT * FROM employees;
  • 性能考虑:虽然*可以方便地获取所有列,但在处理大表时,建议仅查询所需的列,以减少I/O开销

    9

  • 索引利用:如果经常执行特定查询,考虑在相关列上建立索引以加速检索过程。

更新员工信息

 

sql

深色版本

UPDATE employees SET salary = 80000.00 WHERE name = 'John Doe';
  • 条件精确性:WHERE子句必须足够具体,以防止意外更新其他不相关的记录。
  • 事务处理:对于关键业务操作,建议使用事务来保证数据的一致性和完整性。

删除特定员工

 

sql

深色版本

DELETE FROM employees WHERE name = 'Jane Smith';
  • 谨慎操作:删除操作不可逆,务必确认WHERE条件正确无误。为了安全起见,可以在执行前先用SELECT语句预览将要删除的记录。
  • 限制结果:在执行删除等危险操作时,可以加上LIMIT子句作为额外的安全措施

    7

删除表

 

sql

深色版本

DROP TABLE employees;
  • 确认操作:这是一个非常危险的操作,一旦执行,表中的所有数据将被永久删除。确保这是你想要的结果。

删除数据库

 

sql

深色版本

DROP DATABASE example_db;
  • 最终确认:删除整个数据库意味着数据库内的所有表和数据都将消失。在执行此命令之前,请确保备份了重要数据。

以上是关于这些MySQL语句的一些关键注意事项和最佳实践。在实际应用中,还需要根据具体情况调整策略,比如考虑安全性、性能优化以及数据完整性等因素。


http://www.ppmy.cn/devtools/137435.html

相关文章

OpenCV从入门到精通实战(七)——探索图像处理:自定义滤波与OpenCV卷积核

本文主要介绍如何使用Python和OpenCV库通过卷积操作来应用不同的图像滤波效果。主要分为几个步骤:图像的读取与处理、自定义卷积函数的实现、不同卷积核的应用,以及结果的展示。 卷积 在图像处理中,卷积是一种重要的操作,它通过…

计算机毕业设计Hadoop+Spark音乐推荐系统 音乐预测系统 音乐可视化大屏 音乐爬虫 HDFS hive数据仓库 机器学习 深度学习 大数据毕业设计

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

C#中面试的常见问题007

1.在EF中实现一个实体对应多个表 1. 表拆分(Table Splitting) 表拆分是指将一个实体映射到两个或多个表中的行。这通常发生在实体的属性分布在不同的表中,但这些表通过外键关联到同一个主表。在EF Core中,可以通过Fluent API来配…

44.扫雷第二部分、放置随机的雷,扫雷,炸死或成功 C语言

按照教程打完了。好几个bug都是自己打出来的。比如统计周围8个格子时,有一个各自加号填成了减号。我还以为平移了,一会显示是0一会显示是2。结果单纯的打错了。debug的时候断点放在scanf后面会顺畅一些。中间多放一些变量名方便监视。以及mine要多显示&a…

初阶数据结构之队列的实现

1 队列的定义 什么是队列呢?队列只允许在一端进行插入数据操作,在另一端进行删除数据操作。队列具有先进先出FIFO(First In First Out)的特性。 队头:删除数据的一端称为队头。 队尾:插入数据的一端称为队尾。 2 队列底层结构…

upload-labs 靶场(1~5)

免责声明 本博客文章仅供教育和研究目的使用。本文中提到的所有信息和技术均基于公开来源和合法获取的知识。本文不鼓励或支持任何非法活动,包括但不限于未经授权访问计算机系统、网络或数据。 作者对于读者使用本文中的信息所导致的任何直接或间接后果不承担任何…

【已解决】python面试、竞赛编程问题:最长递增子序列和旅行商问题(TSP)

在面试、竞赛以及实际应用中,有几个常见的问题,比如今天尝试解决的:最长递增子序列和旅行商问题(TSP)。本文针对这两个问题如何分析和求解并使用python编程实现给出了详细的步骤,供参考学习。 一、最长递增子序列问题 问题背景 一个经典的算法问题:“最长递增子序列(…

vue实现滚动条滑动到底部分页调取后端接口加载数据

一、案例效果 二、前提条件 接口返回数据 三、案例代码 子组件 const $emit defineEmits([cloneItem, updateList]);const props defineProps({rightList: {type: Array,},chartTableData: {type: Array as () > ChartListType[],},deleteChartInfo: {type: Object,}…