SQL 简介
发布人:shili8
发布时间:2025-02-20 20:55
阅读次数:0
**SQL 简介**
SQL(Structured Query Language)是一种专门用于管理关系数据库的语言。它允许用户创建、修改和查询数据库中的数据。SQL 是一种标准化的语言,广泛应用于各种数据库管理系统中。
**SQL 的历史**
SQL 的发展始于1970 年代,当时 Edgar F. Codd 在 IBM 研究院提出了关系模型的概念。这一模型将数据存储在表格中,每个表格代表一个实体或概念,通过关联这些表格可以实现复杂的查询和操作。
**SQL 的特点**
1. **标准化**: SQL 是一种标准化的语言,广泛应用于各种数据库管理系统中。
2. **结构化**: SQL 使用结构化的语法来定义数据的组织方式。
3. **查询**: SQL 允许用户通过使用 SELECT语句来检索特定的数据。
4. **修改**: SQL 允许用户通过使用 INSERT、UPDATE 和 DELETE语句来修改数据库中的数据。
**SQL 的基本概念**
1. **表格**: 表格是关系数据库中最基本的结构单位,每个表格代表一个实体或概念。
2. **行**: 行是表格中的一条记录,包含多个列。
3. **列**: 列是表格中的一列数据,通常代表一个特定的属性或字段。
4. **键**: 键是用于唯一标识一条记录的值。
**SQL 的基本语法**
1. **SELECT语句**: SELECT语句用于检索特定的数据。
sqlSELECT column_name FROM table_name;
2. **FROM 子句**: FROM 子句指定要从哪个表格中检索数据。
sqlSELECT * FROM customers;
3. **WHERE 子句**: WHERE 子句用于过滤结果集,仅返回满足特定条件的记录。
sqlSELECT * FROM customers WHERE country='USA';
4. **INSERT语句**: INSERT语句用于向表格中插入新数据。
sqlINSERT INTO customers (name, email) VALUES ('John Doe', 'john@example.com');
5. **UPDATE语句**: UPDATE语句用于修改已有的记录。
sqlUPDATE customers SET name='Jane Doe' WHERE id=1;
6. **DELETE语句**: DELETE语句用于删除一条或多条记录。
sqlDELETE FROM customers WHERE id=1;
**SQL 的常用函数**
1. **NOW() 函数**: NOW() 函数返回当前日期和时间。
sqlSELECT NOW();
2. **RAND() 函数**: RAND() 函数返回一个随机数。
sqlSELECT RAND();
3. **UPPER() 函数**: UPPER() 函数将字符串转换为大写。
sqlSELECT UPPER('hello');
4. **LOWER() 函数**: LOWER() 函数将字符串转换为小写。
sqlSELECT LOWER('HELLO');
**SQL 的常用聚合函数**
1. **SUM() 函数**: SUM() 函数返回一列数据的总和。
sqlSELECT SUM(price) FROM orders;
2. **AVG() 函数**: AVG() 函数返回一列数据的平均值。
sqlSELECT AVG(price) FROM orders;
3. **MAX() 函数**: MAX() 函数返回一列数据中的最大值。
sqlSELECT MAX(price) FROM orders;
4. **MIN() 函数**: MIN() 函数返回一列数据中的最小值。
sqlSELECT MIN(price) FROM orders;
**SQL 的常用连接**
1. **INNER JOIN**: INNER JOIN用于将两个表格的匹配记录合并起来。
sqlSELECT * FROM customers INNER JOIN orders ON customers.id=orders.customer_id;
2. **LEFT JOIN**: LEFT JOIN用于将左边表格中的所有记录与右边表格中匹配的记录合并起来。
sqlSELECT * FROM customers LEFT JOIN orders ON customers.id=orders.customer_id;
3. **RIGHT JOIN**: RIGHT JOIN用于将右边表格中的所有记录与左边表格中匹配的记录合并起来。
sqlSELECT * FROM customers RIGHT JOIN orders ON customers.id=orders.customer_id;
**SQL 的常用子查询**
1. **IN 子查询**: IN 子查询用于检索满足特定条件的记录。
sqlSELECT * FROM customers WHERE id IN (SELECT customer_id FROM orders);
2. **EXISTS 子查询**: EXISTS 子查询用于检索满足特定条件的记录。
sqlSELECT * FROM customers WHERE EXISTS (SELECT1 FROM orders WHERE orders.customer_id=customers.id);
**SQL 的常用视图**
1. **CREATE VIEW语句**: CREATE VIEW语句用于创建一个视图。
sqlCREATE VIEW customer_orders AS SELECT * FROM customers INNER JOIN orders ON customers.id=orders.customer_id;
2. **DROP VIEW语句**: DROP VIEW语句用于删除一个视图。
sqlDROP VIEW customer_orders;
**SQL 的常用索引**
1. **CREATE INDEX语句**: CREATE INDEX语句用于创建一个索引。
sqlCREATE INDEX idx_name ON customers (name);
2. **DROP INDEX语句**: DROP INDEX语句用于删除一个索引。
sqlDROP INDEX idx_name;
**SQL 的常用触发器**
1. **CREATE TRIGGER语句**: CREATE TRIGGER语句用于创建一个触发器。
sqlCREATE TRIGGER trg_insert BEFORE INSERT ON customers FOR EACH ROW SET NEW.name=UPPER(NEW.name);
2. **DROP TRIGGER语句**: DROP TRIGGER语句用于删除一个触发器。
sqlDROP TRIGGER trg_insert;
**SQL 的常用存储过程**
1. **CREATE PROCEDURE语句**: CREATE PROCEDURE语句用于创建一个存储过程。
sqlCREATE PROCEDURE sp_get_customers AS SELECT * FROM customers;
2. **EXECUTE语句**: EXECUTE语句用于执行一个存储过程。
sqlEXECUTE sp_get_customers;
**SQL 的常用函数**
1. **CREATE FUNCTION语句**: CREATE FUNCTION语句用于创建一个函数。
sqlCREATE FUNCTION fn_get_max AS SELECT MAX(price) FROM orders;
2. **CALL语句**: CALL语句用于执行一个函数。
sqlCALL fn_get_max();
**SQL 的常用聚合函数**
1. **SUM() 函数**: SUM() 函数返回一列数据的总和。
sqlSELECT SUM(price) FROM orders;
2. **AVG() 函数**: AVG() 函数返回一列数据的平均值。
sqlSELECT AVG(price) FROM orders;
3. **MAX() 函数**: MAX() 函数返回一列数据中的最大值。
sqlSELECT MAX(price) FROM orders;
4. **MIN() 函数**: MIN() 函数返回一列数据中的最小值。
sqlSELECT MIN(price) FROM orders;
**SQL 的常用连接**
1. **INNER JOIN**: INNER JOIN用于将两个表格的匹配记录合并起来。
sqlSELECT * FROM customers INNER JOIN orders ON customers.id=orders.customer_id;
2. **LEFT JOIN**: LEFT JOIN用于将左边表格中的所有记录与右边表格中匹配的记录合并起来。
sqlSELECT * FROM customers LEFT JOIN orders ON customers.id=orders.customer_id;
3. **RIGHT JOIN**: RIGHT JOIN用于将右边表格中的所有记录与左边表格中匹配的记录合并起来。
sqlSELECT * FROM customers RIGHT JOIN orders ON customers.id=orders.customer_id;
**SQL 的常用子查询**
1. **IN 子查询**: IN 子查询用于检索满足特定条件的记录。
sqlSELECT * FROM customers WHERE id IN (SELECT customer_id FROM orders);
2. **EXISTS 子查询**: EXISTS 子查询用于检索满足特定条件的记录。
sqlSELECT * FROM customers WHERE EXISTS (SELECT1 FROM orders WHERE orders.customer_id=customers.id);
**SQL 的常用视图**
1. **CREATE VIEW语句**: CREATE VIEW语句用于创建一个视图。
sqlCREATE VIEW customer_orders AS SELECT * FROM customers INNER JOIN orders ON customers.id=orders.customer_id;
2. **DROP VIEW语句**: DROP VIEW语句用于删除一个视图。
sqlDROP VIEW customer_orders;
**SQL 的常用索引**
1. **CREATE INDEX语句**: CREATE INDEX语句用于创建一个索引。
sqlCREATE INDEX idx_name ON customers (name);
2. **DROP INDEX语句**: DROP INDEX语句用于删除一个索引。
sqlDROP INDEX idx_name;
**SQL 的常用触发器**
1