MySQL INSERT CRTATE DELETE DORP UPDATE WHERE 的用法

MySQL INSERT CRTATE DELETE DORP UPDATE WHERE 的用法

sql 复制代码
-- 创建数据库
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语句的一些关键注意事项和最佳实践。在实际应用中,还需要根据具体情况调整策略,比如考虑安全性、性能优化以及数据完整性等因素。

相关推荐
feifeigo1231 小时前
升级到MySQL 8.4,MySQL启动报错:io_setup() failed with EAGAIN
数据库·mysql·adb
火龙谷2 小时前
【nosql】有哪些非关系型数据库?
数据库·nosql
焱焱枫3 小时前
Oracle获取执行计划之10046 技术详解
数据库·oracle
qq_392397125 小时前
Redis常用操作
数据库·redis·wpf
A__tao6 小时前
一键将 SQL 转为 Java 实体类,全面支持 MySQL / PostgreSQL / Oracle!
java·sql·mysql
一只fish6 小时前
MySQL 8.0 OCP 1Z0-908 题目解析(17)
数据库·mysql
花好月圆春祺夏安7 小时前
基于odoo17的设计模式详解---装饰模式
数据库·python·设计模式
A__tao7 小时前
SQL 转 Java 实体类工具
java·数据库·sql
m0_653031367 小时前
腾讯云认证考试报名 - TDSQL数据库交付运维专家(TCCE PostgreSQL版)
运维·数据库·腾讯云
叁沐8 小时前
MySQL 06 全局锁和表锁:给表加个字段怎么有这么多阻碍?
mysql