对象命名的约定:数据库名.所有者名.对象名
前两者可省略,默认值数据库是当前数据库,所有者是dbo
别名:数据库名称 as 数据库表名 主要是增加select语句的可读性,如果已经为数据表制定了别名,则
在相应的SQL语句中,对该数据表的所有显示引用都要使用别名,而不能使用数据表名。
select语句是数据检索中最频繁的活动,再检索前要先知道存储在哪里,select语句可以由多个
查询子语句组成,而且可以嵌套。
select语句可以检索:全部行列,全部行和特定列,限定范围的行,与一组值匹配的行,根据未知值检索
的行,隐藏有重复值的行,根据所个搜索条件检索的行。
基本结构:SELECT [ALL|DISTINCT]select_list
[INTO [new_table_name]]
FROM{table_name|view_name,...}
[WHERE search_conditons]
[GROUP BY group_by_list]
[HAVING search_conditions]
[ORDER BY order_list [asc|desc]]
WHERE和HAVING的区别是WHERE是对整个表进行选择,而HAVING则是对分组当中的元素进行选择。
select子句
SELECT [ALL|DISTINCT] [TOP N] select_list
select_list既可表示字段名称,也可以是其他表达式。
all指定在结果集中可以显示重复行,distinct不显示相同行,TOP n [PERCENT]指定只从查询结果集中输出前 n 行。n 是介于 0 和 4294967295 之间的整数。如果还指定了 PERCENT,则只从结果集中输出前百分之 n 行。当指定时带 PERCENT 时,n 必须是介于 0 和 100 之间的整数。
例子:
USE NORTHWIND
SELECT PRODUCTID,ORDERID,UnitPrice*Quantity AS SUM
INTO KKKKKK
FROM [Order Details]
WHERE UnitPrice*Quantity>10000;
AS 子句可用来更改结果集列名或为导出列指定名称。如此例,sum更清楚所表示的内容,否则,这个算术
式会由系统指定名称。所以在该语句当中where后面的UnitPrice*Quantity不能写成sum,因为sum是结果
集当中使用的名称,在搜索条件中还没有被指定。
而且这个例子中的表 order details中包含关键字order,所以不能直接用,要加[]。
INTO子句用于把结果集存放在新表当中,select into不能和compute子句一起使用,select子句指定计算
列时则会起一个名称。