数据库查询
数据库查询是从数据库中检索数据的操作,通过使用不同的 SQL 语句和条件,可以实现复杂的数据检索。
一、SELECT
SELECT
语句用于从数据库中选择数据。它是 SQL 中最常用的语句之一。
基本语法:
SELECT column1, column2, ... FROM table_name;
示例:
从employees
表中选择所有列:SELECT * FROM employees;
从
employees
表中选择name
和salary
列:SELECT name, salary FROM employees;
二、WHERE
WHERE
子句用于在 SELECT
、UPDATE
、DELETE
语句中指定过滤条件。它用于提取满足指定条件的记录。
基本语法:
SELECT column1, column2, ... FROM table_name WHERE condition;
示例:
从employees
表中选择salary
大于 50000 的记录:SELECT * FROM employees WHERE salary > 50000;
从
employees
表中选择dept
为HR
的记录:SELECT * FROM employees WHERE dept = 'HR';
三、 运算符
SQL 中的运算符用于在查询中执行操作。常见的运算符包括算术运算符、比较运算符、逻辑运算符等。
算术运算符:
+
,-
,*
,/
SELECT salary + 1000 AS new_salary FROM employees;
比较运算符:
=
,<>
,>
,<
,>=
,<=
SELECT * FROM employees WHERE salary >= 60000;
逻辑运算符:
AND
,OR
,NOT
SELECT * FROM employees WHERE salary > 50000 AND dept = 'HR';
四、 函数
SQL 函数用于执行某些操作并返回结果。常见的函数包括聚合函数、字符串函数、日期函数等。
聚合函数:
COUNT()
:返回行数SELECT COUNT(*) FROM employees;
SUM()
:返回数值列的总和SELECT SUM(salary) FROM employees;
AVG()
:返回数值列的平均值SELECT AVG(salary) FROM employees;
MAX()
:返回数值列的最大值SELECT MAX(salary) FROM employees;
MIN()
:返回数值列的最小值SELECT MIN(salary) FROM employees;
字符串函数:
CONCAT()
:连接两个或多个字符串SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees;
LENGTH()
:返回字符串的长度SELECT LENGTH(name) FROM employees;
UPPER()
:将字符串转换为大写SELECT UPPER(name) FROM employees;
LOWER()
:将字符串转换为小写SELECT LOWER(name) FROM employees;
日期函数:
NOW()
:返回当前日期和时间SELECT NOW();
CURDATE()
:返回当前日期SELECT CURDATE();
YEAR()
:返回日期中的年份部分SELECT YEAR(hire_date) FROM employees;
MONTH()
:返回日期中的月份部分SELECT MONTH(hire_date) FROM employees;
DAY()
:返回日期中的天数部分SELECT DAY(hire_date) FROM employees;
举例1
CREATE TABLE orders (
order_id INT PRIMARY KEY AUTO_INCREMENT,
customer_name VARCHAR(100),
order_date DATE,
amount DECIMAL(10, 2)
);
查询操作:
选择所有订单:
SELECT * FROM orders;
选择特定列:
SELECT customer_name, amount FROM orders;
按条件过滤:
SELECT * FROM orders WHERE amount > 100;
使用聚合函数:
SELECT COUNT(*) AS total_orders FROM orders;
连接字符串:
SELECT CONCAT(customer_name, ' (', order_id, ')') AS order_info FROM orders;
日期函数:
SELECT order_id, YEAR(order_date) AS order_year FROM orders;
通过这些查询操作,我们可以从数据库中检索所需的各种信息,满足不同的业务需求。
举例2
select id
from orders
where date(ts) = '2024-06-02'
and unit_price < 20;
详细解释
select id
:- 这条语句表示我们希望从
orders
表中选择id
列的数据。
- 这条语句表示我们希望从
from orders
:- 指定查询的数据来源是
orders
表。
- 指定查询的数据来源是
where date(ts) = '2024-06-02'
:where
子句用于过滤记录,只选择那些满足条件的记录。date(ts)
函数将ts
列的时间戳值转换为日期格式。date(ts) = '2024-06-02'
这一条件确保只选择 2024-06-02的记录。
and unit_price < 20
:and
运算符用于将两个条件连接起来,表示两个条件都必须满足。unit_price < 20
这一条件确保只选择单价低于 20 的记录。
举例3
create table points(
id int primary key auto_increment,
x float,
y float
);
select id, sqrt(x^2 + y^2)
from points;
详细解释
select id, sqrt(x^2 + y^2)
:select
语句用于选择表中的数据。id
是表points
中的主键列。sqrt(x^2 + y^2)
计算每个点的模,使用平方和的平方根。sqrt
函数用于计算平方根,x^2
和y^2
分别表示 x 和 y 的平方。
from points
:- 指定数据来自
points
表。
- 指定数据来自
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。