当前位置:文档之家› 第三章SQL语言初步总结分析

第三章SQL语言初步总结分析

第三章SQL语言初步总结分析
第三章SQL语言初步总结分析

第三章SQL Server 相关技术以及SQL 语言

一、SQL Server工具

SQL Server提供了一些功能强大、使用方便的数据库工具,主要的工具如下:

1、服务管理器:功能是启动、停止和暂停SQL Server 服务器。

2、企业管理器:是图形化集成管理具,通过它可以方便的调用其他的管理工具,有效的配

置和管理SQL Server服务器。

3、查询分析器:使用方便,界面友好的T-SQL语句的编译工具,是SQL Server客户端的

主要组成部分。菜单、对象浏览、模板等个部分的使用。

4、导入导出数据(DTS):实现其他类型的数据和SQL Servers数据之间实现格式转换。

二、SQL Server数据类型

SQL Server一共有14种,其中13种可用于字段类型说明。下面是几种主要的数据类型:

1、字符数据类型:char、varchar、text。

2、整数类型:bigint、tinyint、smallint、int。

3、数据类型和浮点类型:decimal、numeric、real、float。

4、货币类型和时间、日期类型:smallmoney、money、smalldatatime、datatime。

5、二进制类型:binary、varbinary。

6、图象、文本数据类型:image、text。

三、SQL Server数据库的创建和管理

1、SQL Server数据库介绍:

SQL Server数据库以文件形式存储信息。数据库中有三类文件、两种文件组:

主文件后缀.mdf 一个数据库中有且仅有一个主文件;用于存放数据库的

动态信息以及数据。

辅助(次)文件后缀 .ndf 一个数据库中可以有0——n个辅助文件;只存放数据。日志文件后缀 .ldf 一个数据库中可以有1——n个日志文件。存放数据库的

操作轨迹。

数据库中如果文件很多,为了便于管理可以根据需要分组。包含有主文件的那个组称为“主文件组”,其他的文件组只包含有辅助文件,称为“辅助文件组”或“次文件组”,日志文件不分组。

数据库的存储结构:SQL Server数据库中页和范围是最重要的两种存储单位。页是最基本的存储单元,每页有8KB。范围(Extent)是SQL Server分配给表和索引的最基本的单位,每个范围包括连续的8个页(64KB),如果一个范围中只存放一个数据库对象,此范围称为“统一范围”,如果存放多个数据库对象,此范围称为“混合范围”。

2、SQL Server数据库建立:

可以使用企业管理器建立数据库;也可以用SQL 命令建立数据库:

例:CREATE DATABASE student

ON

( NAME =student_data,

FILENAME = 'e:\program files\microsoft sql server\mssql\data\student_data1.mdf',

SIZE = 1MB,

MAXSIZE = 20MB,

FILEGROWTH = 10%)

LOG ON

( NAME =student_log,

FILENAME = 'e:\program files\microsoft sql server\mssql\data\student_log.ldf',

SIZE = 1MB,

MAXSIZE = 10MB,

FILEGROWTH = 10%)

GO

上例建立STUDENT数据库,其中建立主文件和一个日志文件。

其中NAME——逻辑文件名;

FILENAME——物理文件名;

SIZE——文件初始大小;

MAXSIZE——文件最大空间。如果没有此项,文件可无限增长到磁盘可用空间竭尽。

FILEGROWTH——文件增长的大小。可以用初始大小的%表示,也可以用MB表示。

3、删除数据库:用企业管理器或DROP命令删除数据库。

四、SQL Server数据表的创建和管理

1、使用企业管理器创建与管理表

a)定义字段:字段名、类型、长度、精度、NULL 设定、默认值、标识等;

b)设置约束;主键、外键、检查、唯一、非空、默认;

c)修改数据表:表更名、插入新字段、删除字段、修改表格属性、修改约束;

d)删除表;如果需要删除的表是有关联的表,则必须先删除与之关联的表,才可以完成该表的删除。

2、使用SQL 语句创建和管理表

a)建立表:CREATE TABLE

例如:

create table s_exam

