Web应用程序开发教程 (7)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【例】只查询表EmpInfo中工资最高的前3位员工:
执行结果如下:
服务器: 消息 547,级别 16,状态 1,行 1 UPDATE 语句与 COLUMN CHECK 约束 'CK_EmpInfo' 冲突。该冲突发生于数据
库 'TestDB',表 'EmpInfo', column 'Wage'。 语句已终止。
UPDATE语句
不能违反外键约束
【例】假定表DepInfo的列Dep_id和表EmpInfo的Dep_id列之前存在外键约束。试 使用UPDATE语句将表EmpInfo中“张三”的Dep_id值更新为100。
USE TestDB GO UPDATE EmpInfo SET Dep_id=100 WHERE Emp_name='张三' GO
执行结果如下:
服务器: 消息 547,级别 16,状态 1,行 1 UPDATE 语句与 COLUMN FOREIGN KEY 约束 'FK_EmpInfo_DepInfo' 冲突。该冲突发生于
SELECT语句
• 显示惟一数据
【例】查询表EmpInfo中所有的员工职务数据,比较在SELECT语句中使 用与不使用DISTINCT关键字的区别。使用下面语句查看所有的员工职 务情况。
SELECT Title FROM EmpInfo;
使用DISTINCT关键字的SELECT语句如下:
SELECT DISTINCT Title FROM EmpInfo;
USE TestDB GO INSERT INTO EmpInfo (Emp_name, IdCard,Dep_id) VALUES ('张三', '110xxxxxxxx9', 1) GO INSERT INTO EmpInfo (Emp_name, IdCard,Dep_id) VALUES ('李四', '110xxxxxxxx9', 1) GO
如果需要按照降序显示,可以在ORDER BY子句中使用DESC关键 字,SELECT语句如下:
SELECT Emp_name As 姓名, Title As 职务, Wage AS 工资 FROM EmpInfo ORDER BY Wage DESC;
SELECT语句
• 使用TOP n [PERCENT]
UPDATE语句的功能是在指定的表中修改满足条件的记录:
UPDATE <表名> SET <字段名> = <字段值>, <字段名> = <字段值>, …… WHERE <条件表达式>
【例】使用UPDATE语句将表EmpInfo中所有员工的工资增加10%:
USE TestDB GO UPDATE EmpInfo SET Wage = Wage * 1.1 GO
执行结果如下:
服务器: 消息 544,级别 16,状态 1,行 1 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'DepInfo' 中的标识列
插入显式值。
INSERT语句
• 不允许向惟一性约束列中插入相同的数据
【例】在表EmpInfo中,将列IdCard设置为惟一性约束。试使用INSERT 语句在表中插入两条身份证号相同的记录:
USE TestDB GO UPDATE DepInfo SET Dep_id=100 WHERE Dep_id=1 GO
执行结果如下:
服务器: 消息 8102,级别 16,状态 1,行 1 无法更新标识列 'Dep_id'。。
UPDATE语句
不允许在惟一性约束列中存在相同的数据
【例】在表EmpInfo中,假定列IdCaቤተ መጻሕፍቲ ባይዱd被设置为惟一性约束。表EmpInfo中存在身份证号 为“110xxxxxxxx9”和“110xxxxxxxx1”的两条记录。试使用UPDATE语句将前者的身份 证号码修改为“110xxxxxxxx1”:
INSERT语句
• 不允许设置标识列的值
【例】在表DepInfo中,假定列Dep_id被设置为标识列,其编号由 系统自动生成。试在INSERT语句中设置该列的值:
USE TestDB GO INSERT INTO DepInfo (Dep_id, Dep_name) VALUES (2, '项目部') GO
USE TestDB GO UPDATE EmpInfo SET IdCard='110xxxxxxxx1' WHERE IdCard='110xxxxxxxx9' GO
执行结果如下:
服务器: 消息 2627,级别 14,状态 2,行 1 违反了 UNIQUE KEY 约束 'IX_EmpInfo'。不能在对象 'EmpInfo' 中插入重复键。 语句已终止。。
SELECT语句
SELECT语句的基本使用方法如下所示:
SELECT子句 [ INTO 子句 ] FROM 子句 [ WHERE 子句 ] [ GROUP BY 子句] [ HAVING 子句 ] [ ORDER BY 子句 ] [UNION 运算符]
查看表DepInfo中所有记录的部门名称。
SELECT Dep_name FROM DepInfo;
执行结果如下:
服务器: 消息 547,级别 16,状态 1,行 1 INSERT 语句与 COLUMN CHECK 约束 'CK_EmpInfo' 冲突。该冲突发生于数据
库 'TestDB',表 'EmpInfo', column 'Wage'。 语句已终止。
INSERT语句
不能违反外键约束
【例】假定表DepInfo的列Dep_id和表EmpInfo的Dep_id列之前存在外键约束。试 使用INSERT语句在表EmpInfo中插入在表DepInfo中不存在的Dep_id数值。 USE TestDB GO INSERT INTO EmpInfo (Emp_name, Sex, Wage, Dep_id) VALUES ('赵六', '男', 3000, 100) GO
数据库 'TestDB',表 'DepInfo', column 'Dep_id'。 语句已终止。
DELETE语句
DELETE语句的功能是在指定的表中删除满足条件的记录:
DELETE [FROM] <表名> WHERE <条件表达式>
【例】使用DELETE语句从表EmpInfo中删除所有部门编号等于1的数据:
UPDATE语句
不能违反检查约束
【例】在表EmpInfo中,假定列Wage被设置为检查约束,检查条件为 “Wage>=0”。试使用UPDATE语句将张三的工资修改为-1:
USE TestDB GO UPDATE EmpInfo SET Wage=-1 WHERE Emp_name='张三' GO
Web应用程序开发教程
授课教师: 职务:
第7章 ASP数据库编程技术
课程描述
ASP可以非常方 便地通过ADO (ActiveX Data Object)数据模 型和SQL语句访 问SQL Server 2000数据库。
本章知识点
常用SQL语句 使用ADO访问数据库
7.1 常用SQL语句
INSERT语句 UPDATE语句 DELETE语句 SELECT语句
SELECT语句
• 显示列标题
【例】从表EmpInfo中查询员工姓名和职务,并在结果集中显示中文标题:
SELECT Emp_name As 姓名, Title As 职务 FROM EmpInfo;
• 设置查询条件
【例】查询部门编号为1的员工信息:
SELECT Emp_name As 姓名, Title As 职务 FROM EmpInfo WHERE Dep_id = 1;
USE TestDB GO DELETE FROM EmpInfo WHERE Dep_id=1 GO
删除表中的所有数据使用TRUNCATE TABLE语句:
TRUNCATE TABLE 表名
【例】使用TRUNCATE TABLE语句从表EmpInfo中删除数据。
USE TestDB GO TRUNCATE TABLE EmpInfo GO
【例】查询表EmpInfo中所有姓李的员工:
SELECT Emp_name As 姓名, Title As 职务 FROM EmpInfo WHERE Emp_name LIKE '李%';
SELECT语句
• 对结果集进行排序
【例】按照工资升序显示员工信息:
SELECT Emp_name As 姓名, Title As 职务, Wage AS 工资 FROM EmpInfo ORDER BY Wage;
执行结果如下:
(所影响的行数为 1 行) 服务器: 消息 2627,级别 14,状态 2,行 1 违反了 UNIQUE KEY 约束 'IX_EmpInfo'。不能在对象 'EmpInfo' 中插入重复键。 语句已终止。
INSERT语句
不能违反检查约束
【例】在表EmpInfo中,假定列Wage被设置为检查约束,检查条件为 “Wage>=0”。试使用INSERT语句在表中插入工资为-1的记录: USE TestDB GO INSERT INTO EmpInfo (Emp_name, Sex, Wage, Dep_id) VALUES ('李四', '男', -1, 1) GO
【例】使用UPDATE语句将表EmpInfo中所有部门编号等于1的员工工资增加10%:
USE TestDB GO UPDATE EmpInfo SET Wage = Wage * 1.1 WHERE Dep_id = 1 GO
UPDATE语句
不允许设置标识列的值
【例】在表DepInfo中,假定列Dep_id被设置为标识列,其编 号由系统自动生成。试在UPDATE语句中设置该列的值:
INSERT语句
INSERT语句的功能是在指定的表中插入一行新的记录:
INSERT INTO <表名> [(<字段名列表>) ] VALUES <字段值的列表>
【例】在部门信息表DepInfo中插入记录。
USE TestDB GO INSERT INTO DepInfo (Dep_Name) VALUES ( '人事部'); INSERT INTO DepInfo (Dep_Name) VALUES ( '开发部'); INSERT INTO DepInfo (Dep_Name) VALUES ( '服务部'); INSERT INTO DepInfo (Dep_Name) VALUES ( '财务部'); GO
执行结果如下:
服务器: 消息 547,级别 16,状态 1,行 1 INSERT 语句与 COLUMN FOREIGN KEY 约束 'FK_EmpInfo_DepInfo' 冲突。该冲
突发生于数据库 'TestDB',表 'DepInfo', column 'Dep_id'。 语句已终止。
UPDATE语句
INSERT语句
【例】使用INSERT语句将记录添加到表EmpInfo中。
USE TestDB GO INSERT INTO EmpInfo VALUES('张三', '男', '部门经理', 6000, '110123aadx1', 1) INSERT INTO EmpInfo VALUES('李四', '男', '职员', 3000, '110123dddx2', 1) INSERT INTO EmpInfo VALUES('王五', '女', '职员', 3500, '110123aadx3', 1) INSERT INTO EmpInfo VALUES('赵六', '男', '部门经理', 6500, '', 2) INSERT INTO EmpInfo VALUES('高七', '男', '职员', 2500, '110123aadx5', 2) INSERT INTO EmpInfo VALUES('马八', '男', '职员', 3100, '110123dddx6', 2) INSERT INTO EmpInfo VALUES('钱九', '女', '部门经理', 5000, '110123aadx7', 3) INSERT INTO EmpInfo VALUES('孙十', '男', '职员', 2800, '110123dddx8', 3) GO
相关文档
最新文档