数据库简朴查询

打印 上一主题 下一主题

主题 1416|帖子 1416|积分 4248

目次
二、简朴查询
(1)根本查询
(2)利用WHERE子句
比较运算符的利用
范围运算符的利用
列表运算符的利用
模式匹配运算符的利用
空值判断运算符的利用
逻辑运算符的利用
(3)利用ORDER BY子句
(3)利用LIMIT子句



select语句的根本语法
SELECT [ALL|DISTINCT]要查询的内容
FROM表名列表
[WHERE条件表达式]
[GROUP BY字段名列表[HAVING逻辑表达式]]
[ORDER BY字段名[ASCIDESC]]
[LIMIT [OFFSET,] n];

注意:
all 全部输出,写为* 。distinct 只输出一次(不输出重复的)
在上述语法结构中,SELECT查询语句共有7个子句,其中SELECT和FROM子句为
必选子句,而WHERE、GROUPBY(用于字段分组)、ORDER BY(用于排序,升序或者降序)和LIMIT子句为可选子句,
HAVING子句与GROUP BY子句联合利用,不能单独利用。
SELECT子句既可以实现数据的简朴查询、效果集的统计查询,也可以实现多表查
询。

二、简朴查询

(1)根本查询

SELECT [ALLIDISTINCT]要查询的内容
FROM表名列表;
【例5-1】查询“学生选课”数据库的studentinfo表,输出所有学生的具体信息。
注:查询效果要输出表或视图的特定字段时,要明白指出字段名,多个字段名之间用
逗号分开。
对应的sql语句:SELECT sno,sname,sgender,sbirth,sclass
FROM studentinfo;

在SELECT子句的查询字段列表中,字段的次序是可以改变的,无需按照表中界说的
次序排列。例如,上述语句可以写为:
SELECT sname,sno,sgender,sbirth,sclass FROM studentinfo;

当要查询的内容是数据表中所有列的聚集时,可以用符号“*”来代表所有字段名的集
合。例如,上述语句可以写为
SELECT * FROM studentinfo;

例:查询“学生选课”数据库的studentinfo表,输出所有学生的学号、姓名,以及此
次查询的日期和时间。用now()
对应的SQL语句如下:SELECT sno,sname,now()FROM studentinfo;
实行效果如图:

例:查询“学生选课”数据库的studentinfo表、输出所有学生的学号、姓名、以及此次查询的日期和时间,并分别利用“学生学号”“学生姓名”“查询日期”作为别名。原名as别名,(as可以省略)
对应的SQL语句如下:
SELECT sno学生学号,sname AS学生姓名,now()AS查询日期
FROM studentinfo;
实行效果如图:

为了清晰,此处把studentinfo表数据中sclass改了

例:查询“学生选课”数据库的studentinfo表,输出学生所在的班级,每个班级
只输出一次。
对应的SQL语句如下:
SELECT DISTINCT sclass
FROM studentinfo;
实行效果如图:

(2)利用WHERE子句

WHERE子句可以指定查询条件,用以从数据表中筛选出满足条件的数据行。其
语法格式如下:
SELECT [ALL|DISTINCT]要查询的内容
FROM表名列表
WHERE条件表达式;
WHERE子句的条件表达式可以利用的运算符如表

比较运算符的利用

例:查询“学生选课”数据库的studentinfo表,输出“网络技术101”班学生的详
细信息。
对应的SQL语句如下:
SELECT*
FROM studentinfo
WHERE sclass='网络技术101';
实行效果如图:

范围运算符的利用

例:查询“学生选课”数据库的studentinfo表,输出1993年7月出生的学生的具体信

对应的SQL语句如下:
SELECT *
FROM studentinfo
WHERE sbirth BETWEEN ' 1993-7-1' AND '1993-7-31';
实行效果如图

列表运算符的利用

