实验一
实验题目:安装SQL SERVER 2005
实验目的:掌握SQL SERVER 2005的安装过程
实验步骤:
第一步:将Microsoft SQL SERVER 2005安装光盘放入光驱中,安装程序会自动运行出现版本选择界面,我们以选择个人版为例。
第二步:在接下来的界面中选择“安装SQL SERVER 2005组件”选项。
第三步:接着选择“选择安装数据库服务器”。
第四步:稍后才开始出现安装向导,点击“下一步”后出现“计算机名”窗口。“本地计算机”是默认选项,其名称就显示在上面,我们按其默认点“下一步”。第五步:接下来,在“安装选择”对话窗口中,同样按其默认项“创建新的SQL Server实例,或安装客户端工具”点下一步。
第六步:接下来的窗口是用户名、公司名的自取,在经过软件许可协议一步后,到达“安装定义”对话窗口。同样地,按其默认“服务器和客户端工具”选择到下一步。
第七步:在“实例名”窗口中,系统一般提供了默认的复选框,我们既可以安装默认方式的实例,也可以自定义。
第八步:在安装类型对话窗口中,可以设定多个选项。比如安装组件的多少,以及安装的路径等,请根据实际需要选择。
第九步:在“服务帐户”对话窗口中,一般接受默认的选项。然后输入你的域的密码即可。
第十步:在“身份验证模式”窗口里,如果你的操作系统是windowsNT以上,选择“Windows身份验证模式”即可,如果操作系统是windows9X,就建议选择“混合模式”。并且为此设定访问密码。
几分钟后,安装完成。依次单击“开始”—“程序”,即可看到Microsoft SQL SERVER 2005的程序组件。
实验二
实验题目:创建和删除数据库
实验目的:学习建立数据库、删除数据库的SQL语句的使用;学会排错技术。
了解有关概念(如数据文件、日志文件等相关概念)
实验步骤:创建一个 数据库,其数据文件和日志文件的初始大小都为1M,最大都允许增加到3M,每次增量都为1M。数据文件和日志文件存放在指定目录之下(命令格式如本实验附录所示)
Create database 课程管理系统
ON
(NAME=课程管理系统_dat,
Filename="c:\课程管理系统_dat.mdf",
Size=1MB,
MAXSIZE=3MB,
FILEGROWTH=1MB)
LOG ON
(NAME=课程管理系统_LOG,
Filename="c:\课程管理系统_LOG.LDF",
Size=1MB,
MAXSIZE=3MB,
FILEGROWTH=1MB)
实验三
实验题目:扩充和收缩数据库
实验目的:学习扩充数据库、收缩数据库的SQL语句的使用;学会排错技术。
了解有关概念(如扩充数据文件、日志文件等相关概念)
实验步骤:扩充一个 数据库,其数据文件和日志文件的在初始大小的基础上扩充为10M,。数据文件和日志文件存放在指定目录之下,
Alter database ss
Add file
(name=uu,
Filename=’ C:\Program Files\Microsoft sql server\mssql\data\uu.ndf’,
Size=10MB,
MAXSIZE=100MB,
FILEGROWTH=20MB)
)
收缩数据库
Use ss
Go
Dbcc shrinkfile(uu_data,5)
Go
实验四
实验题目:SQL的数据定义功能
实验目的:(1)掌握索引的概念与类型。
(2)掌握定义和删除索引的方法。
实验步骤:
使用SQL Server管理平台为“学生”表创建一个索引名为“学生姓
名_index的维一性非聚集索引,索引的关键字为“姓名”,升序
(1)以系统管理员身份登录到SQL Server 2005管理平台主界面。
(2)在对象资源管理器中,双击数据库(此处是“学生管理”),选中“表”中的“学生”表。
(3)展开“学生”表,右击“索引”选项,在弹出的快捷菜单上选择“新建索引”选项
(4)系统将弹出“新建索引”窗口。在该窗口中的“索引名称”文本框中输索引名称:“学生姓名_index”,并选择索引类型是唯一索引。
(5)单击“添加”按钮选择要添加到索引键的表项,系统打开选择索引键窗口,在该窗口中选择要添加的索引键。如果要删除索引键,应在那个窗口中选择要删除的索引键。
(6)设置完成后,单击“确定”按钮,索引创建完成。
使用SQL Server管理平台为“课程”表创建一个索引名为“课程
_index的非聚集索引,索引的关键字为课程名和学分,升序
(1)以系统管理员身份登录到SQL Server 2005管理平台主界面。
(2)在对象资源管理器中,双击数据库(此处是“学生管理”),右击,在弹出的快捷菜单中选择“选择查询”选项,此时,打开查询编辑器。
(3)在查询编辑器的输入窗口中输入如下语句:
create nonclustered index 课程_index on 课程
(课程名asc,
学分asc)
Go
(4)单击工具栏中的“执行”按钮。在对象资源管理器中,展开“课程”→“索引”选项,查看建立的复合索引,如下图:
实验五
实验题目:创建和删除基本表
实验目的:学习建立基本表、修改表结构、删除基本表的SQL语句的使用
了解有关概念(如主码、外码、完整性约束)
实验步骤:CREATE TABLE语句创建你自己设计的基本表,并练习ALTER TABLE语句的使用。各表中要求设计适当的约束(主码、外码、 check约束等)
实验六
实验题目:数据的更新
实验目的:学习基本表数据更新的SQL语句的使用,为以后的实验准备数据
(1)将memo字段的类型修改为Varchar(300)
(2)删除memo 字段
实验步骤:在实验二的基础上,向各表中添加数据,并做适当的修改与更新,以供查询使用。
(1) 使用UPDATE命令更新数据、验证外键约束。
update student
set dept='信息'
where Sname='秋冬'
update Score
set Grade=Grade+1
(2) 使用DELETE命令删除数据。
4.删除表。要求:
(1)利用企业管理器删除表:在要删除的表处单击右键,然后选“删除”。
(2)利用DROP TABLE语句删除
Drop table student
第二篇:sql总结
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 alter table 表名 [add 子句] [drop 子句] 创建表: create table 表名( 列名 数据类型 [default 缺省值] [not null] [,列名 数据类型 [default 缺省值] [not null]] . . . . . . [,primary key(列名 [,列名] …)]主键(多个值作为联合主键) [,foreign key (列名 [,列名] …) 外键 references 表名 (列名 [,列名] …)]外间关联表 [,unique(列名 [,列名] …)]不允许重复列 [,check(条件)])约束条件 如: create domain person_name char(20)(定义域) create table PROF ( PNO char(10),--职工编号 PNAME person_name not null, --职工姓名 SAL int, --工资 AGE int, --年龄 DNO char(10), --主任职工编号 primary key (PNO), --主键 foreign key (DNO) references DEPT(DNO),外键关联 简单定义表: create table CIA ( NAME varchar(50) primary key, ) REGION varchar(50) not null default ‘region not formalized yet', AREA int null, POPULATION long null, GDP long not null 修改表: 增加新列 删除列 [modify 子句] 修改列定义 Add列不为空是需加默认值(缺省值) 修改列定义时先建一修改后的新列,复制要修改的原列,删除修改的原列 37
38 索引的定义 create [unique|distinct] [cluster] index 索引名
40
41
42
43
44
45
46
47
48
49
50
51
52 unique(distinct):唯一性索引,不允许表中不同的行在索引列上取相同值。若已有相同值存在,则系统给出相关信息,不建此索引。系统并拒绝违背唯一性的插入、更新。 cluster:聚簇索引,表中元组按索引项的值排序并物理地聚集在一起。一个基本表上只能建一个聚集索引。 asc|desc:索引表中索引值的排序次序,缺省为asc。 ? 示例: create cluster index g-index on CIA(REGION) 删除索引: drop index 索引名 sql查询 1、 sum 总和 avg平均 distinct/unique 去重 asc 升序| desc降序 2、 select name case when age>60 then 1 when age<60 then 2 end age from table1. 3、 SELECT last_name +' is a ‘+ job_id AS "Employee Details" FROM employees; 53 54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 4、 escape 转义字符的使用:db2,oracle均可用 例:select * from rpt_plain_define where rpt_id like '%\_%' escape '\'; 5、 order by 排序: order by age asc 升序 order by desc 降序 order by 2 按select查询第三个字段排序 6、集合 集合并:union ? 求选修了001或002号课程的学生号。 (select SNO from SC where CNO = 001) union all (select SNO from SC where CNO = 002) 默认去重 集合交:intersect 集合差: except Table1 except table2 得到table1中有,而table2中没有的记录 求选修了001和002号而没有选003号课程的学生号。 (select SNO from SC where CNO = 001 or CNO = 002 ) except (select SNO from SC
74
75
76
77
78
79
80
81 § 聚集函数 ? 平均值:avg ? 最小值:min ? 最大值:max ? 总和:sum ? 记数:count 聚集函数后跟group by …having… (单个字段查询不需要:SELECT MAX(SALARY) FROM EMPLOYEES) 82
83
84
85