清华IT SQLServer2005教程(3)
需积分: 0 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操作,你可以有效地管理和操作数据库中的数据,实现数据的增删改查,为业务分析、报表生成等提供基础支持。在实际应用中,还会涉及到更复杂的查询,如联接查询、子查询、视图、存储过程等,这些都是数据库管理中不可或缺的技能。
shengyysqa
- 粉丝: 0
- 资源: 20
最新资源
- 提升小学高年级班级自主管理水平的策略与方法研究
- 小学教育:教师课堂评价语使用现状及其改进策略
- 小学教师行为习惯优化与解决对策
- 基于opencv疲劳检测(完整代码python)
- CNN GRU 注意力 时序预测 基于加注意力机制(CNN-GRU-Attention)的时间序列预测程序,预测精度很高 可用于做风电功率预测,电力负荷预测,交通预测,负荷预测,经济预测,排放预测等
- 2-安卓小黄人影视APP-V1.2.2 纯净版
- STM32与Free RTOS实时操作系统的移植
- 小学劳动教育现状分析及优化策略
- 小学生创新能力培养的问题及对策-教育领域的综合探析
- 基于opencv的信用卡数字识别(完整代码python)
- 探究并解决小学生健康教育中的关键问题
- 小学教育中培养学生口语交际能力的策略
- 教育领域小学生的手机使用现状及管理对策
- 教育学视角下小学生说谎原因及其对策
- 网页版的注册功能,带前端后台,数据库,以及readme文件
- 数形结合思想在小学数学教学中的应用及其改进策略研究