南京北大青鸟
北大青鸟中博大学生专区 南京北大青鸟高中生专区 北大青鸟南京中专生专区 南京中博待业者专区 北大青鸟在职者专区
 
在线咨询
 
 
 
中心简介
校区简介
校区环境
周边景点
关于北大青鸟
特色优势
常见问题解答
网站地图
 
 
ACCP软件工程师课程
什么是ACCP
ACCP6.0课程介绍
各课程定位与介绍
各阶段课程
教学模式
ACCP6.0课程体系
ACCP6.0认证证书
 
 
  开班信息  
 
 
讲座试听
 
您的位置:首页 - 编程技巧 - 阅读信息
ACCP 5.0 S2 SQL Server总结
作者:南京中博-管伟  出处:  日期:2011-04-11
Entity:实体,用来表示数据库管理的对象,例如用户、发帖、部门、出版社等,我们都称之为实体,其实说白了就是我们一直讲的表; 实体中都包含属性

第一章 数据库设计

1. E-R图,实体关系图

Entity:实体,用来表示数据库管理的对象,例如用户、发帖、部门、出版社等,我们都称之为实体,其实说白了就是我们一直讲的表; 实体中都包含属性,属性是用来描述实体的,比如用户实体的属性可以有姓名、年龄、性别的等,其实属性就是我们平时所说的列

Relationship:标识实体与实体之间的关系

2. E-R图的表示

 

用矩形表示实体

用菱形表示关系

 

用椭圆表示属性

 

 

 

 

 

 

 

 

 


3. 实体与实体之间的关系可以有:

a)         一对一:比如系和系主任、班长和班级等

b)        一对多:发帖和回帖、发帖和版块等

c)         多对一:它是一对多相反的效果

d)        多对多:电影和影星、学生和课程等

4. 数据库范式

a)         一范式:
必须保证每一个属性(列)不可再分

b)        二范式
在满足一范式的基础上,保证非键属性必须完全依赖于键属性

c)         三范式
在满足二范式的基础上,不可以出现传递依赖,比如订单号决定产品产品决定价格,那么反过来说就是依赖


第二章 数据库的实现

SQL Server中创建的数据库,会有三种文件:

1、  .mdf:主数据文件,这是必须有的,而且只能有一个

2、  .ndf:辅助数据文件,这不是必须的,他跟mdf一样用来存放数据的,他可以有多个

3、  .ldf:日志文件,这是必须有的,他可以有多个,用来记录你平时对数据库的操作都记录在日志文件中

1. 创建数据库的方式:

No.1

create database 数据库名称

go

上面是最快创建数据库的方式,系统会自动生成一个mdf和一个ldf

No.2

Create database 数据库名称

on[GW1] 

(

       Name =’逻辑文件名’,

       FileName = ‘物理路径’,

       Size = 文件大小默认为mb,可以是mb/gb/tb,

       MaxSize = 文件最大的大小,还可以写unlimited,(无限)

       FileGrowth = 文件的增长方式,可以是nMBn%

[GW2] ),[GW3] 

(

       ……

)

log on[GW4] 

(

       Name = ‘逻辑文件名’,

       FileName = ‘物理路径’,

       Size = 文件大小默认为mb,可以是mb/gb.tb,

       MaxSize = 文件最大的大小,

       FileGrowth = 文件的增长方式,可以是nMBn%

),

(

       ………

)

go

2. 删除数据库

use Master

go

if exists(

select * from sysdatabases[GW5] 

where name = ‘数据库名称’)

       drop database 数据库名称

go

3. 创建表

create table 表名

(

       列名1 数据类型 是否为空,

       列名2 数据类型 是否为空,

       列名3 数据类型 是否为空

[GW6]     …..

)

go

4. 删除表

if exists(

select * from sysobjects[GW7] 

where name = ‘表名称’)

       drop table 表名称

go

 

5. 创建约束

5.1 主键约束

一张表只能有一个,创建好后该列是物理排序的而且不能有重复数据以及不能为null

alter table 表名

add constraint pk_名称[GW8]  primary key(列名)

 


5.2 检查约束

对该列的数据可以进行检查

alter table 表名

add constraint ck_名称[GW9]  check(约束规则[GW10] )

5.3 默认值约束

对该列的数据可以产生一个默认值

alter table 表名

add constraint df_名称[GW11]  default([GW12] ) for 列名

5.4 唯一约束

对该列的数据保证一个值只能出现一次

alter table 表名

add constraint uq_名称[GW13]  unique(列名)

5.5 外键约束

对该列的数据保证与主键表的主键的值一致

alter table 表名

add constraint fk_名称[GW14]  foreign key(外键列名)  references 主键表名(主键列名)

6 删除约束

alter table 表名

drop constraint 约束名称

 

7. SQL SERVER的身份验证

验证分为两种:

SQL Server身份验证:比如我们平常使用的sa

Windows身份验证:比如我们平时用的windows验证,只要登录到windows就能进sqlserver

 

 

 

 

8. SQL Server安全模型

1.       登录,相当于你是否能进入小区大门
exec sp_addlogin ‘
账号名称’, ‘密码

2.       数据库用户,相当于是进入小区后你能否进入一栋楼
exec sp_grantdbaccess ‘
账号名称’, ‘数据库用户名

3.       授权,相当于进入一栋楼后能否进到一个家里
grant select, delete, insert, update on
表名 to 数据库用户名[GW15] 

grant create table to
数据库用户名[GW16] 

 


第三章 T-SQL编程

变量

SQL Server的变量分为两种

1. 全局变量

这是微软已经写好的,我们不能定义,是拿来就用的,以@@开头

2. 局部变量

这是我们程序员可以去定义和使用的,以@开头

 

局部变量