(g_id uniqueidentifier not null default newid(),

stu_id smallint primary key,------主键---

stu_name varchar(10) not null unique,------非空、唯一------

stu_sex char(2) default '男',--------默认-------

stu_birth smalldatetime check(stu_birth

dep_id smallint foreign key references depart(id)) ------外键------

b)修改表的命令;ALTER TABLE可以修改上面提及的与表有关的所有项目。(具体项目请参考书)

c)删除表命令;DROP TABLE

五、查询

1、SELECT语句基本结构

2、SELECT子句;DISTINCT、TOP关键字的使用,输出列名的设定,计算列。

3、FROM子句:表的别名设定;如果表名中包含了关键字,则表名必须加[ ]。

例:FROM employee e,[order details] od

其中e、od是表的别名

4、WHERE子句:比较查询(各种条件运算符和逻辑运算符),范围查询(BETWEEN……

AND),列表查询(IN),模糊查询(LIKE,其中有%、_、[]、[^]四个通配符),空值

判断查询(IS NULL)。

5、GROUP BY子句:用GROUP BY子句可以把查询出的数据进行分类后再使用统计函数

汇总,一起使用的关键字为HA VING、ALL、ROLLUP、CUBE。

6、ORDER BY子句:给查询结果排序。可以是升序(ASC),也可以是降序(DESC)排列,

也可以依据多个字段排序。

7、集合运算子句:可以将两个具有相同结构、相同字段数、对应字段类型相同的两个结果

集合进行集合运算。(UIION、INTERSECT、EXCEPT)

8、使用汇总函数:查询输出列中可以用sum( )、avg( )、min( )、max( )、count( )等统计函

数,一般和GROUP BY一起使用。

9、多表查询;内连接(INNER JOIN……ON),左外连接(LEFT OUTER JOIN……ON),

右外连接(RIGHT OUTER JOIN……ON),完整连接(FULL JOIN……ON),交叉连接(CROSS JOIN……ON)。也可以用传统的SQL多表查询,在FROM中列出多个表,在WHERE中指定连接的条件,这种形式其实是对迪卡尔乘积进行条件查询。

10、嵌套查询:子查询通常包含一定的组件。

单值返回子查询:使用比较运算符、BETWEEN……AND……

多值返回子查询:使用比较运算符和ANY、ALL

相关子查询:EXISTS(NOT EXISTS),此类查询子查询执行次数一般与外层查询有关11、更改表内数据:INSERT、UPDA TE、DELETE。

六、视图

1、视图的概念:使用视图的优点有两个——简化数据查询和处理操作、从一定程度上保护

数据。

2、创建视图(CREATE VIEW AS),在创建视图中的查询语句有一定的限制;修改视图

(ALTER VIEW AS),删除视图(DROP VIEW)。

3、使用视图操作表数据:检索数据,和基本表的查询一样用法;通过视图添加数据,添加

的数据实际上是加在视图所基于的基本表中。更新视图中的数据;删除视图中的数据,这些操作语句和基本表操作一样,但有一定的限定条件(具体的限定条件请参考教材),因为视图是一虚表,对它的操作实质是加在基本表上的操作,但视图可能是多张表的子集,所以修改不当会引起错误。

*注:上面是对本章的内容的小结,只写出了提纲,请对照教材或参考书中详细内容。附:课堂教学中所用表格

(部门号char(3) primary key,

名称varchar(20) not null,

地址varchar(16),

经理char(3),

电话char(4),

直接上级char(3)

)

create table 职工表

(工号char(3) primary key,

姓名char(8) not null,

性别char(2) default '男',

年龄smallint check(年龄>=18 and 年龄<=60),

工作日期datetime,

职务char(10),

工资decimal(7,2),

奖金decimal(6,2),

所属部门char(3) foreign key references 部门表(部门号)

)

insert into 部门表

values('p00','经纬贸易公司','公司大楼303室','001','1303','000')

insert into 部门表

values('p10','财务处','公司大楼203室','101','1203','p00')

insert into 部门表

