T3数据查询(一)

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
按多列排序 SELECT id As 学员编号, score As 成绩 FROM score WHERE score>60 ORDER BY score,id
按多列排序并限定行数 SELECT id As 学员编号, score As 成绩 FROM score WHERE score>60 ORDER BY score,id LIMIT 10
比较运算符-1
运算符 = > 语法 a=b a>b 说明 等于,为真 大于,为真
<
>= <= !=,<> in between like not like is null is not null
a<b
a>=b a<=b a!=b,a<>b a in (b1,b2,b3,…..) a between b and c a like b a not like b a is null a is not null
6、查找并显示“用户表”中名字中带“中”的数据。
SELECT * FROM user_inf WHERE nane like "%中%"
练习3
1、查找并显示“成绩表”中所有科目成绩大于60的数据。
SELECT * FROM score_inf WHERE score>60
2、查找并显示“成绩表”中科目有小于60的数据。 3、查找并显示“成绩表”中所有科目平均分大于60的数据 。 4、显示“成绩表”中每条记录的“编号”、“总分”。
SELECT id,name,phone FROM user_inf WHERE sex <> ‘男’
数据查询-指定列名
使用AS来命名列 SELECT id AS 学员编号, name AS 学员姓名 FROM user_inf
数据查询-数据值为空
查询空行
SELECT name FROM user_inf WHERE phone IS NULL 查询非空行
如果纯数字的字符串被用于一个算数运算中,那么它被转换为这个数字的值。 如果一个包含字符和数字混合的字符串不能被正确的转换为数字,那么它被 转换成0,易出现错误,应避免。
示例
查询平均分>60所有记录 SELECT * FROM score WHERE (java_score+html_score+sql_score)/3>60 查询每个人的总分 SELECT id AS 学员编号, javascore+htmlscore+sqlscroe AS 总分 FROM scroe
SELECT <列名> FROM <表名> [WHERE <查询条件表达式>] [ORDER BY <排序的列名>[ASC(升序)或DESC(降序)]] [LIMIT n,m] SELECT FROM WHERE ORDER BY LIMIT 列名称 id,name,phone user_inf sex=‘男’ age 1,5 表名 过滤条件 排序条件 范围
数据查询-设置查询条件
使用各种运算符实现复杂的查询条件编写:
算术运算符
比较运算符
通配符 逻辑运算符
算数运算符
运算符 + 语法 a+b 说明 加
* / %
a-b -a
a*b a/b a%b
减 操作数取负
乘 取商 取余
MySQL中,数字组成的字符串在可能便于计算的地方会被 自动地转换为数字,转换时,遵循两个基本规则:
数据查询-排序 2-1
升序排列 SELECT * FROM Score WHERE Score>60 ORDER BY Score 降序排列 SELECT * From java_score Union SELECT * From sql_score ORDER BY score DESC
数据查询-排序 2-2
示例
查询地址是湖北、湖南的记录
SELECT * FROM user_inf WHERE address IN(‘湖北’,‘湖南’)
查询地址不是湖北、湖南的记录 SELECT * FROM user_inf WHERE address NOT IN(‘湖北’,‘湖南’)
示例
查询地址为空的记录
SELECT * FROM user_inf WHERE address IS NULL
查询地址不为空的记录 SELECT * FROM user_inf WHERE address IS NOT NULL
示例
查询所有姓“刘”的记录 SELECT * FROM user_inf WHERE name LIKE ‘刘%’
查询所有姓名中含“中”的记录
SELECT * FROM user_inf WHERE name LIKE ‘%中%’ 查询所有姓“刘”的单名记录 SELECT * FROM user_inf WHERE name LIKE ‘刘_’
小于,为真
大于或等于,为真 小于或等于,为真 不等于,为真 a为b1,b2,b3„中任意一个,为真 a介于b和c之间(包含b、c),为真 模糊比较成立,为真 模糊比较不成立,为真 操作数为null,为真 操作数不为null,为真
比较运算符-2
比较运算符允许我们对表达式的左边和右边进 行比较。 一个比较运算符的结果总是1(真),0(假) ,或是为NULL(不能确定)。 比较运算符可以用于比较数字和字符串。
算术运算符、SELECT语句、逻辑运算符
数据查询(一)
本章任务
理解查询的机制 使用SELECT语句进行条件查询 在查询中返回限制行、进行查询排序 MySQL运算符学习 在查询中使用表达式、运算符和函数
什么是查询?
SELECT * FROM SALES
查询请求
查询结果集 客户程序
A B C D E F G
SQL SERVER
查询产生一个虚拟表,看到的是表形式显示的结果,但结果并不真正存储 ,每次执行查询只是现从数据表中提取数据,并按照表的形式显示出来
怎么查的?
学员编号 001 002 003 004 005 学员姓名 张明全 李菲 于寄谦 刘国正 周接轮 地址 湖南长沙 湖北宜昌 甘肃天水 山东荷泽 台湾新竹 所在班级 S201 S202 S204 S201 S204 …… SELECT * FROM StudentsH . WHERE 所在班级 = ‘S202’
数字作为浮点值比较。 而字符串以不区分大小写的方式进行比较。
通配符
“%” (百分号) 代表任意长度(长度可以为0) 的字符串
举例: a%b表示以a开头,以b结尾的任意长度的字符串。如 acb,addgb,ab 等都满足该匹配串
“_ ”(下横线) 代表任意单个字符
举例: a_b表示以a开头,以b结尾的长度为3的任意字符串。 如acb,afb等都满足该匹配串
2、查找并按“编号”降序显示“登录表”中所有数据。
SELECT * FROM login_inf WHERE number ORDER BY DESC
3、查找并显示“登录表”中前三条数据。
SELECT * FROM login_inf LIMIT1,3
4、查找并显示“登录表”中第4条到第6条数据。
SELECT * FROM login_inf LIMIT 4,6
SELECT number,total points FROM score_inf
5、按总分降序排序显示“成绩表”中每条记录的“编号” 、“总分”。
SELECT number,total points FROM score_inf total points order by desc
6、查找并显示“成绩表”中所有科目成绩大于60的数据并 添加“总分”、“合格”两列,按“总分”降序排列。
SELECT name FROM user_inf WHERE phone IS NOT NULL
数据查询-限制行数
限制固定行数 SELECT * FROM user_inf LIMIT 10
返回第6到10行的记录 SELECT id, name,sex,phone FROM user_inf WHERE age>18 LIMIT 5,5
查询年龄不在20~23的姓名、电话 SELECT name,phone FROM user_inf WHERE NOT (age>=20 AND age<=30) where not between 20 and 30 ?
练习1
1、查找并显示“登录表”所有数据。
SELECT * FROM login_inf
逻辑运算符
运算符 AND,&& OR,|| NOT,! 语法 a AND b , a && b a OR b , a || b NOT a , !a; 说明 逻辑与 逻辑或 逻辑非
示例
查询年龄在20~23的姓名、电话 SELECT name,phone FROM user_inf WHERE age >= 20 AND age<=30
SELECT id, name, phone
FROM user_inf
WHERE sex = ‘男’
ORDER BY age
LIMIT 1,5
数据查询-基础
查询全部的行和列
SELECT * FROM user_inf 查询部分行
SELECT id,name,phone FROM user_inf WHERE sex = ‘男’
示例
查询年龄在20~23的姓名、电话 SELECT name,phone FROM user_inf WHERE age BETWEEN 20 AND 30
查询年龄不在20~23的姓名、电话
Sபைடு நூலகம்LECT name,phone FROM user_inf WHERE age NOT BETWEEN 20 AND 30
006
007 008
巩小妹
巩大妹 张明敏
香港龙湾
香港龙湾 北京顺义
S203
S203 S202
009
010 011 002
008 010
矛十八
罗林光
四川棉阳
陕西临潼
S204
S202
司马坡 湖北宜昌 新疆喀什 S201 … S202 李菲
张明敏 罗林光 北京顺义 陕西临潼 S202 S202
查询语句语法(SELECT)
SELECT name,sex,phone FROM user_inf WHERE age <= 18
2、查找并显示“用户表”中所有年龄为18岁以下的男生“姓名” 、“联系方式”。
SELECT name,phone FROM user_inf WHERE sex = "男",age<18
3、查找并显示“用户表”中电话号码为空的“编号”和“姓名” 。
SELECT number,name FROM user_inf WHERE phone is null
4、查找并显示“用户表”中“地址”是湖北或湖南的数据。
SELECT * FROM user_inf ID like "湖北"OR"湖南"
5、查找并显示“用户表”中姓“刘”的数据。
SELECT * FROM user_inf WHERE name like "刘%"
5、查找并显示“登录表”中“用户名”为“root”,“密码”为 “123456”的数据。
SELECT * FROM login_inf WHERE name is "root" AND password is "123456"
练习2
1、查找并显示“用户表”中所有年龄为18岁以下的“姓名”、“ 性别”、“联系方式”。
相关文档
最新文档