Download presentation
Presentation is loading. Please wait.
1
第三章 SQL Server数据管理
2
回顾 数据完整性包括了实体完整性、引用完整性、域完整性和自定义完整性 创建数据库表的过程实际上就是实施完整性约束的过程
创建表包括选择字段名称、数据类型、定义是否为空、设置默认值、主键和关系、检查约束等 表中没有合适的列作为主键,可以创建标识列 数据的导入/导出操作属于DTS(数据转换服务)
3
目标 理解T-SQL及其作用 使用SQL Server中的逻辑表达式和运算符 使用T-SQL向表中插入数据 使用T-SQL更新表中的数据
4
SQL WHAT(SQL是什么?) WHY(为何要使用SQL?) WHEN(何时使用?) HOW(怎么使用?)
——Structured Query Language:结构化查询语言 WHY(为何要使用SQL?) ——难道仅仅使用企业管理器操作SQL Server数据库? ——应用程序如何与数据库打交道? WHEN(何时使用?) ——对SQL Server执行所有的操作都可以 ——程序中的增删改查 HOW(怎么使用?) ——…
5
SQL和T-SQL T-SQL = Transact-SQL T-SQL是SQL的加强版 对功能进行了扩充:如变量说明、流程控制、功能函数
6
思考 ORACLE数据库支持标准SQL,在SQL Server中编写的T-SQL语句他也支持吗?
7
T-SQL的组成 DML(数据操作语言) DCL(数据控制语言) DDL(数据定义语言) 变量说明、流程控制、功能函数
——查询、插入、删除和修改数据库中的数据; ——SELECT、INSERT、 UPDATE 、DELETE等; DCL(数据控制语言) ——用来控制存取许可、存取权限等; ——GRANT、REVOKE 等; DDL(数据定义语言) ——用来建立数据库、数据库对象和定义其列 ——CREATE TABLE 、DROP TABLE 等 变量说明、流程控制、功能函数 ——定义变量、判断、分支、循环结构等 ——日期函数、数学函数、字符函数、系统函数等
8
T-SQL中的运算符 与C语言中的一样,很难写错 运算符 含义 = 等于 > 大于 < 小于 >= 大于或等于 <=
小于或等于 <> 不等于 ! 非 与C语言中的一样,很难写错
9
通配符 通配符 解释 示例 ‘_’ 一个字符 A Like 'C_' % 任意长度的字符串 B Like 'CO_%' [ ]
括号中所指定范围内的一个字符 C Like '9W0[1-2]' [^] 不在括号中所指定范围内的一个字符 D Like ‘%[A-D][^1-2]'
10
通配符使用说明 通常与LIKE关键字一起来使用 可以用在检查约束中使用LIKE 在后面的查询语句中还会经常使用到
思考:身份证号码的约束表达式怎么写?
11
NOT (付款方式 = '信用卡') OR (信用卡 <>'阳光卡')
逻辑表达式 逻辑表达式 说明 示例 AND 逻辑与 1 AND 1 = ; 1 AND 0 = 0; 0 AND 0 = 0; OR 逻辑或 1 OR 1 = 1; 1OR 0 = 1; 0 OR 0 = 0; NOT 逻辑非 NOT 1 = 0; NOT 0 = 1; NOT (付款方式 = '信用卡') OR (信用卡 <>'阳光卡')
12
讲述T-SQL之前… 数据库对象 语法检查 执行 选择数据库 T-SQL 执行 结果
13
插入数据行 7-1 INSERT [INTO] <表名> [列名] VALUES <值列表>
INSERT INTO Students (SName,SAddress,SGrade,S ,SSEX) VALUES
14
插入数据行 7-2 × 注意事项1:每次插入一行数据,不可能只插入半行或者几列数据,因此,插入的数据是否有效将按照整行的完整性的要求来检验;
INSERT INTO Students (SName,SAddress,SGrade,S ,SSEX) VALUES ('张青裁') ×
15
插入数据行 7-3 × 注意事项2:每个数据值的数据类型、精度和小数位数必须与相应的列匹配;
INSERT INTO Students (SName,SAddress,SGrade,S ,SSEX) VALUES 'ZG') ×
16
插入数据行 7-4 × 注意事项3:不能为标识列指定值,因为它的数字是自动增长的;
INSERT INTO Students (SCode,SName,SAddress,SGrade,S ,SSEX) VALUES ×
17
插入数据行 7-5 × 注意事项4:如果在设计表的时候就指定了某列不允许为空,则必须插入数据;
INSERT INTO Students (SAddress,SGrade,S ,SSEX) VALUES ×
18
插入数据行 7-6 注意事项5:插入的数据项,要求符合检查约束的要求
INSERT INTO Students (SName,SAddress,SGrade,S ,SSEX) VALUES ('张青裁','上海松江',6,'ZQC',0)
19
插入数据行 7-7 注意事项6:具有缺省值的列,可以使用DEFAULT(缺省)关键字来代替插入的数值
INSERT INTO Students (SName,SAddress,SGrade,S ,SSEX) VALUES
20
插入多行数据 4-1 INSERT INTO <表名>(列名) SELECT <列名>
FROM <源表名> INSERT INTO TongXunLu ('姓名','地址','电子邮件') SELECT SName,SAddress,S FROM Students
21
插入多行数据 4-2 SELECT (列名) INTO <表名> FROM <源表名>
SELECT Students.SName,Students.SAddress,Students.S INTO TongXunLu FROM Students 猜一猜:该语句可以执行两次吗?
22
插入多行数据 4-3 SELECT INTO插入多行数据的时候,如何插入新的标识列?
SELECT IDENTITY(数据类型,标识种子,标识增长量) AS 列名 INTO 新表 FROM 原始表 SELECT Students.SName,Students.SAddress,Students.S ,IDENTITY(int,1,1) As StudentID INTO TongXunLuEX FROM Students
23
插入多行数据 4-4 INSERT INTO <表名>(列名) SELECT <列名> UNION ……
INSERT STUDENTS (SName,SGrade,SSex) SELECT '测试女生1',7,0 UNION SELECT '测试女生2',7,0 UNION SELECT '测试女生3',7,0 UNION SELECT '测试女生4',7,0 UNION SELECT '测试男生2',7,1 UNION SELECT '测试男生3',7,1 UNION SELECT '测试男生4',7,1 UNION SELECT '测试男生5',7,1
24
更新数据行 UPDATE <表名> SET <列名 = 更新值> [WHERE <更新条件>]
UPDATE Students SET SSEX = 0 UPDATE Students SET SAddress ='北京女子职业技术学校家政班' WHERE SAddress = '北京女子职业技术学校刺绣班' UPDATE Scores SET Scores = Scores + 5 WHERE Scores <= 95
25
删除数据行 3-1 DELETE FROM <表名> [WHERE <删除条件>]
河南新乡 赵可以 张丽鹃 江西南昌 雷铜 湖南新田 吴兰 山东定陶 李山 …. 地址 姓名 学号 98 数学 81 语文 67 74 88 分数 科目 DELETE FROM Students WHERE SName ='张青裁' DELETE FROM 学员信息表 WHERE 学号 =' '
26
删除数据行 3-2 思考:以下的删除语句可以执行吗? DELETE SCode FROM Students
27
删除数据行 3-3 TRUNCATE TABLE <表名> = TRUNCATE TABLE Students
DELETE FROM Students
28
总结 SQL(结构化查询语言)是数据库能够识别的通用指令集 SQL Server中的通配符经常和LIKE结合使用来进行不精确的限制
WHERE用来限制条件,其后紧跟条件表达式 一次插入多行数据,可以使用INSERT…SELECT…、SELECT…INTO…或者UNION关键字来实现 使用UPDATE更新数据,一般都有限制条件 使用DELETE删除数据时,不能删除被外键值所引用的数据行
Similar presentations