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不允许删除作为外键约束被引用的行。如果一行使用外键引用另一行(无论是否在同一个表),则要先删除被引用行后才能删除引用行。
- SQL Server 2008编程入门经典笔记(第三章:T-SQL基本语句)
- SQL Server 2008编程入门经典笔记:T-SQL基本语句
- SQL Server 2008编程入门经典笔记(第四章:连接)
- SQL Server 2008编程入门经典笔记(第六章:约束)
- SQL Server 2008编程入门经典笔记(第十章:视图)
- SQL Server 2008编程入门经典笔记(第二章:SQL Server管理工具)
- SQL Server 2008编程入门经典笔记:表连接
- SQL Server 2008编程入门经典笔记:约束
- SQL Server 2008编程入门经典笔记:视图
- SQL Server 2008编程入门经典笔记:脚本
- SQL Server 2008编程入门经典笔记:存储过程
- SQL Server 2008编程入门经典笔记:用户自定义函数
- SQL Server 2008编程入门经典笔记:事务
- SQL Server 2008编程入门经典笔记:触发器
- SQL Server 2008编程入门经典笔记(第一章:RDBMS基础:SQL Server数据库的构成)
- SQL Server 2008编程入门经典笔记(第五章:创建和修改数据表)
- SQL Server 2008编程入门经典笔记(第七章:更复杂的查询)
- SQL Server 2008编程入门经典笔记(第十四章:事务和锁)
- 《Linux命令行与shell脚本编程大全》 第十五章 学习笔记
- android widget跳转至系统时间界面
- 关于linux移植时Resetting CPU ...的问题(在我的系统中可行,已验证)
- 数组调整
- 【iOS开发】---- appledoc:Objective-C注释文档生成工具
- SQL Server 2008编程入门经典笔记(第三章:T-SQL基本语句)
- hdu 1394 zoj 1484 求旋转序列的逆序数(并归排序)
- Jellybean上relro引起的 SEGV_ACCERR段错误问题
- 消息队列
- WCF建证书步骤
- CentOS卸载apache php mysql
- NGUI学习笔记
- 判断俩链表是否相交
- System.InvalidOperationException: 线程间操作无效: 从不是创建控件“labelControl1”的线程访问它