SQL_SERVER2000数据库管理开发

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 创建修改删除索引 关系图
视图管理
• • • • 视图是一个虚拟的表。 视图可以从一个或者多个表中提取信息。 视图可以修改并保存提取的信息。 视图是由查询数据库的表产生,限制了 用户能看到和修改的数据。
• 创建视图 视图设计器 • 修改视图 视图设计器 • 删除视图
SQL语言
SQL语言简介
• 任务:使用单条SELECT语句显示三张表中的数据。 • 在前面两张表基础上在增加一张表 表三: 辅导员表
fdy bj
要求查询输出学生的姓名和他们的科目及其成绩和学生所在 班级辅导员姓名。 • 分析:辅导员表与学生花名册有一个公共列:班级,因此可 以在完成成绩表与学生花名册的内联接的基础上在加上学生 花名册与辅导员表的内联接。
REAL
日期时间数据:DATETIME
货币数据:MONEY
• 查看表中数据 查询所有行 查询设计器 • 设置表中的键: 主键:约束此列数据没有重复值。 表设计器、关系图 外键:实现表对表的约束,即乙表某列不会出现甲表对
应列中没有的值。
关系图、表设计器
索引管理
• • • • 索引用于加速数据的检索 索引也用于实施行的唯一性 索引有两种:聚集索引和非聚集索引 聚集索引:改变表中行的物理顺序,而非 聚集索引不改变。 • 如果需要创建聚集索引,应该先于非聚集 索引创建。
union
select bj,name from student
• 将数据复制成另一张表 select bj,name
Query Analyzer
数据查询语句SELECT
• 使用SELECT语句,实现数据查询,并把 结果以表格形式返回。 • 在数据库实际应用中,SELECT语句使用 非常频繁。
• 基本语法 SELECT 子句 [INTO 子句] FROM 子句 [WHERE 子句] [GROUP BY 子句] [HAVING 子句] [ORDER BY 子句]
说明: COMPUTE BY 只能用于已经排序的列 没有在COMPUTE BY中出现的列名不能出现在SELECT中.
• 执行查询 SELECT stud_id,score FROM score order BY stud_ID compute AVG(SCORE) by stud_id
• 字符串处理 • 例: SELECT UPPER(KC) FROM SCORE 该语句将显示大写字母.
• 执行如下操作:
SELECT name,kc,score,fdy FROM score JION student ON score.stud_id=student.stud_id JION fdyb ON student.bj=fdyb.bj
• 合并两张表 select bj,fdy from fdyb
说明: 1.“JION…..ON….”部分定义内联接。 2.如果SELECT后列名列表被*所取代,那么两张表中的所有列 将显示出来。 3.连接操作符可以是=、>、<等。
• 执行操作 SELECT name,kc,score FROM score JION student ON score.stud_id=student.stud_id
SELECT NAME,BIRTHDAY FROM STUDENT WHERE STUD_ID=‘001’
• 任务:显示值为空的行数据 • 分析:使用NULL(空值)判断。NULL表 示没有输入值,不同于0或者空格。 • 语法: SELECT 选择列表 FROM 表名 WHERE 列名 IS [NOT] NULL • 执行查询
• 集合函数的应用
AVG(ALL/DISTINCT 表达式) COUNT(ALL/DISTINCT 表达式) SUM(ALL/DISTINCT 表达式) MAX(表达式) MIN(表达式) 求平均值 求总记录(行)数 求数值字段(列)的总和 求最大值 求最小值
说明: 1.表达式可以是列名或列名与运算符号的组合; 2.ALL可选,是缺省值,表示选定的全部行起作用; 3.DISTINCT可选,表示在值相同的多行中只取一行.
• 执行查询
SELECT stud_id,sum(SCORE ) FROM STUDENT GROUP BY STUD_ID HAVING AVG(SCORE)>=85
• 任务:生成小计表 • 语法:
SELECT 选择列表 FROM 表名 ORDER BY [ALL] 列名. COMPUTE 集合函数(表达式) BY 列名…..
• 任务:求总记录(行)数 • 例如:求一个班级的总人数. • 执行查询
SELECT COUNT(STUD_ID) FROM STUDENT WHERE BJ=’01’
• 任务:生成汇总表 • 说明:分类汇总表,比如统计每人的总成绩. • 语法:
SELECT 选择列表 FROM 表名 GROUP BY [ALL] 不包含集合函数的表达式…. HAVING 包含集合函数的表达式 WHERE 条件 选择列表内的数值列必须使用集合函数.
变量
• 变量 :只有在声明后才可以使用: DECLARE @变量名 变量类型 注: @@声明该变量为全局变量 例如: DECLARE @ch char(50) DECLARE @i integer DECLARE @dc decimal(10,3) DECLARE @dt datetime DECLARE @r real

