mysql基础——在单一表格中检索数据

138 阅读2分钟

1.选择子句 SELECT

作用:用于从表中选取数据。
语法:SELECT 列名称 FROM 表名称
实例:
a.查询表中的单个字段

SELECT state
FROM customers

b.查询表中的多个字段

SELECT first_name,last_name,points
FROM customers

c.查询表中的所有字段

SELECT *
FROM customers;

d.起别名(AS可省略)

SELECT first_name AS 姓氏,last_name AS 名字,points 积分
FROM customers

e.去重(DISTINCT)

SELECT DISTINCT state
FROM customers

f.加号的作用(仅有一个功能,运算符)

SELECT first_name,last_name,points,points + 10 AS discount_factor
FROM customers

2.条件查询 Where

语法:SELECT 列名称 FROM 表名称 WHERE 筛选条件
实例:
a.按条件表达式(>, < ,= ,>= ,<= ,!=,<>)
注意:可以对日期或者文本进行比较运算

SELECT *
FROM customers
WHERE birth_date > '1990-01-01'

b.按逻辑运算符(AND,OR,NOT)
注意:AND优先级高于OR

-- AND用法
SELECT *
FROM customers
WHERE birth_date > '1990-01-01' AND points > 1000
-- OR用法
SELECT *
FROM customers
WHERE birth_date > '1990-01-01' OR points > 1000
-- NOT用法 
SELECT *
FROM customers
WHERE NOT (birth_date > '1990-01-01' OR points > 1000)

c.IN运算符
作用:用于判断某字段的值是否属于in列表中的某一项

SELECT *
FROM customers
WHERE state IN ('VA','FL','GA')

d.BETWEEN运算符
作用:表达范围
注意:闭区间,包含两端点

SELECT *
FROM customers
WHERE points BETWEEN 1000 AND 3000

e.LIKE运算符(_代表单个字符,%代表任意字符)
作用:模糊查找,查找具有某种模式的字符串的记录/行

SELECT *
FROM customers
WHERE last_name LIKE '%B_'

f.REGEXP运算符
正则表达式,在搜索字符串方面更为强大,可搜索更复杂的模板

image.png

SELECT *
FROM customers
WHERE  last_name REGEXP '^field|mac|rose$'
SELECT *
FROM customers
WHERE  last_name REGEXP '[a-h]e'

g.IS NULL运算符
作用:找出空值,找出有某些属性缺失的记录

SELECT *
FROM customers 
WHERE phone IS NULL

3.ORDER BY子句

作用:排序
语法:
SELECT 列名称
FROM 表名称
WHERE 筛选条件
ORDER BY 排序列表[asc/desc]

SELECT*
FROM order_items
WHERE order_id = 2
ORDER BY quantity * unit_price DESC

4.LIMIT子句

作用:限制返回结果的记录数量,"前N个 或 M个后的前N个 "
语法:
SELECT 列名称
FROM 表名称
LIMIT N/M,N

SELECT *
FROM customers 
ORDER BY points DESC
LIMIT 3