SQL SERVER设计与高级查询 第二章 学习笔记
来源:互联网 发布:网络言论自由议论素材 编辑:程序博客网 时间:2024/05/21 09:46
SQL SERVER设计与高级查询
第二章 数据库实现
【基础回顾】
数据库文件的组成: 主文件 *.mdf 次要文件 *.ndf 日志文件 *.ldf
(当主文件存满后,数据将存入次要文件)
SQLServer三层安全模型:
1. 需要登陆到SQLServer系统,即需要登陆帐户
2. 需要访问某个数据库,即需要成为该数据库的用户
3. 需要访问数据库中的表,需要受权操作
【创建/删除数据库】
判断数据库是否已经存在,数据库清单存放在master数据库sysdatabases表中
use master
--判断数据库是否存在,如果存在则删除数据库
if exists (select * from sysdatabases where name = 'exam')
drop database exam
--创建数据库
create database exam
on
(
/*-数据文件具体描述-*/
name = 'exam', --主数据文件逻辑名称
filename = 'd:/exam.mdf', --主数据文件的物理名称
size = 5mb, --主数据文件初始大小
maxsize = 100mb, --主数据文件增长最大值
filegrowth = 10% --主数据文件增长率,当指定数据为0时,表示文件不增长
)
log on
(
/*-日志文件具体描述-*/
name = 'exam_log',
filename = 'd:/exam.ldf',
size = 3mb,
filegrowth = 1%
)
go
【问题】
delete与drop的区别:delete删除的是数据,drop删除表,数据库
【创建/删除表】
SQL中常见数据类型:
Int float numeic char varchar nchar nvarchar 等
判断表是否已经存在,表清单存放在数据库系统表sysobjects中
use exam
--判断表是否存在,如果存在则先删除表
if exists(select * from sysobjects where name = 'username')
drop table username
--创建用户表
create table username
(
--格式 列名 数据类型 列特征
id int identity(1,1), --标识列自增长,从开始递增
uName varchar(10) not null, --用户名不能为空
uAge int not null, --年龄
uSex int not null, --性别
uDept int not null, --部门
userID numeric(18,0), --身份证号(18,0)表示位数,小数点后有0位
uAdd text --用户地址允许为空
)
【问题】
数据类型 char varchar nchar nvarchar 的区别:
char 长度固定, varchar 长度是可调节长度
例如:
一个char 数据类型‘sql语言 ’(注意空格),它的长度会要将空格计算在内. Len= 10
varchar 数据类型 ‘sql语言 ’它将自动删除空格部分.len= 7
nchar nvarchar 是Unicode字符型数据,用双字节结构存储每个字符.(字符串长度与字节长度不相等)
【创建/删除表约束】
--创建约束语法
alter table tableName
add constraint constraintName constraintType Explain
--删除约束语法
alter table tabelName
drop constraint constraintName
--约束类型
primary key --主键约束
unique --唯一约束
default --默认约束
check --检查约束
foreign key --外键约束
例句:
--创建主键约束
alter table username
add constraint PK_id primary key (id)
--创建唯一约束
alter table username
add constraint UQ_userID unique (userID)
--创建默认约束,默认为'地址不详'
alter table username
add constraint DF_uAdd default ('地址不详') for uAdd
--创建检查约束,年龄只能在-40之间
alter table username
add constraint CK_uAge check (uAge between 15 and 40)
--创建外键约束,主表username与从表dept建立关系
alter table dept
add constraint FK_dept
foreign key (dept) references username(udept)
go
--删除约束
alter table username
drop constraint PK_id
【问题】
在CK_username这个约束中,
alter table username
add constraint CK_uAge check (uAge between 15 and 40)
between 指定的范围是开区间还是闭区间: 闭区间
【创建登陆】
1.创建登陆帐户
/*-windows账户调用Server内置系统存储过程sp_grantLogin-*/
exec sp_grantLogin 'windows域名/域账户'
/*-Sql账户调用系统存储过程sp_addLogin-*/
exec sp_addLogin '账户名','密码'
2.创建数据库用户
/*-调用系统存储过程sp_grantdbaccess-*/
--当前数据库
exec sp_grantdbaccess '登陆账户','数据库用户名'
3.给数据库用户授权
语法:grant popedom no TableName to SqlUserName
常用权限包括:insert,select,update,delete,create Table等操作
2010/3/12 整理
- SQL SERVER设计与高级查询 第二章 学习笔记
- SQL SERVER设计与高级查询 第三章 学习笔记
- SQL SERVER设计与高级查询 第四章 学习笔记
- SQL SERVER设计与高级查询 第五章 学习笔记
- SQL SERVER设计与高级查询 第一章 学习笔记
- SQL SERVER设计与高级查询 第六章 学习笔记(完结)
- ACCP5.0 第二学期 SQL Server数据库设计和高级查询 小总结
- SQL Server 数据库设计和高级查询
- Sql Server数据库设计和高级查询
- SQL Server 2005 笔记(第二章:物理查询处理)
- sql server高级查询
- Sql server高级查询
- 第二章:SQL Server 管理工具(学习笔记)
- 《Microsoft SQL Server 2008 Analysis Services Step by Step》学习笔记七:高级维度设计
- 重温SQL Server(事务处理与高级查询)
- SQl Server与Oracle的高级模糊查询
- Linux内核设计与实现--学习笔记--第二章
- SQL Server Transact-SQL高级查询
- 今天第一次上机学C,记下
- PHP学习系列$第五章:FOR循环
- Java中对象数组的创建【VS】c++中对象数组的创建
- 本人和朋友总结的ps快捷键供大家参考
- 多线程文件复制(界面)1
- SQL SERVER设计与高级查询 第二章 学习笔记
- liunx 下装 oracle
- PHP问题解答系列(1):PHP运行环境搭建问题
- 破解mysql密码(只限制liunx下)
- 我中过很多次木马
- 何为闭包
- Flex中代码隐藏模式分离MXML和AS【转载+总结+code】
- 为什么我要活的那么委屈。。。为什么你们不可以真的来关心我一下。。
- 第一篇笔记哦、、、、