declare @age int, @name varchar(100)

declare @sex bit[GW17] 

 

set @age = 20

set @name = ‘张三[GW18] 

 

select @sex = Sex

from Students

where Name = @name[GW19] 

 

全局变量

@@error:返回上面的SQL语句是否执行成功,返回0代表成功,非0就是失败

@@identity:返回插入到表中的标识值

@@RowCount:返回影响的行数

 

IF语句

if (条件表达式)[GW20] 

begin

       //sql代码

end[GW21] 

else

begin

       //sql代码

end


WHILE语句

while(条件表达式)

begin

       //sql代码

End

 

CASE语句

case

       when 条件1 then 结果

       when 条件2 then 结果

       else 结果

end

 

Exp1:

       select

                     姓名 = StuName,

                     性别 =

                                   case

                                          when Sex = 1 then ‘

                                          else ‘

                                   end,

                     学号 = StuId

       From Students

 

Exp2:

       select

                     姓名 = StuName,

                     成绩 =

                                   case

                                          when LabExam >= 60 then convert(varchar(10), LabExam)

                                          else ‘不及格

[GW22]                               end,

                     学号 = StuId

       From Students

 

Print语句

print ‘abc哈哈哈                                     正确

 

print 123                                                  正确

 

print ‘abc’ + 123                                       错误:要把123convert(varchar(10), 123)转换

 

第四章 T-SQL语句-2

增加数据

insert into 表名(1, 2, 3,……)

values(1, 2, 3,……..)[GW23] 

 

Exp1:

insert into Students(学号, 姓名, 年龄, 性别)

values(‘001101’, ‘王二’, 20, ‘’)

修改数据

update表名

set

1 = 1,

2 = 2,

3 = 3,……..

where 条件[GW24] [GW25] 

 

Exp1:

update Students

set

学号 = ‘888888’,

姓名 = ‘王五’,

年龄 = 90,

性别 = ‘[GW26] 

 

 

 

 

Exp2:

update Students

set

姓名 = ‘王五’,

年龄 = 90,

性别 = ‘[GW27] 

where 学号 = ‘001101’

删除数据

delete from 表名

where 条件[GW28] 

 

Exp1:

delete from Students[GW29] 

 

Exp2:

delete from Students

where 学号 = ‘001101’[GW30] 

查询数据

select * from 表名

 

select * from 表名

where 条件

 

select * from 表名

order by 列名1 asc|desc, 列名2 asc|desc

 

select * from 表名

where 条件

order by 列名1 asc|desc, 列名2 asc|desc

 

select * from 表名1

inner join 表名2 on 表名1.列名 = 表名2.列名

 

select * from 表名1

left outer join 表名2 on 表名1.列名 = 表名2.列名

 

select * from 表名1

left outer join 表名2 on 表名1.列名 = 表名2.列名

子查询

select * from 表名

where 列名 in

(

       select 列名 from 表名

)

 

select * from 表名

where 列名 not in

(

       select 列名 from 表名

)

 


 [GW1]

ON关键字的下面全是数据文件,第一个是mdf,其后全是ndf可以有多个数据文件

 [GW2]

各个属性末尾结束都要打上逗号做分隔,除了最后一个

 [GW3]

数据文件之间不要忘记打逗号

[GW4]

LOG ON关键字的下面全是日志文件,日志文件可以有多个

[GW5]

sys开头的都是sql server的系统表,这里的sysdatabases是存放当前所有数据库信息的系统表,因为这个表只存放在master数据库中所以要在上面先打开master数据库

[GW6]

列与列之间用逗号分隔,是否为空不写默认为null

[GW7]

这也是系统表,注意我没有打开master数据库,因为这个表在没有数据库都有

[GW8]

主键的名称,以pk开头

[GW9]

检查的名称,以ck开头

[GW10]

Exp1:

Sex in (‘’, ‘’)

Exp2:

Age between 1 and 200

Exp3:

Len(PID) = 18

[GW11]主键的名称,以df开头

[GW12]

Exp1:

Exp2:

Getdate()

[GW13]

主键的名称,以uq开头

[GW14]

主键的名称,以uq开头

[GW15]

把某一张表的增加、修改、删除和查询的权限授予给指定的数据库用户

[GW16]

将创建表的权限授予给指定的数据库用户

[GW17]

declare关键字去定义变量

[GW18]

SET关键字去赋值,set只能是简单赋值

[GW19]

SELECT关键字去赋值,SELECT不仅能简单赋值,跟重要的是能结合查询来赋值

[GW20]

这里的括号可以省略

[GW21]

[GW22]

这里因为LabExamint类型,而不及格varchar类型,所以要把LabExam转型

[GW23]

所有的插入就这样写,列和值一定要一一对应

[GW24]

所有的修改就这样写,列和值一定要一一对应

[GW25]

条件并不是必须的,但如果没有条件,就是修改表中所有记录

[GW26]

将所有人的信息修改了

[GW27]

001101学生的信息修改了

[GW28]

条件并不是必须的,但如果没有条件,就是删除中所有记录

[GW29]

删除表中所有记录

[GW30]

删除001101学生的信息

北大青鸟-中博http://www.njaccp.com

返 回
下一篇:asp.net 2.0 缓存总结(三)
相关新闻
南京北大青鸟进行ACCP6.0升级考试
IT教育南京北大青鸟ACCP课程是首选
南京北大青鸟读没计算机基础就不能学ACCP吗?
南京北大青鸟:ACCP 6.0课程设置
北大青鸟南京中博1218 S2毕业答辩
 
中博教育客服在线
 
©南京北大青鸟 隐私政策


学费咨询
学历咨询
专业咨询
订座试听
就业咨询
课程咨询
测试认证
软件认证