SQL实战新手入门:获取数据-SELECT语句(2)
获取数据 SELECT语句( )
只要确保列表中值的顺序与表中列的结构精确地匹配 就可以在INSERT语句中省略列的列表 列列表实际上是数据的占位符 但是如果列表中值的顺序与列列表中的顺序不同 或者要插入的列不是记录中的全部列(例如 只插入 个列中的 个列) 那么就必须在INSERT语句中列出匹配的列列表 例如下面的例子
INSERT INTO myLibrary (
title
author
book_language
publisher
pages
author
publish_date
i *** n
)VALUES (
SQL Bible
Alex Kriegel
English
Wiley
Boris M Trukhnov
April
)
对于书架上的每一本书使用相应的数据重复运行上面这个INSERT语句(当然 某些数据录入员可能会讨厌这项工作) 另外 读者也可以从本书的支持网站中下载一个已经编写好的脚本 并按照附录A中的指南安装该脚本 这样 就可以获得所需的结构化的图书信息 并为执行SQL查询做好准备
INSERT INTO myLibrary(title author book_language publisher pages publish_date
i *** n) VALUES ( Microsoft SQL Server Weekend Crash Course Alex Kriegel
English Wiley October )
INSERT INTO myLibrary(title author book_language publisher pages publish_date
i *** n) VALUES ( Mindswap Robert Sheckley English Orb Books May
)
INSERT INTO myLibrary(title author book_language publisher pages publish_date
i *** n) VALUES ( Jonathan Livingston Seagull Richard Bach English MacMillan
)
INSERT INTO myLibrary(title author book_language publisher pages publish_date
i *** n) VALUES ( A Short History of Nearly Everything Bill Bryson
English Broadway October )
在INSERT语句中 如果同时省略了某个列的列名和列值 会产生什么样的结果呢?在INSERT语句中指定的列将会填充数据 而省略掉的列则保持为空 为了表示空值的含义 SQL使用NULL值来标识
在上面的例子中 AUTHOR 列的值将填充为NULL 第 章还将介绍 在数据库中NULL值具有特殊的含义 它的行为具有特殊的规则
为了减少输入负担 读者可以从网站 wrox 或 agilitator 下载本章的SQL脚本 附录A描述了脚本的安装过程
下面是一个SELECT查询 它返回已经输入到MYLIBRARY表中的所有图书记录
SELECT title
author
author
publisher
pages
publish_date
i *** n
book_language
) FROM myLibrary;
除了列出所有的列之外 还可以使用SQL提供的一个方便的快捷方式 即用一个星号(*)来指示RDBMS获取所有列的信息
SELECT * FROM myLibrary;
该查询的结果看起来与之前舍弃的非结构化数据的结果类似 但两者存在一个小小的差别 该查询返回的数据按照不同的列分别进行显示 这就是根本的不同!
首先 可以改变SELECT语句中列的顺序 按照任意顺序显示数据 另外还可以只查询特定的列 例如 如果只需要生成一个作者和图书名称的列表 可以执行下面这个查询
SELECT title
author
author
) FROM myLibrary;
返回目录 SQL实战新手入门
编辑推荐
Oracle索引技术
高性能MySQL
lishixinzhi/Article/program/SQL/201311/16483