数据库查询
数据库查询是从数据库中检索数据的操作,通过使用不同的 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
,NOTSELECT * 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
表。
文章转载自周同学带您玩AI,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




