返回

一网打尽!MySQL、Oracle 实用 SQL 大全:建表、视图、CRUD、条件查询

后端

数据库操作指南:全面掌握 CRUD 和查询

一、数据库基本操作

1. 建表:

想象一下数据库就像一个巨大的存储库,里面存放着海量数据。要管理这些数据,我们需要创建表格,就像文件夹一样,用来分类和组织信息。

在 MySQL 和 Oracle 中,建立表格的语法大同小异:

CREATE TABLE table_name (
  column_name data_type [NOT NULL] [DEFAULT default_value]
);

例如,要创建名为 users 的表格来存储用户信息,可以使用:

CREATE TABLE users (
  id INT NOT NULL AUTO_INCREMENT,
  name VARCHAR(255) NOT NULL,
  email VARCHAR(255) UNIQUE,
  password VARCHAR(255) NOT NULL
);

2. 建视图:

有时,我们需要从现有的表格中创建虚拟视图,只显示部分数据或应用过滤条件。视图就像一个透明窗户,让我们只看到我们感兴趣的信息。

在 MySQL 和 Oracle 中,创建视图的语法如下:

CREATE VIEW view_name AS
SELECT column_list
FROM table_name
WHERE condition;

例如,要创建一个名为 active_users 的视图,仅显示 users 表中活跃的用户,可以使用:

CREATE VIEW active_users AS
SELECT *
FROM users
WHERE is_active = 1;

二、数据增删改查(CRUD)

1. 数据插入:

就像把文件添加到文件夹一样,我们可以向数据库表格中插入数据记录。

在 MySQL 和 Oracle 中,插入数据的语法如下:

INSERT INTO table_name (column_list)
VALUES (value_list);

例如,要向 users 表中插入一条记录,可以使用:

INSERT INTO users (name, email, password)
VALUES ('John Doe', 'john.doe@example.com', 'password123');

2. 数据更新:

随着时间的推移,数据需要更新。就像修改文件夹中的文件一样,我们可以更新数据库记录。

在 MySQL 和 Oracle 中,更新数据的语法如下:

UPDATE table_name
SET column_name = new_value
WHERE condition;

例如,要更新 users 表中 John Doe 的电子邮件地址,可以使用:

UPDATE users
SET email = 'new.email@example.com'
WHERE name = 'John Doe';

3. 数据删除:

有时,我们需要从文件夹中删除不需要的文件,从数据库中删除记录也是如此。

在 MySQL 和 Oracle 中,删除数据的语法如下:

DELETE FROM table_name
WHERE condition;

例如,要从 users 表中删除 John Doe 的记录,可以使用:

DELETE FROM users
WHERE name = 'John Doe';

4. 数据查询:

就像搜索文件夹中的文件一样,我们可以查询数据库记录。

在 MySQL 和 Oracle 中,查询数据的语法如下:

SELECT column_list
FROM table_name
WHERE condition;

例如,要查找 users 表中所有名为 "John" 的用户,可以使用:

SELECT *
FROM users
WHERE name LIKE '%John%';

三、常用条件查询

1. 比较运算符:

这些运算符就像数学符号,让我们比较数据值。

  • =:等于
  • !=:不等于
  • <:小于
  • >:大于
  • <=:小于等于
  • >=:大于等于

2. 逻辑运算符:

这些运算符就像逻辑门,让我们组合条件。

  • AND:逻辑与,两个条件都必须为真
  • OR:逻辑或,两个条件中的一个为真即可
  • NOT:逻辑非,条件为假

3. 通配符:

这些符号就像百搭符号,让我们匹配数据值的一部分。

  • %:匹配任何字符序列
  • _:匹配单个字符

4. 函数:

这些函数就像内置工具,让我们处理数据并提取信息。

  • COUNT():计算行数
  • SUM():计算总和
  • AVG():计算平均值
  • MAX():计算最大值
  • MIN():计算最小值

5. 子查询:

这些查询嵌套在主查询中,就像俄罗斯套娃一样,让我们基于另一个查询的结果进行过滤。

在 MySQL 和 Oracle 中,子查询的语法如下:

SELECT column_list
FROM table_name
WHERE condition IN (
  SELECT column_name
  FROM another_table
  WHERE condition
);

总结

掌握数据库基本操作和条件查询对于有效管理数据至关重要。通过了解建表、视图、CRUD 操作和常用查询技巧,我们可以轻松地组织、访问和修改信息。

常见问题解答

  1. 为什么使用数据库而不是电子表格或文本文件?

    • 数据库更结构化,可以存储和管理海量数据。
    • 数据库提供 ACID(原子性、一致性、隔离性和持久性)保证,确保数据的完整性和可靠性。
    • 数据库支持复杂查询,让数据检索和处理更有效。
  2. 什么是主键和外键?

    • 主键是唯一标识表格中每条记录的列。
    • 外键是在一个表格中引用另一个表格主键的列,用于建立表格之间的关系。
  3. 如何优化数据库查询?

    • 使用索引对经常查询的列进行索引,以提高检索速度。
    • 避免使用模糊查询,如 LIKE %value%
    • 尽可能使用子查询而不是连接,以减少数据读取量。
  4. 什么是事务?

    • 事务是一系列操作,要么全部执行成功,要么全部回滚。
    • 事务确保数据的完整性,防止部分更新造成数据不一致。
  5. 如何保护数据库免受安全攻击?

    • 使用强密码和多因素身份验证。
    • 定期备份数据库并将其存储在安全位置。
    • 监视数据库活动并使用入侵检测系统。