SQL Server 2008编程入门经典笔记(第三章:T-SQL基本语句)

来源:互联网 发布:网络销售人员业务流程 编辑:程序博客网 时间:2024/05/29 14:28

第3章 T-SQL基本语句
3.1基本SELECT语句
许多SQL编码人员养成了简化查询语句的习惯,通常在选择语句中使用符号"*"来选择所有列。这一习惯要要改掉!输入符号"*"比输入想要的列名是要省事,但检索的数据也比实际需要的多。此外,SQL Server必须计算"*"表示多少列及哪些列,这会降低应用程序和网络的使用性能。

SELECT Name,SalesPersonID FROM Sales.Store WHERE Name BETWEEN 'g' AND 'j' AND SalesPersonID>283 ORDER BY SalesPersonID,Name DESC;
ORDER BY子句按多列排序。实现的方法是用逗号分隔要排序的列。这里先按SalesPersonID排序,然后在按Name排序。

SELECT SalesPersonID,SUM(OrderQty) AS TotalOrderQty FROM Sales.SalesOrderDetail WHERE SalesPersonID IN(43660,43670,43672) GROUP BY SalesPersonID;

COUNT(表达式|*)
COUNT(*)函数用于计算查询中返回的行数。COUNT函数会忽略NULL值,返回有效的行数。

3.1.5使用HAVING子句给分组设置条件
HAVING子句仅用于带有GROUP BY子句的查询语句中。WHERE子句应用于每一行,而HAVING子句应用于分组的聚合值。

3.1.8 DISTINCT和ALL谓词

SELECT DISTINCT ProductID FROM Sales.SalesOrderDetail WHERE OrderQty>30
理解:DISTINCT是对ProductID列进行聚合,除去重复的行数据。

3.2使用INSERT语句添加数据
create table Stores
(
  StoresCode char(4) NOT NULL PRIMARY KEY,
  Name varchar(20) NOT NULL,
  Address varchar(20) NULL,
  City varchar(20) NOT NULL,
  State char(2) NOT NULL,
  Zip char(5) NOT NULL
);
insert into Stores values('Test','Test Store','123 Anywhere Street','Beijing','NY','00319');
上述插入语句第一次可以执行,而第二次执行出错?其原因是本表的StoresCode字段为主键,该字段值不允许重复。只要更改主键值,而剩下的其他列值不变,就可以将其插入到新的一行。

3.2.1多行插入

insert into Sales
(StoresCode,OrderNumber,OrderDate,Quantity,Terms,TitleID)
values
('Test','TESTORDER1','01/01/1999',10,'NET 30',123456),
('Test','TESTORDER2','01/01/1999',10,'NET 30',888);

3.3用UPDATE语句更新数据

UPDATE<table name>
SET<column>=<value> [,<column>=<value>]
[FROM <source table(s)>]
[WHERE <restrictive condition>]

3.4 DELETE语句

DELETE <table name>
[WHERE <condition>]

SQL Server不允许删除作为外键约束被引用的行。如果一行使用外键引用另一行(无论是否在同一个表),则要先删除被引用行后才能删除引用行。

原创粉丝点击