清华IT SQLServer2005教程(3)

preview
需积分: 0 3 下载量 89 浏览量 更新于2010-02-24 收藏 1.22MB PPT 举报
【SQLServer2005 DML操作详解】 在SQLServer2005中,DML(Data Manipulation Language)主要用于处理数据库中的数据,包括插入(INSERT)、更新(UPDATE)、删除(DELETE)和查询(SELECT)这四种基本操作。本教程将深入讲解这些操作的用法。 1. **INSERT语句**: 使用INSERT语句可以向表中添加新的数据记录。语法格式如下: ``` insert [into] 表名 (字段名1, 字段名2, ...) values (值1, 值2, ...) ``` 例如: - 向"class"表中插入一条新班级记录: ``` insert into class(class_id, class_name, class_place) values ('b01', '一班', '301') ``` - 向"student"表中插入一条新学生记录: ``` insert into student(student_id, name, sex, birthday, telephone_number, address, class_id) values('c01', '张三', '男', '1990-1-1', '12345', '北京', 'b01') ``` 2. **UPDATE语句**: UPDATE语句用于修改表中已存在的数据。基本语法如下: ``` update 表名 set 字段名 = 新值 [where 条件] ``` 示例: - 修改学号为'c03'的学生的联系方式: ``` update student set telephone_number='98765' where student_id='c03' ``` - 批量更新:将所有会员名为“张三”的同学所借图书的还书日期延长一周: ``` UPDATE 借阅信息表 SET 还书日期 = DATEADD(Day, 7, a.还书日期) FROM 借阅信息表 a, 会员信息表 b WHERE a.会员编号 = b.会员编号 AND b.会员姓名 = '张三' ``` 3. **DELETE语句**: DELETE语句用于从表中删除数据记录。基本语法如下: ``` delete [from] 表名 [where 条件] ``` 示例: - 删除学号为'c03'的所有成绩记录: ``` delete from score where student_id='c03' ``` - 删除所有选修了"C语言"但未及格的学生记录: ``` Delete from 成绩表 where 课程代号 in (select 课程代号 from 课程表 where 课程名称 = 'C语言') and 课程成绩 < 60 ``` 4. **SELECT语句**: SELECT语句是SQL中最常用的操作,用于从数据库中检索数据。其语法包括: - **简单查询**: ``` SELECT [TOP n] [DISTINCT] 列名 [AS 别名] FROM 表名 [WHERE 条件] [GROUP BY 列名] [HAVING 条件] [ORDER BY 列名 [ASC|DESC]] ``` - **函数查询**: - **聚合函数**:如`SUM()`、`AVG()`、`MIN()`、`MAX()`、`COUNT([DISTINCT] *)`等。 - **日期函数**:如`DATEADD()`、`DATEDIFF()`等。 - **数学函数**:如`ABS()`、`SQRT()`等。 - **排名函数**:如`RANK()`、`ROW_NUMBER()`等。 - **字符串函数**:如`LEN()`、`LEFT()`、`RIGHT()`、`UPPER()`、`LOWER()`等。 - **系统函数**:如`CURRENT_TIMESTAMP`、`@@ROWCOUNT`等。 简单查询示例: - 查询成绩表中前三名的成绩信息: ``` select top 3 * from score order by score desc ``` - 查询1989年1月1日至1990年12月31日出生的学生信息: ``` select * from student where birthday between '1989-1-1' and '1990-12-31' ``` - 查询课程编号为'k01'且成绩大于80的记录: ``` select * from score where course_id='k01' and score>80 ``` - 对学生表的性别列进行分组: ``` select sex from student group by sex ``` - 查询姓"路"的学生信息: ``` select * from student where name like '路%' ``` 5. **函数查询**: - **聚合函数**: - 求和:`SELECT SUM(课程成绩) AS 总分 FROM score` - 平均值:`SELECT AVG(score) AS 平均分 FROM score` - 最小值/最大值:`SELECT MIN(score) AS 最低分, MAX(score) AS 最高分 FROM score` - 统计数量:`SELECT COUNT(*) AS 记录数 FROM student` 通过熟练掌握这些SQL Server 2005中的DML操作,你可以有效地管理和操作数据库中的数据,实现数据的增删改查,为业务分析、报表生成等提供基础支持。在实际应用中,还会涉及到更复杂的查询,如联接查询、子查询、视图、存储过程等,这些都是数据库管理中不可或缺的技能。