SQLServer数据库入门.ppt_第1页
SQLServer数据库入门.ppt_第2页
SQLServer数据库入门.ppt_第3页
SQLServer数据库入门.ppt_第4页
SQLServer数据库入门.ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SQL Server 2000 数据库入门,游建社,2004.1,24.07.2020,数据库入门,2,SQL Server 2000,MS 数据库管理系统 组成: 程序: 用户界面,工具 数据结构:管理和存储数据 系统database Master Pubs tempDB,24.07.2020,数据库入门,3,SQL Server数据库,管理、存储和访问数据 Database 对应文件: .mdf, .ldf 包含: Table, View, Index, Store Procedure, Trigger, etc.,24.07.2020,数据库入门,4,SQL 2000管理工具,24.07

2、.2020,数据库入门,5,创建database,右键-新建数据库 输入数据库名: test 包含: 数据文件: test_Data 事务日志文件:test_Log 及对应物理文件: .mdf, .ldf,24.07.2020,数据库入门,6,表 Table,Table: 表是包含数据库中所有数据的数据库对象。 表结构: Column 列(字段)的集合 每行是一条记录。 表的定义: 列名 , 数据类型, 初始值, 是否允许空 约束规则,索引, 主键, 外键,24.07.2020,数据库入门,7,建新表,右键- 新建表 列名, 数据类型,长度,允许空 类型:整数:bigInt: 64 bits

3、Int: 32bits,dec, Numeric, Money Datetime Char, VarChar, Nvarchar Text, Image 默认值 自动增长( + 1) RowGUID,24.07.2020,数据库入门,8,主键、外键、,主键(PK): 唯一标示数据, 数据完整性,主键索引,查找快速 关系: 引用 外键(FK):表与表之间的链接,数据完整性、一致性 索引:Index,查找快速 例如:部门, 职员,24.07.2020,数据库入门,9,视图 View,虚拟表, 由查询定义, 包含行、列,View数据并不真正存在在View中, 通过查询其它数据源(数据表、视图、其他数

4、据库、其他服务器)而来。,24.07.2020,数据库入门,10,存储过程 Stored Procedure,Stored Procedure 运行在SQL Server服务器方 类似子程序模块 可以输入、输出参数 包含数据库操作语句( or call SP ) Return value 编程语言:Transact-SQL 优点: 模块化设计、创建一次,重复使用, 后台运行,速度更快 网络流量减少, 安全,/* - Stored Procedure: sp_backupmessage - Get backup file message - by You jianshe 2003-2-14 -

5、*/ CREATE PROC sp_backupmessage as_filename VARCHAR(200) as Restore HEADERONLY FROM DISK = as_filename GO,24.07.2020,数据库入门,11,触发器Trigger,一种特殊SP, 在指定表的数据发生变化时自动生效,即被调用、被执行。(Insert, Update, Delete时) 目的:强制业务规则和数据完整性 Trigger: Transact-SQL语法, (简单或复杂)逻辑处理 Tables: Inserted, Deleted,24.07.2020,数据库入门,12,自定义类

6、型、函数,自定义类型 一般不需要 自定义函数,24.07.2020,数据库入门,13,数据库设计,需求分析 逻辑模型 E-R图 - 实体关系 数据流图 - 业务处理 物理模型 数据库 分析、优化,24.07.2020,数据库入门,14,数据库设计Steps,需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。 概念结构设计阶段 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。 逻辑结构设计阶段 将概念结构转换为某个DBMS所支持的数据模型(例如关系模型),并对其进行优化。 数据库物理设计阶段 为逻辑数据模型选取

7、一个最适合应用环境的物理结构(包括存储结构和存取方法)。 数据库实施阶段 运用DBMS提供的数据语言(例如SQL)及其宿主语言(例如C),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 数据库运行和维护阶段 数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。,24.07.2020,数据库入门,15,数据库设计实例,项目工作管理, 包含数据表: 职员花名册, 公司部门 系统功能 , 权力角色 , 职员角色 项目(Project) 、 项目成员(项目-职员) 项目任务分解(WBS, 分级,包括任务包、 工

8、作量估计,计划, 进度, 人员安排,权重, 任务包父亲 ) 项目任务执行跟踪 (工作日志): 项目 - 职员 时间 对应任务包 实际工作量,24.07.2020,数据库入门,16,E-R图实例,24.07.2020,数据库入门,17,编程接口 API,ADO, OLE DB, ODBC ( JDBC), Embedded SQL, URL, XML (Internet) 使用数据库 打开到数据库的连接。 设置控制某些行为的选项 执行 Transact-SQL 语句 将返回代码的数据值、输出参数和结果集移入程序变量中,并通过程序变量由应用程序逻辑使用。 在完成数据库中的工作后断开连接。,24.0

