09查询基础
1.查询和提取数据的过程
a.客户端和服务器的交互
查询结果集所有字段(列)的长度都是一样的
b.SELECT语句
SELECT col1,col2...coln
FROM table1,table2...tablen
[WHERE condition] # 查询条件
[ORDER BY order_list[ASC|DESC]] # 对查询结果进行排序
[GROUP BY group_by_list] # 根据字段对查询结果进行分组统计
[HAVING condition] # 以聚类函数的统计结果作为查询条件
注:
2.简单查询
a.查询表的全部行和列
语法一:SELECT 所有的列 FROM table_name
语法二:SELECT * FROM table_name
示例:查询玩家表的中全部的列
SELECT user_name,user_qq,user_sex,user_mobile,user_birthday
FROM users
b.查询表的部分列
SELECT 部分列 FROM table_name
c.别名的使用
作用:在显示查询结果时,修改显示的字段名称(数据库内没改)
语法一:SELECT old_name AS new_name,old_name2 AS new_name2...
FROM table_name
语法二:SELECT old_name new_name,old_name2 new_name2...
FROM table_name
示例:从玩家表中查询玩家QQ和昵称,并显示为“玩家QQ”和“玩家昵称”
SELECT user_qq AS '玩家QQ',user_name AS "玩家昵称"
FROM users
d.DISTINCT关键字
作用:消除结果集中的重复行
SELECT DIS TINCT col_name FROM table_name
示例:显示参与了游戏的玩家QQ,要求参与了多个游戏的玩家不重复显示QQ
SELECT DISTINCT user_qq FROM scores
e.LIMIT关键字
作用:指定结果集中数据的显示范围
SECELT * FROM table_name LIMIT num1,num2
注:num1表示起始位置(默认从0开始),num2表示显示数据的条数
示例:显示玩家列表中第3条至第5条数据
SECELT * FROM users LIMIT 2,3(起始位置(位置从0开始),数据条数)
3.条件查询
a.普通条件查询
SELECT col_list FROM table_name
[WHERE condition_expression]
注:col_list 为*时,表示要显示所有列;其它情况时,则只显示col_list这些列
示例1:查询QQ号为12301的玩家信息
SELECT * FROM users
WHERE user_qq = '12301'
示例2:查找玩家编号为1,切得分大于4000
SELECT * FROM scores
WHERE gno=1 AND score>4000
比较运算符
逻辑运算
b.模糊查询
示例1:查询分数在2500(含)到3000(含)的分数信息
普通查询:
SELECT * FROM scores
WHERE score>=2500 AND score<=3000
模糊查询1:
SELECT * FROM scores
WHERE score BETWEEN 2500 AND 3000
模糊查询2:
SELECT * FROM scores
WHERE score NOT BETWEEN 2500 AND 3000
通配符
示例:查询所有姓孙的玩家信息
SELECT * FROM users
WHERE user_name LIKE '孙%'
c.查询空值的运算符
示例1:查询生日为NULL的玩家信息
SELECT * FROM users
WHERE user_birthday IS NULL
示例2:查询生日不为NULL的玩家信息
SELECT * FROM users
WHERE user_birthday IS NOT NULL