常用SQL语句大全

本文详细介绍了SQL语言,涵盖了数据操作、函数应用、高级查询技巧(如连接查询、子查询、事务处理等)、数据库对象如视图、存储过程、索引和触发器,以及一个复合SQL语句示例。
摘要由CSDN通过智能技术生成

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 对总金额进行降序排序。

转载请注明来源

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梅先sheng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值