获取数据SELECT语句()
其次更为重要的是可以在WHERE子句中使用列名来引用列WHERE子句的功能是作为一个筛选器允许用户选择与特定条件相匹配的记录例如Alex Kriegel编写的所有图书或者那些由Wiley出版社出版的图书WHERE子句的语法非常直观看起来就像是英语语句一样
SELECT * FROM myLibrary WHERE publisher = Wiley;
该查询的结果仅仅列出了PUBLISHER列中存储的值等于Wiley的那些记录注意WHERE子句中的Wiley值应该用单引号括起来以指示数据库要进行比较的是字符数据类型
数据库中可能包含了数百万条记录WHERE子句可以缩小搜索的范围筛选出一条特定的记录或者一个与指定筛选标准相匹配的记录的集合这正是SQL语言作为一种基于集合的声明性语言的强大之处使用一个类似于英语的简单语句就可以搜索记录并返回一个满足匹配条件的记录的子集而无须关心数据是如何存储的甚至无须知道数据存储在什么地方当在Microsoft AccessOraclePostgreSQLMySQLSQL Server或IBM DB中运行上面的SELECT语句时都将返回完全相同的结果
在WHERE子句中另外一个重要的组成部分就是使用操作符前面的查询使用了一个等于操作符用于筛选出那些出版社名称为Wiley的记录采用类似的办法使用不等于操作符很容易查询出那些不是Wiley出版社出版的图书
SELECT * FROM myLibrary WHERE publisher <>Wiley;
使用AND和OR逻辑操作符可以将多个操作符连接在一起定义一个更为严格的筛选标准例如要查找Wiley出版社出版的由Alex Kriegel编写的图书可以使用下面的查询
SELECT * FROM myLibrary
WHERE publisher = Wiley AND author= Alex Kriegel;
该查询仅仅返回一条同时满足这两个条件的记录如果使用OR逻辑操作符来连接这两个条件则可以返回满足其中任意一个条件的所有记录而不一定要求两个条件都同时满足但在布尔逻辑中使用逻辑操作符来定义搜索条件时应当倍加小心除非完全理解了逻辑操作符的规则否则查询结果可能会大大出乎意料
第章将进一步介绍操作符以及其在不同数据库厂商之间的语法差异和优先级规则
试一试使用SELECT语句
在下面的练习中将采用Microsoft SQL Server 数据库环境练习一下SELECT语句的使用请重复本章第一个试一试练习中步骤()到步骤()的操作以便输入并执行SQL命令
() 输入下面的SQL语句将数据插入到MYLIBRARY表中
INSERT INTO myLibrary (title author book_language publisher pages
author publish_date isbn)VALUES (SQL BibleAlex KriegelEnglish
WileyBoris M TrukhnovApril )
INSERT INTO myLibrary(title author book_language publisher pages publish_date
isbn) VALUES (Microsoft SQL Server Weekend Crash CourseAlex Kriegel
EnglishWiley October )
INSERT INTO myLibrary(title author book_language publisher pages publish_date
isbn) VALUES (MindswapRobert Sheckley EnglishOrb BooksMay
)
INSERT INTO myLibrary(title author book_language publisher pages publish_date
isbn) VALUES (Jonathan Livingston SeagullRichard Bach EnglishMacMillan
)
INSERT INTO myLibrary(title author book_language publisher pages publish_date
isbn) VALUES (A Short History of Nearly EverythingBill Bryson
EnglishBroadway October )
() 单击位于上方工具栏中的Execute按钮如之前的图所示
() 在下方窗格的Messages选项卡中可以看到条确认信息( row(s) affected)
() 下面的查询语句将从MYLIBRARY表中选取所有的行和列(由于版面空间的限制这里省略了这些例子中实际查询结果的显示)
SELECT * FROM myLibrary;
( row(s) affected)
() 为了缩小搜索的范围添加一个WHERE子句
SELECT * FROM myLibrary
WHERE publisher = Wiley;
( row(s) affected)
返回目录SQL实战新手入门
编辑推荐
Oracle索引技术
高性能MySQL
数据仓库与数据挖掘培训视频教程