values('p11','财务处计划科','公司大楼202室','102','1202','p10')

insert into 部门表

values('p12','财务处记帐科','公司大楼204室','104','1204','p10')

insert into 部门表

values('p13','财务处审计科','公司大楼206室','107','1206','p10')

insert into 部门表

values('p20','供应处','公司大楼103室','201','1103','p00')

insert into 部门表

values('p30','销售处','公司大楼104室','301','1104','p00')

insert into 部门表

values('p31','销售处研究中心','公司大楼106室','306','1106','p30')

values('p40','仓库管理处','仓库办公室','401','2105','p00')

insert into 部门表

values('p50','运输管理处','车库办公室','501','3105','p00')

---------------------------------------------------------------------------------------------------------------------- insert into 职工表

values('1','刘浩然','男',52,'1978/01/01','经理',5600.5,1000,'p00')

insert into 职工表

values('2','周凌','女',30,'1998-09-7','秘书',2800,400,'p00')

insert into 职工表

values('101','余荣','男',55,'1975-11-11','处长',3700,800,'p10')

insert into 职工表

values('102','汪占魁','男',55,'1975-11-11','处长',3700,800,'p10')

insert into 职工表

values('103','李红','女',43,'1987-1-1','科员',2400,0,'p11')

insert into 职工表

values('104','姚存','男',45,'1987-7-11','科长',3900,600,'p12')

insert into 职工表

values('105','叶蓉蓉','女',33,'2000-8-1','会计',2200,400,'p12')

insert into 职工表

values('106','刘晓霞','女',35,'1994-1-1','出纳',3100,400,'p12')

insert into 职工表

values('107','吴方','男',48,'1985-9-8','科长',2500,600,'p13')

insert into 职工表

values('108','陈奇','男',37,'1993-1-1','科员',2200,400,'p13')

insert into 职工表

values('109','周小环','女',52,'1977-10-1','办事员',2800,0,'p13')

insert into 职工表

values('201','汪小健','男',57,'1972-1-1','处长',4800,800,'p20')

insert into 职工表

values('202','毛婷婷','女',35,'1999-1-1','办事员',2000,400,'p20')

insert into 职工表

values('203','刘志平','男',32,'2000-7-1','采购员',2200,400,'p20')

insert into 职工表

values('204','袁小洁','女',41,'1989-6-1','采购员',2400,500,'p20')

insert into 职工表

values('205','张志华','男',53,'1978-1-1','采购员',3200,0,'p20')

insert into 职工表

values('301','梁道奇','男',51,'1973-1-1','处长',5200.5,800,'p30')

insert into 职工表

values('302','陈冬儿','女',45,'1984-12-1','办事员',2300,600,'p30')

insert into 职工表

values('303','张海丰','男',42,'1988-1-1','推销员',2600.5,400,'p30')

insert into 职工表

values('304','王和平','女',55,'1976-6-1','推销员',2900,600,'p30')

insert into 职工表

values('305','张小林','男',54,'1977-5-1','推销员',2500,400,'p30')

insert into 职工表

values('306','梁浩','男',43,'1989-7-1','科长',3600,600,'p30')

insert into 职工表

values('307','李向阳','男',31,'1999-3-1','办事员',2600,400,'p30')

insert into 职工表

values('401','姚志坚','男',52,'1979-1-1','处长',4600,800,'p40')

insert into 职工表

values('402','姜贤德','男',52,'1978-9-1','仓库管理员',3500,400,'p40')

insert into 职工表

values('403','陈瑛','女',40,'1991-1-1','仓库管理员',2900,400,'p40')

insert into 职工表

values('501','王建国','男',49,'1983-7-1','处长',5400,800,'p50')

insert into 职工表

values('502','沈建平','男',53,'1974-1-1','小车驾驶员',3800,500,'p50')

insert into 职工表

values('503','章金强','男',42,'1985-4-1','卡车驾驶员',3400,500,'p50')

insert into 职工表

values('504','徐海东','男',47,'1982-3-1','卡车驾驶员',2800,500,'p50')

相关主题
文本预览
相关文档 最新文档