SqlServer基础1

一, 数据库设计
1. 实体-关系模型
实体:现实世界中具有区分其他食物的特征或属性并与其它实体有联系的对象。实体是表中一行一行的特定数据。也常常把一个表称为一个实体。用矩形表示。
2. 属性:实体的特征。用椭圆表示
3. 关系:两个或多个实体之间的联系, 菱形表示关系集,直线用来连接属性和实体类。也用来连接实体集和关系集。
4. 数据规范化:
1. 第一范式:确保每列的原子性,每列都是不可再分割的最小数据单元。()
2. 第二范式:满足第一范式的前提下,确保表中的每列都和主键相关。()
3. 第三范式:满足第二范式的前提下,确保每列都和主键列直接相关。()


二, 数据库的实现
-------打开高级配置
exec sp_configure 'show advanced options',1
go
reconfigure
go
exec sp_configure 'xp_cmdshell',1
go
reconfigure
go
exec xp_cmdshell 'mkdir D:\Hotel',no_output
go

use master
go

if exists(select * from sysdatabases where name='Hotel')
drop database Hotel
go
create database Hotel
on primary
(
name='Hotel_data',
filename='D:\Hotel\Hotel_data.mdf',
size=20,
filegrowth=15%
)
log on
(
name='Hotel_log',
filename='D:\Hotel\Hotel_log.ldf',
size=20,
filegrowth=15%
)

go

use Hotel
go


if exists (select * from sysobjects where name='Room')
drop table Room
go
create table Room
(
RoomID int identity(1,1) primary key,
Number nvarchar(50) not null,
BedNumber int not null,
State nvarchar(50) not null,
GuestNumber int not null,
Description nvarchar(255) not null,
TypeID int not null
)
Go
删除数据库:drop database 数据库名
删除表:drop table 表名
添加关系:

alter table room
add constraint pk_roomID primary key (roomID), //主键约束
constraint UQ_roomID unique(roomID), //唯一约束
constraint df_state default('入住') for state, // 默认约束
constraint ck_roomid check(roomid between 1 and 100) //检查约束
(注:若在指定的列后面添加默认约束则不需要for..)
alter table Room—(子表)
add constraint FK_TypeID foreign key(TypeID) references //外键约束 roomtype(typeID)—(主表的主键)

删除约束:
alter table room
drop constraint DF_state
添加列:
alter table room
add 列名 类型 特征

删除列:alter table 表名 drop 列名

创建用户:
Sql身份用户登录
exec sp_addLogin 'zhangsan','1234' //创建登陆用户
exec sp_grantdbaccess 'zhangsan' //给数据库添加登陆用户 (注:zhangsan 后有个zhangsanDBUser 此种名称可要可不要,要时,to zhangsanDBUser)
grant select ,insert on room to zhangsan //给登陆用户给哪张表赋什么权限。

连续添加多个关系时 只需add和add 以前的内容。后面用逗号隔开,
三, T-SQL编程
1. 使用变量:语法:
declare @Name nvarchar(50),
@sex nvarchar(3)
2. 局部变量赋值:
Set @name=value 或 select @name=value
3. .全局变量:
变量 说明
@@error 最后一个T-SQL错误号
@@identity 最后一次插入的标识值
@@language 当前使用的语言名称
@@Max_connections 可以创建同时连接的最大数目
@@rowconunt 受上一个sql语句影响的行数
@@serverName 本地服务器名称(进入数据库时的数据库名称)
@@serviceName 该计算机上的sql服务名称
@@timeticks 当前计算机上的没刻度的微秒数
@@trancount 当前连接打开的使唔使数
@@version Sql server的版本信息
输出语句:print ‘服务器名称’+@@servername
Print ‘当前错误号’+convert(varchar(5),@@error)
Convert(varchar(50),…)的作用与str 作用相等。都是将对象装换成字符串。
4. 逻辑控制语句
If(条件)
Begin
语句块1
语句块2
End
Else
Begin
语句块1
语句块2
end
5.
while(1=1)
begin
语句….
end
[break] --从最内不循环跳出

6.:case 分支语句
case
when (条件) then(结果)
when(条件) then(结果)
else[其它结果]
end

go 关键字标志着批处理的结束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值