赞
踩
SQL(Structured Query Language)是用于管理和操作关系型数据库的标准化语言。SQL语句可以分为几类,包括数据查询、数据更新、数据插入、数据删除等。此外,SQL还提供了各种函数,用于在查询中进行计算、转换和处理数据。
基本SQL语句:
1.查询数据:
SELECT column1, column2 FROM table_name WHERE condition;
2.插入数据:
INSERT INTO table_name (column1, column2) VALUES (value1, value2);
3.更新数据:
UPDATE table_name SET column1 = value1 WHERE condition;
4.删除数据:
DELETE FROM table_name WHERE condition;
5.创建表:
sql
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
…
);
常用SQL函数:
1.聚合函数:
COUNT(): 计算行数
SUM(): 求和
AVG(): 平均值
MIN(): 最小值
MAX(): 最大值
SELECT COUNT(column), SUM(column), AVG(column), MIN(column), MAX(column) FROM table_name;
2.字符串函数:
CONCAT(): 字符串拼接
SUBSTRING(): 截取子字符串
UPPER(): 转换为大写
LOWER(): 转换为小写
LENGTH(): 字符串长度
SELECT CONCAT(first_name, ’ ', last_name), SUBSTRING(column, 1, 5), UPPER(column), LOWER(column), LENGTH(column) FROM table_name;
3.日期和时间函数:
NOW(): 当前日期和时间
DATE_FORMAT(): 格式化日期
DATEDIFF(): 计算日期差
DATE_ADD(): 日期加法
SELECT NOW(), DATE_FORMAT(date_column, ‘%Y-%m-%d’), DATEDIFF(end_date, start_date), DATE_ADD(date_column, INTERVAL 1 DAY) FROM table_name;
高级SQL语句及其示例:
1.连接查询(JOIN):
内连接(INNER JOIN)
左连接(LEFT JOIN)
右连接(RIGHT JOIN)
全连接(FULL JOIN)
SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;
2.子查询(Subquery):
标量子查询
行子查询
列子查询
SELECT column1 FROM table1 WHERE column2 = (SELECT column3 FROM table2 WHERE condition);
3.事务处理(Transaction):
开始事务(BEGIN TRANSACTION)
提交事务(COMMIT)
回滚事务(ROLLBACK)
BEGIN TRANSACTION;
UPDATE table1 SET column1 = value1 WHERE condition;
INSERT INTO table2 (column1, column2) VALUES (value1, value2);
COMMIT;
4.视图(View):
创建视图(CREATE VIEW)
更新视图(ALTER VIEW)
删除视图(DROP VIEW)
CREATE VIEW view_name AS SELECT column1, column2 FROM table WHERE condition;
5.存储过程(Stored Procedure):
创建存储过程(CREATE PROCEDURE)
调用存储过程(CALL)
删除存储过程(DROP PROCEDURE)
CREATE PROCEDURE procedure_name
AS
BEGIN
– SQL statements
END;
CALL procedure_name();
6.索引(Index):
创建索引(CREATE INDEX)
删除索引(DROP INDEX)
CREATE INDEX index_name ON table_name (column_name);
7.触发器(Trigger):
创建触发器(CREATE TRIGGER)
删除触发器(DROP TRIGGER)
CREATE TRIGGER trigger_name
AFTER INSERT ON table_name
FOR EACH ROW
BEGIN
– SQL statements
END;
复合SQL语句
通常是指包含多个子查询、连接查询、聚合函数等复杂逻辑的SQL语句。下面是一个复合SQL语句的示例,该示例涉及多个表的连接、子查询和聚合函数的使用:
假设有两个表:orders(订单信息)和order_items(订单商品信息),它们之间存在关联,order_items表包含了订单的详细商品信息。
SELECT
o.order_id,
o.order_date,
c.customer_name,
SUM(oi.quantity * oi.unit_price) AS total_order_amount
FROM
orders o
INNER JOIN
customers c ON o.customer_id = c.customer_id
INNER JOIN
(
SELECT
order_id,
product_id,
quantity,
unit_price
FROM
order_items
) oi ON o.order_id = oi.order_id
WHERE
o.order_date BETWEEN ‘2023-01-01’ AND ‘2023-12-31’
GROUP BY
o.order_id,
o.order_date,
c.customer_name
HAVING
SUM(oi.quantity * oi.unit_price) > 1000
ORDER BY
total_order_amount DESC;
这个复合SQL语句的示例执行以下操作:
1.从 orders 表中选择订单信息,连接 customers 表以获取客户信息。
2.通过内连接 order_items 表,获取订单商品信息。
3.使用子查询从 order_items 表中获取商品信息。
4.使用 SUM() 聚合函数计算每个订单的总金额。
5.使用 WHERE 子句过滤订单日期在2023年之间的订单。
6.使用 GROUP BY 对订单进行分组,按照订单ID、订单日期和客户名称进行分组。
7.使用 HAVING 子句过滤出总金额大于1000的订单。
8.使用 ORDER BY 对总金额进行降序排序。
转载请注明来源
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。