year quarter month Day of year day
yy qq mm dy dd
1753-9999 1-4 1-12 1-365 1-31
week
weekday hour minute second millisecond
wk
dw hh mi ss ms
0-51
1-7(1 is Sunday) 0-23 0-59 0-59 0-999
• 使用企业管理器对数据库的操作,使用SQL语 句也能完全实现。 • 所谓数据库开发,就是使用高级语言,如VB、 VC等对数据库实施操纵,包括查询更新数据 等操作。具体讲就是将SQL查询语句内嵌地插 入到高级语言程序的语句中,以达到操纵数据 库的目的。
• 数据库开发的三层模式 在中间业务逻辑层中就是将SQL语句插入到 高级编程语言中实现对数据库的操纵。
• 任务:显示表中指定的、自定义列标题的列数 据 • 语法:
SELECT 列标题=列名[,..列标题=列名]FROM 表名 SELECT列名 列标题 [,.. 列名 列标题]FROM 表名
• 执行查询
SELECT 姓名=NAME,出生日期=BIRTHDAY FROM STUDENT
• 任务:显示表中指定行数据 • 分析:需要指定条件,只有符合条件的行才显示出 来 • 语法: SELECT [TOP n]选择列表 FROM 表名 WHERE 条件 [TOP n]表示只显示前N行. • 执行查询
数据库
• 数据库:由一个或多个相互有关系的表组成数据 库。
表:人员花名册 编号 姓名 出生日期 职务
001 王志
1963.5.10
业务经理
例如:某贸易公司的数据库由购货表、库存表、 销售表、人员花名册表组成,这几个表存在着一 定的关系。 • 以表的形式存放数据的数据库称为关系型数据库。 • SQL-SERVER是关系型数据库管理系统。
• 日期函数
DATEADD(日期元素,数字,日期) DATEDIFF(日期元素,日期1,日期2) DATENAME(日期元素,日期) DATEPART(日期元素,日期) GETDATE() 日期元素表
日期元素 缩写
增加日期 比较两个日期的差距 求日期的日期元素值(字符) 求日期的日期元素值(数字) 返回系统日期时间
• 根据模式匹配来查询 模式匹配方式 : LIKE “LO%”
通配符: % 任意多个字符 _ 任意单个字符 []方括号内的任意单个字符 [^]任意不在方括号内的单个字符 例如: LIKE „LO%‟ 任意以LO 开头的字符串 LIKE „%ON‟ 任意以LO结尾的字符串 LIKE „%RT%‟ 任意包含RT字符串 LIKE „[DK]%‟ 任意以D或者K开头的字符串 LIKE „[A-D]%‟ 任意以A到D中任意一个字母开头的字符串 LIKE „[^D]%‟ 任意不以D开头的字符串 LIKE „A_CD‟ 第二个字符为任意的字符串
Stud_id name birthday bj
表二:成绩表
Stud_id kc score
要求查询输出学生的姓名和他们的科目及其成绩。
• 分析 对于这两张表,它们有一个对等的公共字段属性:学号,该 字段的名称类型长度都一样。我们称之为简单连接或内连接。 • 内联接语法如下:
SELECT 列名 [,列名] FROM 表1名 JION 表2名 ON 表一名.公共列名 连接操作符 表二名.公共列名
SELECT NAME,BIRTHDAY FROM STUDENT WHERE BJ IS NULL
• 任务:按指定顺序显示数据 • 语法: SELECT 选择列表 FROM 表名 ORDER BY 列名1 [ASC|DESC],[列名2…] ASC升序(缺省) DESC 降序 • 执行查询
SELECT NAME,BIRTHDAY FROM STUDENT ORDER BY BJ
运算符
• 算术运算: +、-、*、/、% • 赋值运算: set @v=10 • 比较运算: =、<、>、<=、>=、 <>、!=、!<、!> • 逻辑运算符: P97 • 字符串连接运算符 +
函数
• 日期和时间函数 P101 • 字符串函数 P103 • 其他函数
聚合函数
在查询分析器中使用 SQL语句
常量
• 常量:就是字面值 char:“ABCD”, „EFGH‟, “AB‟C‟DEF” Datetime: „2004-2-24‟,‟10/23/2001 04:00 PM‟注意单引号 Integer: 100,21 decimal: 123.123 float\real: 101.5E5 money: $120
• 例如: select * from student where name like '%an%'
• 排除相同值的查询 select distinct stud_id from score 关键字DISTINCT
显示多张表的数据
• 任务:使用单条SELECT语句显示两张表中的数据。 • 两张表格式如下: 表一:学生花名册
SQL-SERVER数据库管理系统
使用企业管理器 (Enterprise Manager)
数据库管理
• 创建数据库
• 删除数据库
数据表管理
• 创建表 表设计器 关系图 • 删除表
• 数据类型:
数据类型规定存储在列上的数据的类型。 字符数据: CHAR 、VARCHAR、TEXT 数字数据:INT、DECIMAL、NUMERIC、FLOAT、
客户端 浏览器 HTML 等 客户层 高级语言 VC++, VB, ASP 等 业务逻辑 层 SQLSERVER 数据库
数据层
• SQL语言是SQL-SERVER的编程语言, 是一种结构化查询语言(structured query language)。
• 当信息被保存在数据库的表中之后,客 户程序需要使用SQL语言来查询和使用 这些信息。
• 任务:显示表中所有数据
• 语法:SELECT * FROM 表名 • 执行查询 SELECT * FROM STUDENT
• 任务:显示表中指定列数据 • 语法: SELECT 列名[,.. 列名]FROM 表名 • 执行查询
SELECT NAME,BIRTHDAY FROM STUDENT
• 执行查询
SELECT stud_id,sum(SCORE ) FROM STUDENT GROUP BY STUD_ID HAVING AVG(SCORE)>=85
• 任务:生成汇总表 • 说明:分类汇总表,比如统计每人的总成绩. • 语法:
SELECT 选择列表 FROM 表 GROUP BY [ALL] 不包含集合函数的表达式…. HAVING 包含集合函数的表达式 WHERE 条件 选择列表内的数值列必须使用集合函数.
相关文档
最新文档