SQL Server 2005 数据仓库创建示例
SQLServer2005
第一章 数据库的基本操作
一、新建数据库
语法格式:
CREATE DATABASE 数据库名 [ON {[PRIMARY] (NAME=‘逻辑文件名’ (NAME=‘逻辑文件名’, FILENAME=‘物理磁盘文件名’ FILENAME=‘物理磁盘文件名’ [,SIZE=文件初始大小] [,SIZE=文件初始大小] [,MAXSIZE={文件最大长度 [,MAXSIZE={文件最大长度 |UNLIMITED}] [,FILEGROWTH=文件增长方式]) [,FILEGROWTH=文件增长方式])
第三章 表数据的基本操作
一、数据的添加、修改和删除 1、数据的添加(INSERT命令) 语法格式: INSERT INTO 表名(列名1,列名2,列名 3,……) VALUES(值1,值2,值3,……) /* 列名列表可省略 */ 或 INSERT INTO 表名 (SELECT 子句)
•例: (1)INSERT INTO xsda(sno,sname,sex,birth,grade) VALUES (‘S01’,‘张三’,‘男’,‘1980-1-13’,135.5) (2)INSERT INTO xsda VALUES(‘S02’,‘李四’,‘女’, ‘981-2-20’,124.5) (3)INSERT INTO xsda (SELECT * FROM xsda1 WHERE sex=‘男’)
注意:如果同时约束表中的多列最好用表级约束, 注意:如果同时约束表中的多列最好用表级约束,例如, 创建下表的主键同时为sno和cno 创建下表的主键同时为 例3:创建xscj表结构 CREATE TABLE xscj ( sno CHAR(3) FOREIGN KEY REFERENCES xsda(sno), cno CHAR(3) FOREIGN KEY REFERENCES kc(cno), grade DECIMAL(4,1) CHECK(grade between 0 and 100), score INT DEFAULT 0, PRIMARY KEY (sno,cno) )
创建一个SQL Server 2005跟踪数据库
创建一个SQL Server 2005跟踪数据库1.启动SQL Server Management Studio,连接数据库引擎。
2.在数据库节点上单击右键激活右键快捷菜单,选择“新数据库”。
3.在新数据库对话框中输入“WorkflowTracking”作为数据库的名称字段,点击确定。
4.下一步将执行WF为设置跟踪所提供的脚本(这会创建表、视图以及工作流跟踪的角色)。
这些脚本的位置在<%WINDIR%>Framework3.0Windows Workflow FoundationSQLZH-CHS,在这里<%WINDIR%>是指你的Windows目录(通常是C:Widows)。
在SQL Server Management Studio打开Tracking_Schema.sql文件。
5.SQL Server Management Studio会在一个新窗口中导入文件中的脚本,但在我们运行脚本前,我们需指明在哪个数据库中运行这些脚本,因此我们要选择WorkflowTracking 数据库。
6.点击工具栏上的执行按钮执行这些脚本。
7.重复4-6步执行Tracking_Logic.sql脚本。
这将在数据库中创建必须的存储过程。
我们现在就创建了一个将记录跟踪信息的数据库,但怎样得到已记录的信息呢?什么组件进行这方面的工作呢?让我们看看!使用SqlTrackingServer服务在工作流跟踪数据库设置好后,现在就是实际使用它的时候了。
我们先创建一个新的工作流并看看我们怎样去跟踪事件。
我们将创建一个稍微复杂一些的工作流,里面有几个事件可以提供给我们去进行跟踪。
在我们创建一个原始的工作流后,我们将增加必要的跟踪代码。
创建一个新工作流并进行跟踪1.为更方便些,我已创建了两个版本的样例应用程序。
Workflow包含两个不同版本的应用程序:一个是不完全版本,一个是完全版本。
完全版本已完全编写完成并可直接运行,非完全版本可方便你进行修改,并按步骤完成相应练习。
实际案例:配置SQL Server 2005 数据库环境
数据库的简介:美国加福利亚大学伯克利分校研究人员的统计表明,经三年间,世界范围内信息生产量平均以每年30%的速度增长,相当于三年里全球信息产量翻了以翻。
同时表明,2002年,全球由纸张、胶片以及磁、光存储介质所记录的信息生产总量达到5万亿兆字节。
大量的数据、信息在不断产生伴随而来的就是如何有效的存储、检索、管理他们。
对于数据的有效存储、高效的访问、方便共享和安全机制,这些问题成了信息时代非常重要的问题。
为了帮助学习数据库的相关知识,下面来讲解数据库的基本概念。
数据库的基本概念1数据描述事物的符号记录称为数据。
数据不仅仅包括数字,很多文字、图形、图像、声音、档案记录等都是数据在数据库中,数据是以“记录”形式按统一的格式存储进行的,而不是杂乱无章的,相同的格式和类型的数据统一放在一起,而不是把“人”和“书”混在一起存储。
这样,数据的存储就能够有条不紊了。
在图1中存储一行数据,在数据中叫做一条记录。
每天记录中每一个输入项叫做列,在图1中编号、姓名、年龄、名族、收入、职业都是列民。
编号姓名年龄名族收入职业1 王涛33 汉3,000.00 IT2 李梅27 汉4,000.00 IT3 王刚30 汉7,000.00 EE4 李军32 汉5,000.00 EE5 蔡航25 回4,500.00 MB(1)数据存储方式2数据库和数据库表不同的记录组织在一起,就形成了数据库(Database,DB)的“表”(table)。
也可以说,表是用来存储具体数据的。
那数据库和表存在怎么样的关系呢?简单地说,数据库就是表的集合。
他是以一定的组织方式存储的相互有关的数据集合,例如:关系型数据库的表是由记录组成,记录是由字节段组成,字段是由字符或数字组成。
他可以供各种用户共享,具体最小的沉余度和较高的数据独立性。
他是统一的相关数据的集合。
通常,数据库并不是简单地存储这些数据的、它还要表示它们之间的关系。
例如:书和人是存在联系的,书的作者可能就是某个人,因此需要建立书和人的“关系”。
SQL2005数据库创建说明
SQL2005数据库创建说明
第一步、按下图点击“SQL Server Management Studio”打开SQL2005
第二步、输入登录名和密码后点击连接打开数据库,(登录名和密码需要电话咨询如家区域IT专员)
第三步、新建门锁软件数据库,数据库命名为ic2000,点击确定添加。
第三步、还原数据库
1、右键选择ic2000按下图提示进入数据还远界面
2、选择源设备添加还原数据库文件icbak2005.bak.(还原文件在门锁安装目录内C:\Program Files\MF system\MF system)
3、选择还原数据库文件还原数据库
点击确定添加
SYS.INI配置设置文件。
5、修改SYS.INI配置设置里面相关配置。
安装SQL2005时所设密码
数据库帐户名sa
数据库所在电脑名称(或IP)
数据库所在电脑名称(或IP)。
实验五 数据库的建立和维护(sql)
实验五:数据库的建立和维护一、实验目的(1)认识SQL SERVER2005数据库管理系统,熟悉它的使用界面;(2)熟练掌握使用可视化方法及利用SQL语句建立数据库、修改数据库属性、更改数据库名称及删除数据库的操作。
二、实验内容在SQL SERVER2005中使用可视化方法及利用SQL语句建立数据库、修改数据库属性、更改数据库名称及删除数据库。
三、实验步骤:在SQLSERVER中用SQL SERVER2005 Management Studio新建数据库:1建立xsgl数据库:1)用可视化方法创建数据库:①启动SQL Server2005Management Studio,界面如下:SQL Server2005企业管理器界面②选择树形菜单数据库,点击鼠标右键,出现如下弹出式菜单,选择新建数据库③在图中,按图分别设置数据库xsgl的属性,点击确定按钮,完成了数据库的创建。
数据库名称属性设置图6 数据库数据文件和日志文件属性设置选择确定按钮,则创建xsgl数据库。
2)用SQL语句建立数据库xsgl单击常用工具栏的按钮“新建查询”,就可以建立一个数据库引擎查询文档,利用代码在其中创建数据库:2查看和修改数据库属性1)使用可视化方法:①启动SQL Server2005Management Studio,右击指定的数据库,选择“数据库属性”对话框。
②在该对话框中选择“文件”项,就可以对数据库文件进行修改。
可以增加数据文件,也可以删除数据文件,还可以修改数据库文件的逻辑名称、大小和增长率。
但不能修改数据库文件的类型、所在的文件组、路径及文件名。
2)使用SQL语句修改数据库属性。
①增加数据文件。
在数据库引擎文档中输入代码:②增加日志文件。
在数据库引擎文档中输入代码:③修改数据库文件,修改数据库“XSGL”中的日志文件的初始大小和最大值,代码:④删除数据文件,删除数据库中的xs_log日志文件,代码:3更改数据库名称1)可视化方法选中需要改名的数据库,右击选择“重命名”即可。
SQL Server 2005之数据库的创建
SQL Server 2005之数据库的创建(二)2009年05月03日星期日12:13在上一篇博客中写了sql2005企业版的安装,今天来做下里面数据库的创建,数据库的创建有两种:图形界面的创建和命令方式的创建。
图形界面的创建是比较简单的,公司里面的管理员一般用的图形界面比较多点,如果要操作两个不痛的数据库那就用到了命令方式来创建,因为所有的数据库都是根据一个标准来建立的,命令基本上是一致的。
我们先来用图形界面来建立数据库:打开“开始--程序--microsoft sql2005--sql server management studio ”进入数据库的管理工具中。
进去后,在“数据库”那右击点击新建数据库:出来一个新建选项夹,在数据库名称那输入自己想建数据库的名称,还可以在这里面设置一下我们设置数据库的属性(路径,初始大小)我们来查看下是否创建成功,点开如下图:我们的数据库创建完成,图形界面的数据库创建完成。
上面做了图形界面的创建,下面我们来用命令创建数据库,这个就需要看大家的记忆了。
点击上面的“新建查询”出现了如图右面的对话框,在里面输入命令就可以了,一个数据库包含两种文件:一个是数据文件,一个是日志文件,我们先来看看数据文件怎么写,大家要看清楚命令的每行末尾都有一个逗号,那个逗号省掉了就是错误的了,命令:create database bb(数据库名称)on(name='bb_date', (文件名)filename='c:\sql2005\bb.mdf', (文件存放目录)size=10mb, (初始化大小)maxsize=100mb, (最大容量)filegrowth=5mb (递增量))我们上面写的那个路径必须是C盘下已经有的文件夹,如果没有等下会报错误的。
数据文件创建完成,我们来创建下日志文件命令:log on(name='bb_log',filename=c:\sql2005\bb.ldfsize=5mb,maxsize=50mb,filegrowth=1mb)写完以后全选命令,现在我们还不着急执行这条命令,我们先来分析一下,看看有没有错误,如下图:点击“分析”看下图命令是成功的,这样我们就可以放心的执行了。
SQL Server2005使用T-SQL管理数据库
回顾数据库的基础知识
主数据文件
日志文件 次要数据文件
创建数据库的语法 语法
CREATE DATABASE databasesName ON [ primary ] 可以省略 ( name ='databases_data',--表示数据库文件的逻辑名 filename =‘路径\databases_data.mdf’,--表示数据库 文件的物理文件名
--设置当前数据库为master,以前访问sysdatabases use master go 检测某个记录是否存在 if exists (select * from sysdatabases where name='myschool') drop database myschool
完整的创建数据库的SQL
USE myschool GO /*检测是否存在students表*/ IF EXISTS (SELECT * FROM name='students') DROP TABLE students
sysobjects WHERE
完整的创建数据表的SQL
USE myschool GO /*检测是否存在students表*/ IF EXISTS (SELECT * FROM name='students') DROP TABLE students go /*创建图书作者表*/ create table students ( … … … ) go
数据库的日志文件主要参数
创建数据库示例1
create database myschool on primary ( /*以下是主数据文件的属性*/ name='myschool_data', --主数据文件的逻辑名称 filename='e:\myschool_data.mdf',--主数据文件的物理路径 size=5mb, --主数据文件的初始大小 maxsize=100mb, --主数据文件的最大值 filegrowth=15% --主数据文件的增长率 数据文件的主要参数 ) log on 日志文件的主要参数 ( /*以下是日志文件的属性*/ name='myschool_log', --日志文件的逻辑名称 filename='e:\myschool_log.ldf', --日志文件的物理路径 size=2mb, --日志文件的初始大小 filegrowth=2mb --日志文件的增长率 ) 教员演示 go
SQL Sever2005设计数据库
SQL Sever2005设计数据库4.1创建数据库:sqlBookshop4.2创建表:表名:sqlBookshop表名:pinglun序号列名数据类型长度小数位标识主键允许空默认值说明1 postID int 0 √2 bookID int 0 √3 textname varchar 100 04 userName nvarchar 50 05 text varchar 1000 06 speaktime datetime表名:tblBook序号列名数据类型长度小数位标识主键允许空默认值说明1 bookID int 0 √2 typeID int 4 03 bookName nvarchar 50 04 bookAuthor nvarchar 50 0 √5 bookPrice numeric(18,1) 06 publisher nvarchar 50 0 √7 publishDate smalldatetime 10 0 √8 bookImage nvarchar 50 0 √9 IsSelling bit 0表名:tblorder序号列名数据类型长度小数位标识主键允许空默认值说明1 orderID int 0 √2 userID int 03 orderTime smalldatetime 04 orderSum numeric(10,1) 05 payment nvarchar(20) 06 ship nvarchar(20) 07 buyerName nvarchar(30) 08 buyerEmail nvarchar(50) 09 buyerAddress nvarchar(60) 010 buyerCode nvarchar(30) 011 buyerTel nvarchar(30) 012 Payed int 0表名:tblorderBook序号列名数据类型长度小数位标识主键允许空默认值说明1 OrderID int 0 √2 bookID int 0 √3 quality int 04 soldPrice numeric(18,1) 05 paysum numeric(18,1)表名:tblType序号列名数据类型长度小数位标识主键允许空默认值说明1 typeID int 02 typeName sysname 03 fatherID int 0 √4 IsDelete bit 0表名:tbluser序号列名数据类型长度小数位标识主键允许空默认值说明1 UserID int 0 √√2 UserName nvarchar 50 03 UserPwd nvarchar 50 05数据库安全性5.1概述基于项目特点,项目的安全控制主要由程序代码控制。
创建一个SQL Server 2005跟踪数据库
创建一个SQL Server 2005跟踪数据库1.启动SQL Server Management Studio,连接数据库引擎。
2.在数据库节点上单击右键激活右键快捷菜单,选择“新数据库”。
3.在新数据库对话框中输入“WorkflowTracking”作为数据库的名称字段,点击确定。
4.下一步将执行WF为设置跟踪所提供的脚本(这会创建表、视图以及工作流跟踪的角色)。
这些脚本的位置在<%WINDIR%>Framework3.0Windows Workflow FoundationSQLZH-CHS,在这里<%WINDIR%>是指你的Windows目录(通常是C:Widows)。
在SQL Server Management Studio打开Tracking_Schema.sql文件。
5.SQL Server Management Studio会在一个新窗口中导入文件中的脚本,但在我们运行脚本前,我们需指明在哪个数据库中运行这些脚本,因此我们要选择WorkflowTracking 数据库。
6.点击工具栏上的执行按钮执行这些脚本。
7.重复4-6步执行Tracking_Logic.sql脚本。
这将在数据库中创建必须的存储过程。
我们现在就创建了一个将记录跟踪信息的数据库,但怎样得到已记录的信息呢?什么组件进行这方面的工作呢?让我们看看!使用SqlTrackingServer服务在工作流跟踪数据库设置好后,现在就是实际使用它的时候了。
我们先创建一个新的工作流并看看我们怎样去跟踪事件。
我们将创建一个稍微复杂一些的工作流,里面有几个事件可以提供给我们去进行跟踪。
在我们创建一个原始的工作流后,我们将增加必要的跟踪代码。
创建一个新工作流并进行跟踪1.为更方便些,我已创建了两个版本的样例应用程序。
Workflow包含两个不同版本的应用程序:一个是不完全版本,一个是完全版本。
完全版本已完全编写完成并可直接运行,非完全版本可方便你进行修改,并按步骤完成相应练习。
1.使用SQLServer2005创建数据库和表.doc
实验一使用SQL Server2005创建数据库和表目标完成本实验,将能够:分别使用SQL Server2005数据库管理系统和SQL语句创建数据库和表。
实验预估时间:30 min练习1使用SQL Server2005数据库管理系统创建数据库和表在本练习中,将使用SQL Server2005数据库管理系统创建Student数据库,并在Student 数据库中创建表Student,使你能够掌握使用SQL Server2005数据库管理系统创建数据库和表的方法。
1)启动SQL Server2005 :依次单击开始—>所有程序—>SQL Server 2005 —>SQL Server Management StudioExpress启动SQL Server 2005数据库管理系统2)登录数据库服务器:点击“连接到服务器“对话框中的连接按钮连接到SQL Server 2005数据库服务器。
3)创建数据库Stude nt在SQL Server 2005数据库管理系统的左边栏“对象资源管理器”中右击数据库对象,在弹出的快捷菜单中单击“新建数据库”命令。
在弹出的“新建数据库”对话框右侧的数据库名称中输入数据库名称“ Stude nt ”,然后单击确定。
恿项牛當送我 *琲一救据^锚⑧; »«« 如;LIH 用全文走引皿)卿冉熬 亦件类盘宜件组 Studiiil SltgPBIIURYStndmlJ tf 日志 不适用理魅生世吐自动増低「路轻;3 ...................... 増虽为L 加…和B 制培长 . DAPr^m PLlw^lJj ..................... 坍出为LOK.不除制驚长0嵌呻“ Big 河口TKIMrajiD\2eLE!!TMSS逹按.Tb.Lnkffid'.5IJH割杏;SA 摊凰样4) 在Student数据库中新建表"Student ”单击SQL Server 2005数据库管理系统的左侧的“对象资源管理器”栏中的”刷新” 1按钮,以显示出新建的数据库“Stude nt”。
SQL_Server_2005数据库的创建和管理教程
文件类型:显示文件是数据文件,还是日志文件,数据文件用来存
放数据,而日志文件用来存放对数据所做操作的记录。 文件组:为数据库中的文件指定文件组,主文件组(PRIMARY)或
任一辅助文件组(SECONDARY)。所有数据库都必须有一个主文
Resource数据库
一个只读数据库,包含 SQL Server 2005包括的系统对象。 系统对象在物理上保留在 Resource 数据库中,但在逻辑 上显示在每个数据库的 sys 架构中。
4.1 SQL Server 2005数据库概述
SQL Server 2005
示例数据库
AdventureWorks/AdventureWorks DW是SQL Server
4.2.2 使用T-SQL语句创建数据库
SQL Server 2005
• NAME:指定数据库的逻辑名称,这是在SQL Server系统中
使用的名称,是数据库在SQL Server中的标识符。 • FILENAME:指定数据库所在文件的操作系统文件名称和路
径,该操作系统文件名和NAME的逻辑名称一一对应。
SQL Server 2005
数据库的定义
数据库(database)是对象的容器,以操作系统文件的形
式存储在磁盘上。
它不仅可以存储数据,而且能够使数据存储和检索以安
全可靠的方式进行。一般包含关系图、表、视图、存储 过程、用户、角色、规则、默认、用户自定义数据类型 和用户自定义函数等对象。
4.1 SQL Server 2005数据库概述
SQL Server 2005
例4-1:创建了一个Test数据库,该数据库的主数据文件 逻辑名称为Test_data,物理文件名为Test.mdf,初始大 小为10MB,最大尺寸为无限大,增长速度为10%;数据
sql server2005中用语句创建数据库和表
在sql server2005中用语句创建数据库和表:具体示例如下:use mastergoif exists (select * from sysdatabases where name='study')--判断study数据库是否存在,如果是就进行删除drop database studygoexec sp_configure 'show advanced options', 1go-- 更新当前高级选项地配置信息reconfiguregoexec sp_configure 'xp_cmdshell', 1go-- 更新当前功能(xp_cmdshell)地配置信息.reconfiguregoexec xp_cmdshell 'mkdir d:\data', no_output--利用xp_cmdshell 命令创建文件夹,此存储过程地第一个参数为要执行地有效dos命令,第二个参数为是否输出返回信息.gocreate database study--创建数据库on primary(name='study_data',--主数据文件地逻辑名filename='d:\data\study_data.mdf',--主数据文件地物理名size=10mb,--初始大小filegrowth=10% --增长率)log on(name='study_log',--日志文件地逻辑名filename='d:\data\study_data.ldf',--日志文件地物理名size=1mb,maxsize=20mb,--最大大小filegrowth=10%)gouse studygoif exists (select * from sysobjects where name='student')--判断是否存在此表drop table studentgocreate table student(id int identity(1,1) primary key,--id自动编号,并设为主键[name] varchar(20) not null,sex char(2) not null,birthday datetime not null,phone char(11) not null,remark text,tid int not null,age as datediff(yyyy,birthday,getdate())--计算列.)goif exists (select * from sysobjects where name='team')drop table teamgocreate table team(id int identity(1,1) primary key,tname varchar(20) not null,captainid int)goalter table studentaddconstraint ch_sex check(sex in ('男','女')),--检查约束,性别必须是男或女constraint ch_birthday check(birthday between '1950-01-01' and '1988-12-31'), constraint ch_phone check(len(phone)=11),constraint fk_tid foreign key(tid) references team(id),--外键约束,引用team表地主键constraint df_remark default('请在这里填写备注') for remark--默认约束,go更多信息请查看IT技术专栏。
sql server 2005 mdf ldf 如何创建数据库
Vs .net 2003 数据库sql server 2005开发1. 安装数据库参照文档- SQL Server 2005安装图解.chm参照安装文件夹下说明。
2. 启动数据库服务器Microsoft SQL Server 2005->配置工具->SQL Server Configuration Manager启动SQL Server(MSSQLSERVER)右键->属性可以设置启动模式帐户名就是本机器登录的用户名和密码。
Microsoft SQL Server 2005->SQL Server Management Studio是用来管理所有的SQL server服务器的数据库。
可以用来配置数据库系统、建立或删除数据库对象、设置或取消用户访问的权限等。
它启动后界面如下:选择数据库类型(一般默认为数据库引擎,因为它包括所有数据库的管理)服务器名称(如果是本机器时.)身份验证:在安装时设置的方式登录。
如下图所示:安装图:登录图1:或登录图2:可以通过下图修改登录密码可以通过先建立用户名和密码再设置登录,也可以对以前的用户权限进行设置SQL Server Management Studio可以管理多个服务器(包括远程服务器)3.创建数据库3.1 新建数据库比较简单3.2拷贝现有数据库直接数据库--右键--附加数据库--浏览mdf文件建立现有数据库3.3利用备份恢复4. vs .net2003通过ODBC 对数据库的连接和访问4.1.通过ODBC访问数据库ODBC是一个桥梁,连接数据库和 2003应用程序。
ODBC包括:ODBC应用程序、ODBC驱动程序、驱动程序管理器、数据源。
ODBC通过对数据源的管理来确定所连接的数据库,ODBC通过数据源类型来实现对数据源用户的权限控制。
在使用ODBC之前,必须安装一个ODBC驱动程序,然后配置一个数据源。
ODBC驱动程序使用Data Source Name(DSN)来定位数据库,DSN包含:数据库配置、用户安全信息和定位信息。
SQL server 2005_数据设计实例
一、需求分析1、主要的业务需求用户管理员可以对教师、学生、课程、班级、系别等相关信息进行查看和维护。
教师可以向数据库输入课程成绩。
学生可以看自己的考试成绩。
学生可以选择自己的课程。
2、涉及到的数据范围:教师、学生、课程、班级、系别3、相关属性介绍:教师一般包括的属性有:教职工号、教师姓名、性别、年龄、职称、基本工资、津贴、生活补贴等学生信息一般包括的属性有:学号、姓名、性别、年龄、班级等班级信息一般包括的属性有:班号、班名、专业、系别等课程信息一般包括的属性有:课程号、课程名、学分等系别信息一般包括的属性有:系号、系名等4、其它相关要求1)教师和学生的性别必须为“男”、“女”不得输入其它性别2)教师和学生的年龄必须在18-100岁之间,不接收百岁老人在我校学习或任教。
3)每个学生必须要有一个班级。
4)每个班级至少有一名学生。
5)每名教师至少要担任一名课程。
6)每个班级必须有一个所属系别7)每门课程都必须要有期终成绩。
60分为及格分,及格的同学可以获得该课程的应有的学分。
8)可以方便统计出各个班级的平均成绩。
9)教程的津贴不得大于基本工资。
10)不得随意更改不及格同学的成绩11)不得删除不及格同学的记录。
12)老师工资必须在400元以上。
二、概念设计三、逻辑设计教师:Teacher(Tno,Tname,Tsex,Tage,Tzc,Tsalary,Tjintie,Tbutie)学生信息:Student(Sno,Sname,Ssex,Sage,Clno)班级信息:Class(Clno,Clname,special,Dno)课程信息:Course(Cno,Cname,Credits)系别:Department(Dno,Dname)四、物理设计4.8.2 数据处理和存储系统设计系统的数据层可以完成数据的存储和处理,这一层的内容包括数据库管理系统和数据接口。
数据库管理系统必须是具有安全、可靠、易管理等特点。
实验二 SQL2005数据库、表及视图的创建
实验二SQL2005数据库、表及视图的创建实验平台:安装SQL2005数据库的PC实验目的:1.深入SQL2005中数据库的文件构成、数据表字段数据类型。
2.掌握SQL2005中数据库、数据表、视图的创建。
实验内容:1.创建数据库、分离、备份、附加与删除。
2.数据表的创建、修改、删除(包括完整性的实现、索引的创建)。
3. 对数据表中的数据进行插入数据,修改数据,删除数据操作。
4. 视图的创建、数据输入、与删除视图实验具体要求:参看SQL Server实验指导书完成下面实验【创建数据库】:1.交互式创建数据库jxsk1>启动SQL2005 Server Management Studio,登录到数据库服务器中2>在“对象资源管理器”中选中“数据库”,单击右键,选中“新建数据库(N)...”,在弹出的“新建数据库”窗口中的“选项页”中选择“常规”,在右边窗口中的“数据库名称”输入“jxsk”,点击“数据库文件”列表中的“路径”列的右侧按钮,将数据文件和日志文件的路径均改为“D:\DataBase”,如图:然后单击“确定”,即可完成数据库的创建。
3>查看和更改数据库属性:在“对象资源管理器”中选择“数据库”—>“jxsk”,右击选择“属性”,在“选项页”中选择“文件”即可看到数据库属性,单击“数据库文件”列表的“自动增长”的右边按钮,将选择按MB值增长,增长量设为5Mb。
如图:点击“确定”,在点击“确定”即可完成数据库的属性修改。
2.使用Transact-SQL指定参数创建数据库testbase11)创建数据库database11>打开并连接到数据库服务器2>单击工具栏的“创建查询”打开查询编辑器窗口,在查询编辑器窗口中输入下列T-SQL语句:Create DA TABASE testbase1ON(NAME=testbase_data,FILENAME='D:\DataBase\testbase_data.mdf')LOG ON(NAME=testbase_log,FILENAME='D:\DataBase\testbase_log.ldf')如图:然后单击菜单栏的运行SQL语句即可创建出t数据库testbase1,在“对象资源管理器中的数据库”子目录多增加了“estbase1”数据库。
实验3 SQL Server 2005创建数据库和数据库文件
实验3创建数据库和数据库文件3.1课堂练习:创建数据库3.1.1目标本课堂练习的目标是能够使用SQL Server Management Studio 和Transact-SQL 创建数据库。
本次课堂练习将使用两种技术创建新数据库。
3.1.2使用SQL Server Management Studio 创建数据库执行以下步骤使用SQL Server Management Studio 创建数据库:1.单击“开始”,指向“所有程序”,指向“Microsoft SQL Server 2005”,然后单击“SQL Server Management Studio”。
3.如果“对象资源管理器”不可见,则单击“视图”菜单上的“对象资源管理器”。
4.在“对象资源管理器”中,右键单击“数据库”,然后单击“新建数据库”。
6.在TestDB 条目的“自动增长”列中,单击省略号按钮(...)。
7.在“更改TestDB 的自动增长设置”对话框中,不选“启用自动增长”复选框,然后单击“确定”。
8.将TestDB_log 条目的“初始大小”设置更改为 5 MB。
9.在TestDB_log 条目的“自动增长”列中,单击省略号按钮(...)。
10.在“更改TestDB_log 的自动增长设置”对话框中,不选“启用自动增长”复选框,然后单击“确定”。
11.在“新建数据库”对话框中,单击“确定”创建数据库。
12.在对象资源管理器中,展开“数据库”文件夹确认TestDB 已经创建;如果TestDB未列出,则右键单击“数据库”文件夹,然后单击“刷新”。
13.使SQL Server Management Studio 保持打开状态。
您将在下一个过程中用到它。
3.1.3使用Transact-SQL 创建数据库执行以下步骤使用Transact-SQL 创建数据库:1.在SQL Server Management Studio 中,单击工具栏上的“新建查询”按钮。
SQL Server 2005基础应用(入门到精通·循序渐进·案例详解·适合初学者)
SQL Server 2005基础应用一.数据库的基本操作--创建数据库create database new_db2on primary(name='new.mdf',filename='e:\new.mdf',size=5mb,maxsize=50mb,filegrowth=10%)--收缩数据库alter database new_dbmodify file(name='new_db',size=15mb)--压缩数据库dbcc shrinkdatabase('new_db',1)--重命名数据库exec sp_renamedb'new_db','Jasxu_db'--删除数据库drop database new_db2二.数据库表的基本操作--创建数据库create database st_dbon primary(name='st.mdf',filename='e:\st,mdf',size=5mb,maxsize=50mb,filegrowth=20%)--删除Jasxu_db数据库drop database Jasxu_db--在st_db数据库中编辑use st_db--创建表create table table_name(学号int primary key identity,--这里的identity意思就是将标志规范设置为递增名称char(6)not null,专业方向varchar(10)not null,系部代码char(2)not null,备注varchar(50))--查看表的基本信息exec sp_help table_name--重命名表exec sp_rename'table_name','new_table'--重命名列exec sp_rename'new_table.备注','其他','column'--添加新列alter table new_table add新列char(10)--更改列的数据类型alter table new_tablealter column新列int not null--删除列alter table new_tabledrop column新列--删除表drop table new_table--案例解析create table t2(id int not null,us varchar(30))--查询表里面的内容select*from t1--删除表的所有数据truncate table t1--创建主键约束alter table t1add constraint pkprimary key clustered(id)--创建外键约束alter table t2add constraint wzforeign key(id)references t1(id)--references代表参照哪个表的主键设置外键三.数据库表的增加、删除、修改--创建系部表create table系部(系部代码char(6)not null primary key,系部名称varchar(30)not null,系主任char(8))--创建专业表create table专业表(专业代码char(4)not null primary key,专业名称varchar(20)not null,系部代码char(6)constraint wz11 references系部(系部代码))--创建班级表create table班级表(班级代码char(9)not null primary key,班级名称varchar(20),专业代码char(4)constraint wz1 references专业表(专业代码),系部代码char(6)constraint wz2 references系部(系部代码),备注varchar(50))--创建学生表create table学生表(学号char(12)not null primary key,姓名char(8),性别char(2),出生日期datetime,入学时间datetime,班级代码char(9)constraint wz3 references班级表(班级代码),系部代码char(6)constraint wz4 references系部(系部代码),专业代码char(4)constraint wz5 references专业表(专业代码))--在new_table表中添加数据insert into new_table values('Jasxu','计算机','01','无')--选择性的插入数据insert into new_table(名称,专业方向,系部代码)values('xsw','软件工程','02') --省略values的insert语句insert into new_table (名称,专业方向,系部代码)select名称,专业方向,系部代码from new_table--修改new_table表update new_table set系部代码='01'update new_table set专业方向='软件工程'where专业方向='计算机'--删除new_table中的内容delete new_table where专业方向='软件工程'delete new_table where学号='10'四.数据库表的简单查询--查询new_table表中所有信息内容select*from new_tableselect学号,名称,专业方向,系部代码,其他from new_table--输出表中的部分字段select学号,名称from new_table--选择表中若干记录(去掉结果中的重复行)select distinct系部代码from new_table--限制返回的行数select top 3 *from new_table--查询学号大于的信息select*from new_table where学号>13--确定范围(between and)select*from new_table where学号between 12 and 16--确定集合(in,not in)select*from new_table where学号in(12,13,14,15)select*from new_table where学号not in(12,13,14,15)--字符匹配select*from new_table where名称like'徐_'--两个字的姓名select*from new_table where名称like'徐__'--三个字的姓名select*from new_table where名称like'徐%'--%代表任意长度select*from new_table where名称like'徐\%'escape'\'--通配符的转换--清空数据truncate table new_table--插入数据insert into new_table values('张学友','网络','01','没有','411')insert into new_table values('刘德华','计算机','02','没有','412') insert into new_table values('舒淇','计算机','01','没有','413')insert into new_table values('梁咏琪','动漫','02','没有','431')insert into new_table values('杨千嬅','计算机','01','没有','465') insert into new_table values('李宇春','动漫','02','没有','485')insert into new_table values('蔡依林','网络','01','没有','468')insert into new_table values('郑源','计算机','02','没有','510')insert into new_table values('陈楚生','动漫','01','没有','550')insert into new_table values('张韶涵','计算机','02','没有','421') insert into new_table values('猛非','动漫','01','没有','423')insert into new_table values('郑秀文','网络','02','没有','411')insert into new_table values('林俊杰','计算机','01','没有','511') insert into new_table values('羽泉','计算机','01','没有','500')insert into new_table values('郭富城','网络','02','没有','400')insert into new_table values('黄品源','动漫','02','没有','589')insert into new_table values('梁朝伟','计算机','02','没有','530') insert into new_table values('李克勤','网络','01','没有','520')insert into new_table values('陈小春','国际金融','02','没有','512') insert into new_table values('刘若英','证券期货','02','没有','421') insert into new_table values('刘嘉玲','房地产金融','01','没有','428') insert into new_table values('谭咏麟','房地产金融','02','没有','498') insert into new_table values('张学友','证券期货','01','没有','454') insert into new_table values('张卫健','证券期货','02','没有','515') insert into new_table values('周传雄','房地产金融','01','没有','532') insert into new_table values('周星驰','国际金融','02','没有','423') insert into new_table values('游鸿明','房地产金融','02','没有','447') insert into new_table values('言承旭','国际金融','02','没有','488') insert into new_table values('许志安','国际金融','01','没有','582') insert into new_table values('叶倩文','房地产金融','01','没有','495') insert into new_table values('叶世荣','房地产金融','02','没有','499') insert into new_table values('张雨生','证券期货','02','没有','531') insert into new_table values('周润发','国际金融','01','没有','531') insert into new_table values('张信哲','证券期货','01','没有','424') insert into new_table values('周渝民','证券期货','02','没有','412') insert into new_table values('太极乐队','证券期货','02','没有','423') --查询new_table表select*from new_table--涉及空值的查询select*from new_table where其他is nullselect*from new_table where not其他is null--用指定使用结果值来创建一个表(注意:在表前加一个#创建出来的是临时表)select学号,名称,高考分数into score_table from new_tableselect*from score_table--对结果进行分组select系部代码from new_table group by系部代码select专业方向from new_table group by专业方向select专业方向from new_table group by专业方向having专业方向<>'动漫'--having起到筛选作用--排序查询(asc升序desc降序)select*from new_table order by高考分数ascselect*from new_table order by高考分数desc五.数据表中对数据进行统计--查询数据库表new_table中的信息select*from new_tableselect*from new_table order by高考分数descselect top 3 *from new_table order by高考分数desc--查询总人数select count(*)as总人数from new_table--这里的as是为列重命名select count(学号)as总人数from new_tableselect count(其他)as总人数from new_table--计算整个班级高考的总分数select sum(高考分数)as总分from new_table--计算整个班级高考的平均分数select avg(高考分数)as平均分from new_table--计算整个班级高考的最大值select max(高考分数)as最大值from new_table--计算整个班级高考的最小值select min(高考分数)as最小值from new_table--对查询结果集中的所有记录进行汇总统计,并显示所有参加汇总记录的详细信息select*from new_table order by专业方向compute sum(高考分数)select专业方向,count(*)as总人数from new_table group by专业方向--统计专业方向一共多少select专业方向,count(*)as总人数from new_table group by专业方向compute count(专业方向)--统计系部总人数select专业方向,count(*)as总人数from new_table group by专业方向compute sum(count(*))六.数据库中表的连接查询--插入数据这里的go起到连接作用insert into系部(系部代码,系部名称,系主任)values('01','计算机系','老张') goinsert into系部(系部代码,系部名称,系主任)values('02','经济管理系','老陈') goinsert into系部(系部代码,系部名称,系主任)values('03','机械系','老李')goinsert into系部(系部代码,系部名称,系主任)values('04','计算机系','老梁') goinsert into专业表(专业代码,专业名称,系部代码)values('0101','软件工程','01')goinsert into专业表(专业代码,专业名称,系部代码)values('0102','网络工程','01')goinsert into专业表(专业代码,专业名称,系部代码)values('0103','信息工程','01')goinsert into专业表(专业代码,专业名称,系部代码)values('0201','工商管理','02')goinsert into专业表(专业代码,专业名称,系部代码)values('0202','物流管理','02')goinsert into专业表(专业代码,专业名称,系部代码)values('0301','模具加工','03')goinsert into专业表(专业代码,专业名称,系部代码)values('0302','机电一体化','03')goinsert into专业表(专业代码,专业名称,系部代码)values('0401','应用数学','04')goinsert into专业表(专业代码,专业名称,系部代码)values('0402','金融数学','04')goinsert into班级表(班级代码,班级名称,专业代码,系部代码,备注)values('010101','软件工程班','0101','01','暂无')goinsert into班级表(班级代码,班级名称,专业代码,系部代码,备注)values('010102','软件工程班','0101','01','暂无')goinsert into班级表(班级代码,班级名称,专业代码,系部代码,备注)values('010103','网络工程班','0102','01','暂无')goinsert into班级表(班级代码,班级名称,专业代码,系部代码,备注)values('010104','网络工程班','0102','01','暂无')goinsert into班级表(班级代码,班级名称,专业代码,系部代码,备注)values('010105','信息工程班','0103','01','暂无')goinsert into班级表(班级代码,班级名称,专业代码,系部代码,备注)values('010106','工商管理班','0201','02','暂无')goinsert into班级表(班级代码,班级名称,专业代码,系部代码,备注)values('010107','物流管理班','0202','02','暂无')goinsert into班级表(班级代码,班级名称,专业代码,系部代码,备注)values('010108','模具加工班','0301','03','暂无')goinsert into班级表(班级代码,班级名称,专业代码,系部代码,备注)values('010109','应用数学班','0401','04','暂无')goinsert into班级表(班级代码,班级名称,专业代码,系部代码,备注) values('0101010','金融数学班','0402','04','暂无')goinsert into班级表(班级代码,班级名称,专业代码,系部代码,备注) values('0101011','金融数学班','0402','04','暂无')goinsert into学生表values('010*********','刘德华','男','1988-5-5','2010-9-1','010101','01','0101')goinsert into学生表values('010*********','张学友','男','1988-1-4','2010-9-1','010102','02','0102')goinsert into学生表values('010*********','梁静茹','女','1988-2-1','2010-9-1','010103','03','0103')goinsert into学生表values('010*********','陈奕迅','男','1983-5-3','2010-9-1','010104','04','0201')goinsert into学生表values('010*********','张韶涵','女','1987-8-6','2010-9-1','010105','01','0202')goinsert into学生表values('010*********','林俊杰','男','1988-6-6','2010-9-1','010106','02','0301')goinsert into学生表values('010*********','孙燕姿','女','1984-5-3','2010-9-1','010107','03','0302')goinsert into学生表values('010*********','周华健','男','1986-8-6','2010-9-1','010108','04','0401')goinsert into学生表values('010*********','尚雯婕','女','1988-6-6','2010-9-1','010109','01','0402')goinsert into学生表values('010*********','任贤齐','男','1984-5-3','2010-9-1','0101010','02','0101')goinsert into学生表values('010*********','魏晨','男','1986-8-6','2010-9-1','0101011','03','0102')goinsert into学生表values('010*********','庞龙','男','1988-6-6','2010-9-1','010101','04','0103')goinsert into学生表values('010*********','刘若英','女','1988-5-3','2010-9-1','010102','01','0201')goinsert into学生表values('010*********','李圣杰','男','1989-8-6','2010-9-1','010103','02','0202')goinsert into学生表values('010*********','吴克群','男','1989-2-9','2010-9-1','010104','03','0301')go--连接查询(交叉查询)select*from学生表cross join班级表--列举学生表中的学生姓名和性别班级表中的班级名称select学生表.姓名,学生表.性别,班级表.班级名称from学生表cross join班级表--将两个表中相同列合为一列select学生表.姓名,学生表.性别,班级表.班级名称from学生表cross join班级表where学生表.班级代码=班级表.班级代码--自然连接select*from学生表join班级表on学生表.班级代码=班级表.班级代码select学生表.姓名,学生表.性别,班级表.班级名称from学生表join班级表on学生表.班级代码=班级表.班级代码--表的自身连接(需要取别名)select a.姓名,b.性别from学生表as a join学生表as b on a.学号=b.学号--外连接表查询create table产品(产品编号char(9)not null,产品名称varchar(20)not null)create table产品销售(产品编号char(9)not null,销量int)insert into产品values('001','显示器')insert into产品values('002','键盘')insert into产品values('003','鼠标')insert into产品销售values('001','25')insert into产品销售values('003','35')insert into产品销售values('005','30')select*from产品select*from产品销售--左外连接select*from产品left join产品销售on产品.产品编号=产品销售.产品编号--右外连接select*from产品right join产品销售on产品.产品编号=产品销售.产品编号--完全外连接select*from产品full join产品销售on产品.产品编号=产品销售.产品编号--合并结果集(把重复的过滤掉了)select姓名,性别,出生日期from学生表union select姓名,性别,出生日期from学生表七.数据库中多表查询和子查询--多表连接查询select学生表.学号,学生表.姓名,学生表.性别,班级表.班级名称,专业表.专业名称,系部.系部名称from学生表join班级表on学生表.班级代码=班级表.班级代码join专业表on学生表.专业代码=专业表.专业代码join系部on学生表.系部代码=系部.系部代码select学生表.学号,学生表.姓名,学生表.性别,班级表.班级名称from学生表join班级表on学生表.班级代码=班级表.班级代码and性别='男'--嵌套查询(子查询)带有IN运算符的子查询,in运算符的子查询返回的结果是集合select*from系部select*from学生表where系部代码='01'select*from学生表where班级代码in(select班级代码from班级表where专业代码in(select专业代码from专业表where系部代码in(select系部代码from系部where系部代码in(01))))--带有比较运算符的子查询select*from学生表where出生日期>(select出生日期from学生表where姓名='刘德华')--带有any(满足条件中的任何一个)或all(大于结果中的所有值)的子查询select*from score_table order by高考分数descselect*from score_table where高考分数>any(select高考分数fromscore_table where学号in(29,25))select*from score_table where高考分数>all(select高考分数fromscore_table where学号in(29,25))--带有exists运算符的子查询select*from score_table where exists(select*from score_table where 名称='张学友')八.数据库中数据完整性约束select*from系部where系部代码=(select系部代码from专业表where专业代码=(select专业代码from班级表where班级代码=(select班级代码from学生表where姓名='刘德华')))--使用sql语句创建唯一约束alter table系部add constraint wywy unique nonclustered(系部名称)--创建检查约束alter table score_table add constraint ck_name check(高考分数>300 and高考分数<600)--创建默认约束alter table new_table add constraint df default'我叫徐守威'for'其他' --删除约束alter table score_table drop constraint ck_name九.数据库中数据规则--创建规则create rule gz as @a>300 and @a<600--绑定规则execute sp_bindrule'gz','new_table.高考分数'select*into new_table1 from new_table--解除规则execute sp_unbindrule'new_table.高考分数'--删除规则drop rule gz--创建默认create default df_name as'男'--绑定默认execute sp_bindefault'df_name','学生表.性别'--解除默认execute sp_unbindefault'df_name','学生表.性别'--删除默认drop default df_name十.数据库中索引--创建索引create clustered index索引名on score_table(名称)create unique clustered index索引名on score_table(名称)--查看索引信息execute sp_helpindex score_table--删除索引drop index score_table.索引名十一.数据库视图--创建视图create view v1 asselect学生表.学号,学生表.姓名,班级表.班级名称,专业表.专业名称,系部.系部名称from学生表join班级表on学生表.班级代码=班级表.班级代码join专业表on班级表.专业代码=专业表.专业代码join系部on专业.系部代码=系部.系部代码--创建一般视图create view视图名asselect*from score_table--创建加密视图create view加密视图名with encryptionasselect*from score_table--创建视图及表的架构绑定create view视图及表的架构绑定with schemabindingasselect姓名,性别from dbo.score_table--在视图中增加、删除数据insert into视图名(姓名,性别)values('xushouwei','男')update视图名set姓名='徐守威'where姓名='xushouwei'delete视图名where姓名='徐守威'--删除视图drop view视图名--系统存储过程查看视图execute sp_helptext视图名十二.数据库存储过程--创建存储过程create procedure passelect学生表.学号,学生表.姓名,班级表.班级名称,专业表.专业名称,系部.系部名称from学生表join班级表on学生表.班级代码=班级表.班级代码join专业表on班级表.专业代码=专业表.专业代码join系部on专业表.系部代码=系部.系部代码--执行存储过程execute p--为存储过程加上参数create procedure p1@sex varchar(10),@id varchar(10)asselect学生表.学号,学生表.姓名,班级表.班级名称,专业表.专业名称,系部.系部名称from学生表join班级表on学生表.班级代码=班级表.班级代码and学生表.性别=@sexjoin专业表on班级表.专业代码=专业表.专业代码join系部on专业表.系部代码=系部.系部代码and系部.系部代码=@id--执行带参数的存储过程execute p1'男','01'--创建带返回参数的存储过程create procedure p2@name varchar(10),@getnum varchar(10)outputasselect @getnum=学号from学生表where姓名=@name--执行带返回参数的存储过程execute p2'刘德华',''--查看存储过程execute sp_helptextexecute sp_dependsexecute sp_help--删除存储过程drop procedure pdrop procedure p,p1drop procedure p,p1,p2十三.数据库触发器--创建触发器(执行插入操作)create trigger myinserton产品for insertasdeclare @a char(10)select @a=产品编号from insertedinsert into产品销售values(@a,0)--查询触发器中的数据select*from产品select*from产品销售--执行插入操作insert into产品values('01','电视')insert into产品values('02','电脑')--创建触发器(执行删除操作)create trigger mydeleteon产品for deleteasdeclare @a char(10)select @a=产品编号from deleteddelete产品销售where产品编号=@a--执行删除操作delete产品where产品编号='02'--查看触发器信息execute sp_helptrigger产品--删除触发器drop trigger myinsertdrop trigger mydelete十四.数据库函数--avg求平均分函数select班级名称,avg(学生表.高考分数)from班级表join学生表on班级表.班级代码=学生表.班级代码group by班级名称--max求最大值select班级名称,max(学生表.高考分数)from班级表join学生表on班级表.班级代码=学生表.班级代码group by班级名称--min求最小值select班级名称,min(学生表.高考分数)from班级表join学生表on班级表.班级代码=学生表.班级代码group by班级名称--abs(x)返回绝对值select abs(-8)--ceiling(x)返回大于或等于所给数字的最小整数select ceiling(3)--pi()(pi值)select pi()--power(x,y)返回x的y次方select power(2,3)--rand()返回~1之间的随机数select rand()--返回数据库的版本号select@@version--获取当前语言select@@language--当前时间select getdate()--取出天select day(getdate())--取出月select month(getdate())--取出年select year(getdate())--加三天(“d”表示天,“m”表示月,“y”表示年)select dateadd(d,3,getdate())as Jasxu_dateadd--取出时间的某一部分(“d”表示天,“m”表示月,“y”表示年)select datename(d,'2013-12-12')select datename(d,getdate())--排名函数select姓名,rank()over(order by高考分数desc)as名次,高考分数from学生表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据仓库作业一创建过程示例
本次实验内容以SQL Server 2005环境下来演示如何创建数据立方体。
前提条件:
1.数据已经经过ETL处理后倒入到数据库中;该数据库能通过用户名密码访问。
2.安装了SQL Server 2005; 可以运行“SQL Server Business Intelligence Development Studio”
3.根据要求已经设计好满足要求的视图或者表(第三步中用到的“新建数据视图”)。
也就是说你的维度,维度层次关系,度量等都应该已经创建好
了。
运行“SQL Server Business Intelligence Development Studio”. 并按照如下演示步骤创建数据立方体。
主要分为5个步骤:
1.新建Analysis Service工程
2.新建数据源(一个例子)
3.新建数据视图(一个例子)
4.新建维度(一个例子)
5.新建数据立方体(一个例子)
第三步新建数据视图
第四步新建维度
第五步新建数据立方体。