MYSQL 基础查询和条件查询,点击左边目录直接跳转到对应题目查看。
1、查询结果限制返回行数
SELECT
device_id
FROM
user_profile
ORDER BY
id LIMIT 2
2、将查询后的列重新命名
SELECT
device_id AS user_infos_example
FROM
user_profile
LIMIT
2
3、查询学校是北大的学生信息
SELECT
device_id,university
FROM
user_profile
WHERE
university='北京大学'
4、查找年龄大于24岁的用户信息
SELECT
device_id,gender,age,university
FROM
user_profile
WHERE
age>24
5、查找某个年龄段的用户信息
SELECT
device_id,
gender,
age
FROM
user_profile
WHERE
age >= 20
AND age <= 23
SELECT
device_id,
gender,
age
FROM
user_profile
WHERE
age between 20 AND 23
两种都行。
6、查找除复旦大学的用户信息
SELECT
device_id,
gender,
age,
university
FROM
user_profile
WHERE
university NOT IN ('复旦大学')
7、用where过滤空值练习
SELECT
device_id,
gender,
age,
university
FROM
user_profile
WHERE
age IS NOT NULL
8、高级操作符练习(1)(WHERE AND)
SELECT
device_id,
gender,
age,
university,
gpa
FROM
user_profile
WHERE
gender = 'male'
and gpa > 3.5
9、高级操作符练习(2)(WHERE OR)
SELECT
device_id,
gender,
age,
university,
gpa
FROM
user_profile
WHERE
university = '北京大学'
OR gpa > 3.7
10、WHERE IN
SELECT
device_id,
gender,
age,
university,
gpa
FROM
user_profile
WHERE
university IN ('北京大学', '复旦大学', '山东大学')
11、操作符混合应用(多复合条件)
SELECT
device_id,
gender,
age,
university,
gpa
FROM
user_profile
WHERE
(
university = '山东大学'
AND gpa > 3.5
)
OR (
university = '复旦大学'
AND gpa > 3.8
)
12、查看学校名称中含北京的用户
先附上字符匹配规则:
一般形式为:
列名 [NOT ] LIKE
匹配串中可包含如下四种通配符:
_:匹配任意一个字符;
%:匹配0个或多个字符;
[ ]:匹配[ ]中的任意一个字符(若要比较的字符是连续的,则可以用连字符“-”表 达 );
[^ ]:不匹配[ ]中的任意一个字符。例23.查询学生表中姓‘张’的学生的详细信息。
1
SELECT
*
FROM
学生表
WHERE
姓名
LIKE
‘张%’
例24.查询姓“张”且名字是3个字的学生姓名。
1
SELECT
*
FROM
学生表
WHERE
姓名
LIKE
'张__’
如果把姓名列的类型改为nchar(20),在SQL Server 2012中执行没有结果。原因是姓名列的类型是char(20),当姓名少于20个汉字时,系统在存储这些数据时自动在后边补空格,空格作为一个字符,也参加LIKE的比较。可以用rtrim()去掉右空格。
1
SELECT
*
FROM
学生表
WHERE
rtrim(姓名)
LIKE
'张__'
例25.查询学生表中姓‘张’、姓‘李’和姓‘刘’的学生的情况。
1
SELECT
*
FROM
学生表
WHERE
姓名
LIKE
'[张李刘]%’
例26.查询学生表表中名字的第2个字为“小”或“大”的学生的姓名和学号。
1
SELECT
姓名,学号
FROM
学生表
WHERE
姓名
LIKE
'_[小大]%'
例27.查询学生表中所有不姓“刘”的学生。
1
SELECT
姓名
FROM
学生
WHERE
姓名
NOT
LIKE
'刘%’
例28.从学生表表中查询学号的最后一位不是2、3、5的学生信息。
1
SELECT
*
FROM
学生表
WHERE
学号
LIKE
'%[^235]'
SELECT
device_id,
age,
university
FROM
user_profile
WHERE
university LIKE '%北京%'