select语句的基本用法是什么?
select的用法用法1:select的基本意思是“选择”“挑选”,指在进行认真的考虑后,从若干事物或人中间挑选出适合要求,满足需要的事物或人。强调大范围的挑选和选择中需一定的鉴别力。select是书面用词,有时具有庄严、正式的感情色彩。例句:A ferocious battle to select a new parliamentary candidate is in progress。推选一位新的议会候选人的激战正酣。用法2:select只用作及物动词,接名词或代词作宾语,也可接以“(to be/as+) n.”或动词不定式充当补足语的复合宾语。例句:Christian Lacroix is throwing a very lavish and very select party。克里斯汀·拉克鲁瓦正在举办一个非常豪华的上流聚会。用法3:select不用于select sb sth结构,若表示“为某人挑选”须使用select sth for sb结构。例句:The captain needs a select crew for this dangerous voyage。船长需要一批精选的水手来作此危险的航行。用法4:select的宾语是“被选中者”,而不是“供选择者”。例句: She was very select in people she invites。她邀请的客人都要经过严格挑选。
select语句的基本用法是什么?
SELECT是SQL数据操纵语言(DML)中用于查询表格内字段数据的指令,可搭配条件限制的子句(如where)或排列顺序的子句(如order)来获取查询结果。SELECT的基本语句格式如下:SELECT [ALL | DISTINCT] 栏位名 [,栏位名...] FROM 资料表名 [,资料表名...] [WHERE 筛选条件式] [GROUP BY 栏位名[,栏位名...]] [ORDER BY 栏位名[,栏位名...]]SELECT语句作用介绍列选择(投影操作):能够使用SELECT语句的列选择功能选择表中的列,这些列是我们想要用查询返回的。当我们查询时,可在选择查询的表中指定的列。行选择(选择操作):能够使用SELECT语句的行选择功能选择表中的行,这些行是我们想要用查询返回的。能够使用不同的标准限制所看见的行。连接(多表操作):能够使用SELECT语句的连接功能来集合数据,这些数据虽然被存储在不同的表中,但是我们可以通过连接查询到该数据。
select语句是什么?
SELECT是SQL数据操纵语言(DML)中用于查询表格内字段数据的指令,可搭配条件限制的子句(如where)或排列顺序的子句(如order)来获取查询结果。SELECT的基本语句格式如下:SELECT [ALL | DISTINCT] 栏位名 [,栏位名...] FROM 资料表名 [,资料表名...] [WHERE 筛选条件式] [GROUP BY 栏位名[,栏位名...]] [ORDER BY 栏位名[,栏位名...]]SELECT语句作用介绍列选择(投影操作):能够使用SELECT语句的列选择功能选择表中的列,这些列是我们想要用查询返回的。查询时,可在选择查询的表中指定的列。行选择(选择操作):能够使用SELECT语句的行选择功能选择表中的行,这些行是想要用查询返回的。能够使用不同的标准限制所看见的行。连接(多表操作):能够使用SELECT语句的连接功能来集合数据,这些数据虽然被存储在不同的表中,但是可以通过连接查询到该数据。以上内容参考:百度百科-select()
sql怎么同时写多行一样的查询语句
sql怎么同时写多行一样的查询语句
最简捷直观的方法就是利用分组
1
2
3
4
5
6
select ID,
Sum(语文) 语文,
Sum(数学) 数学,
Sum(英语) 英语
from scores
group by ID
你可以直接用下面的语句在SQL Server中测试结果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
DECLARE @ScoresVar table(
ID int NOT NULL,
Chinese int,
Math int,
English int);
Insert into @ScoresVar
values(1 ,70, null, null)
Insert into @ScoresVar
values(1 ,null,80, null)
Insert into @ScoresVar
values(1 ,null, null, 90)
Insert into @ScoresVar
values(2 ,75, null, null)
Insert into @ScoresVar
values(2 ,null,85, null)
Insert into @ScoresVar
values(2 ,null, null, 95)
select ID,
SUM(Chinese) Chinese,
Sum(Math) Math,
Sum(English) English
from @ScoresVar
group by ID
还有一种方法,可能更通用一点,利用 FOR XML PATH 和STUFF函数来做,虽然复杂,但是对表的数据类型无限制。
还是上面的测试数据,你可以通过下面的代码来得到你想要的数据:
1
2
3
4
5
6
7
8
9
SELECT ID,
STUFF((SELECT ',' + Cast(A.Chinese as varchar)
FROM @ScoresVar A Where A.ID=B.ID FOR XML PATH('')),1,1,'') As Chinese,
STUFF((SELECT ',' + Cast(A.Math as varchar)
FROM @ScoresVar A Where A.ID=B.ID FOR XML PATH('')),1,1,'') As Math,
STUFF((SELECT ',' + Cast(A.English as varchar)
FROM @ScoresVar A Where A.ID=B.ID FOR XML PATH('')),1,1,'') As English
From @ScoresVar B
Group By ID
1
2
3
4
-- 输出结果
ID Chinese Math English
1 70 80 90
2 75 85 95
SQL实战新手入门:获取数据-SELECT语句(3)
获取数据 SELECT语句( ) 其次 更为重要的是 可以在WHERE子句中使用列名来引用列 WHERE子句的功能是作为一个筛选器 允许用户选择与特定条件相匹配的记录 例如Alex Kriegel编写的所有图书或者那些由Wiley出版社出版的图书 WHERE子句的语法非常直观 看起来就像是英语语句一样 SELECT * FROM myLibrary WHERE publisher = Wiley ; 该查询的结果仅仅列出了PUBLISHER列中存储的值等于Wiley的那些记录 注意 WHERE子句中的Wiley值应该用单引号括起来 以指示数据库要进行比较的是字符数据类型 数据库中可能包含了数百万条记录 WHERE子句可以缩小搜索的范围 筛选出一条特定的记录或者一个与指定筛选标准相匹配的记录的集合 这正是SQL语言作为一种基于集合的声明性语言的强大之处 使用一个类似于英语的简单语句就可以搜索记录并返回一个满足匹配条件的记录的子集 而无须关心数据是如何存储的 甚至无须知道数据存储在什么地方 当在Microsoft Access Oracle PostgreSQL MySQL SQL 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 i *** n)VALUES ( SQL Bible Alex Kriegel English Wiley Boris M Trukhnov April ) 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 ) ( ) 单击位于上方工具栏中的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 lishixinzhi/Article/program/SQL/201311/16482
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