例:查询“学生选课”数据库的studentinfo表,输出学号为10101001、
1010100的学生的具体信息。
对应的SQL语句如下:
SELECT *
FROM studentinfo
WHERE sno IN (' 10101001',’10102001',’11101001');
实行效果如图

模式匹配运算符的利用

在指定的条件不是很明白的情况下,可以利用LIKE运算符与模式字符串举行匹配
运算。其语法格式如下:
字段名[NOT] LIKE'模式字符串’

通配符和字符串必须括在单引号中。
假如要查找的字符串本身就包罗通配符,可以用符号“\”将通配符转义为平凡字符
'a%'表示以a开头的字符串
'%101'表示以101结尾的字符串
'_学%'表示第一位不知道,第二位是学的字符串
假如字符串本身有_,则用\表示
例'a\_',第一位是a,第二为是_的字符串
例:查询“学生选课”数据库的studentinfo表,输出姓“张”的学生的具体信息。
对应的SQL语句如下:
SELECT *
FROM studentinfo
WHERE sname LIKE'张%';
实行效果如图

空值判断运算符的利用

IS [NOT] NULL运算符用于判断指定字段的值是否为空值。对于空值判断,不能
利用比较运算符或模式匹配运算符。
对应的SQL语句如下:
SELECT *
FROM elective
WHERE score IS NULL;
实行效果如图

逻辑运算符的利用

查询条件可以是一个条件表达式,也可以是多个条件表达式的组合。逻辑运算符可以大概连接多个条件表达式,构成一个复杂的查询条件。逻辑运算符包罗:AND(逻辑与)、OR(逻辑或)、NOT(逻辑非)。
例:查询“学生选课”数据库的studentinfo表,输出姓“王”且是“电子商务101"
班的学生的信息。
对应的SQL语句如下:
SELECT *
FROM studentinfo
WHERE sname
LIKE’王%' AND sclass ='电子商务101';


例:查询“学生选课”数据库的studentinfo表,输出姓“小”或者是
“电子商务101”班的学生的信息。
对应的SQL语句如下:
SELECT *
FROM studentinfo
WHERE sname LIKE'王%' OR sclass ='电子商务111';

例:查询“学生选课”数据库的studentinfo表,输出不是1993年出生的学生
的信息。

对应的SQL语句如下:
SELECT *
FROM studentinfo
WHERE NOT (YEAR(sbirth)=1993);
实行效果如图

(3)利用ORDER BY子句

在查询效果会合,数据行是按照它们在表中的次序举行排列的。我们可以利用ORDERBY子句对查询效果会合的数据行依照指定字段的值重新排列。其语法格式如下:
SELECT
[ALL|DISTINCT]要查询的内容FROM表名列表
[WHERE条件表达式]
ORDER BY字段名[ASC|DESC];
例:查询“xxgc”数据库的studentinfo表,学生出生日期降序排列
对应的SQL语句如下:
SELECT * from studentinfo  ORDER BY sbirth DESC;

(3)利用LIMIT子句

利用LIMIT子句可以指定查询效果从哪一条记载开始,一共查询多少条记载。其语
法格式如下:
SELECT [ALL|DISTINCT]要查询的内容
FROM表名列表
[WHERE条件表达式]
[ORDER BY字段名[ASC|DESC]]
LIMIT [OFFSET, ] n;
LIMIT子句接受一个或两个整数参数。其中OFFSET代表从第几行记载开始检索,n代表检索多少行记载。必要注意的是,OFFSET可以省略不写,默认取值为0,代表从第一行记载开始检索。

例:查询“学生选课”数据库的studentinfo表,输出前三条学生记载的信息。
SELECT *
FROM studentinfo
LIMIT 3;
实行效果

例:查询“学生选课”数据库的studentinfo表,输出表中第五行学生记载的信息。
对应的SQL语句如下:
SELECT *
FROM studentinfo
LIMIT 4,1:
实行效果如图


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

星球的眼睛

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表