9、7.2020,数据库入门,18,连接数据库- PB,Transaction SQLCA / 事务对象 sqlca.DBMS = ProfileString (gs_inifile, DATABASE, dbms, MSS) sqlca.DATABASE = ProfileString (gs_inifile, DATABASE, DATABASE, KF) sqlca.userid = ProfileString (gs_inifile, DATABASE, userid, dbo) sqlca.dbpass = ProfileString (gs_inifile, DATABASE, dbp

10、ass, ) sqlca.logid = ProfileString (gs_inifile, DATABASE, logid, sa) sqlca.logpass = ProfileString (gs_inifile, DATABASE, LogPassWord, ) sqlca.servername = ProfileString (gs_inifile, DATABASE, ServerName, (local) sqlca.dbparm = ProfileString (gs_inifile, DATABASE, Dbparm, ) sqlca.AutoCommit = FALSE

11、connect Using SQLCA; / 打开连接 Disconnect Using SQLCA ; / 切断连接,/ Profile sss SQLCA.DBMS = ODBC SQLCA.AutoCommit = False SQLCA.DBParm = ConnectString=DSN=Excel Files;UID=;PWD= 连接Access / Profile Access SQLCA.DBMS = ODBC SQLCA.AutoCommit = False SQLCA.DBParm = ConnectString=DSN=MS Access Database;UID=;PW

12、D=“ / VB-1 cn.Open Driver=SQL Server;Server=Server1;Uid=SA;Pwd=;Database=northwind / VB 2 cn.Provider = sqloledb“ ProvStr = Server=MyServer;Database= northwind; Trusted_Connection=yes cn.Open provStr,24.07.2020,数据库入门,19,获取数据-SQL语句,String ls_empl_name / 变量定义 Select empl_name INTO :ls_empl_name FROM b

13、se_employee Where empl_no = system Using SQLCA ; if sqlca.sqlcode 0 then / 失败 Else / . 成功 End if Long ld_id = 0 String as_table = “tableXXX” /update UPDATE sys_system_id SET id_counter = :ld_id WHERE id_table_name = :as_table Using SQLCA;,24.07.2020,数据库入门,20,获取数据-Datawindow,/ Dw_list Datawindow / d_

14、employee_edit Datawindow Object dw_list.SetTransobject(SQLCA) dw_list.Retrieve( g_userinfo.is_dep_no, g_userinfo.is_empl_cls) . /保存数据 ll_ret = dw_list.update(TRUE ,TRUE) / 判断 If ll_ret = 1 then Commit ; / using SQLCA Else Rollback; / using SQLCA MessageBox(提示,保存时出错!) End if,24.07.2020,数据库入门,21,与数据库连

15、接Datawindow,24.07.2020,数据库入门,22,Transact-SQL 语言简介,标示符: create Table employee ( empl_no char(10) PRIMARY KEY, empl_name varchar(20), age int default 0 , .) 数据类型: 函数: 表达式: 运算符: 注释 关键字:,24.07.2020,数据库入门,23,创建与删除表,Create Table CREATE TABLE dbo.bse_department ( dep_no varchar (10) not NULL , dep_tycode c

16、har (1) NULL , dep_name char (10) NULL , dep_no1 char (4) NULL , dep_name1 char (10) NULL , dep_bld_date datetime NULL , dep_vendor_shared smallint NULL , dep_telno char (20) NULL ) ON PRIMARY GO drop table drop table dbo.bse_department GO,24.07.2020,数据库入门,24,更改数据,Insert INSERT INTO bse_department (

17、dep_no, dep_name) VALUES ( KFB, 开发部 ) GO Update: UPDATE bse_department SET dep_name = development WHERE dep_no = KFB GO Delete Delete from bse_department WHERE dep_no = KFB,24.07.2020,数据库入门,25,简单查询,Select from Where SELECT * FROM bse_department WHERE (dep_tycode = 1) 查询统计: SELECT dep_no AS 部门编号, COU

18、NT(*) AS 部门人数 FROM bse_employee GROUP BY dep_no,24.07.2020,数据库入门,26,联合查询,联合查询 JOIN ( INNER, LEFT, RIGHT ) SELECT bse_department.dep_name, COUNT(*) AS 部门人数 FROM bse_employee INNER JOIN bse_department ON bse_employee.dep_no = bse_department.dep_no GROUP BY bse_department.dep_name, bse_employee.dep_no,

19、24.07.2020,数据库入门,27,聚合函数,SUM ( ) AVG( ) COUNT() MAX() MIN() Select COUNT( *) from table1 Select sum( column1) from table2,24.07.2020,数据库入门,28,结果集组合,UNION Select * from tableA UNION Select * from tableB UNION Select * from tableC Note: 结果集结构必须相同。,24.07.2020,数据库入门,29,子查询,WHERE exp NOT IN ( subquery) W

20、HERE exp comparison_op ( subquery) WHERE NOT EXISTS ( subquery) 例: SELECT * FROM bse_employee WHERE (dep_no NOT IN (SELECT dep_no FROM bse_department WHERE dep_no 0000),24.07.2020,数据库入门,30,多维汇总数据,CUBE SELECT bse_department.dep_name, bse_employee.empl_cls, COUNT(*) AS 部门人数 FROM bse_employee INNER JOIN bse_department ON bse_employee.dep_no = bse_department.dep_no GROUP BY bse_department.dep_name, bse_employee.empl_cls WITH CUBE RollUp S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论