一网打尽!MySQL、Oracle 实用 SQL 大全:建表、视图、CRUD、条件查询
2023-04-13 15:55:34
数据库操作指南:全面掌握 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 操作和常用查询技巧,我们可以轻松地组织、访问和修改信息。
常见问题解答
-
为什么使用数据库而不是电子表格或文本文件?
- 数据库更结构化,可以存储和管理海量数据。
- 数据库提供 ACID(原子性、一致性、隔离性和持久性)保证,确保数据的完整性和可靠性。
- 数据库支持复杂查询,让数据检索和处理更有效。
-
什么是主键和外键?
- 主键是唯一标识表格中每条记录的列。
- 外键是在一个表格中引用另一个表格主键的列,用于建立表格之间的关系。
-
如何优化数据库查询?
- 使用索引对经常查询的列进行索引,以提高检索速度。
- 避免使用模糊查询,如
LIKE %value%
。 - 尽可能使用子查询而不是连接,以减少数据读取量。
-
什么是事务?
- 事务是一系列操作,要么全部执行成功,要么全部回滚。
- 事务确保数据的完整性,防止部分更新造成数据不一致。
-
如何保护数据库免受安全攻击?
- 使用强密码和多因素身份验证。
- 定期备份数据库并将其存储在安全位置。
- 监视数据库活动并使用入侵检测系统。