文章目录

  • 一、数据库的概念
  • 二、数据库的特点
  • 三、数据库的基本组成
  • 四、数据库管理
  • 五、可视化创建数据库、表、主键
  • 六、数据库的字段类型详解
  • 七、数据库的迁移方案
  • 八、SQL脚本
  • 九、基本的DDL SQL脚本
  • 十、基本的DML SQL脚本
  • 十一、案例:OA系统数据库设计



一、数据库的概念

定义:
数据库就是数据仓库。

DBMS:
数据库管理系统。SQLServer Oracle

二、数据库的特点

安全性
并发访问处理
高效率
海量数据存储
数据完整性

三、数据库的基本组成

数据库

架构(表的分组):
表的集合

列(Column字段,类型,长度,约束等)

行(Row)

主键:
自动增长,GUID

外键

四、数据库管理

数据库安装:
Sql Server安装数据库的实例名详解:
区分安装在同一台机器上不同的MSSqlServer 服务的。(区分一台机器上的不同的数据库服务实例)

混合身份验证:
Windows身份验证、SQLServer身份验证
启用SA账户(安装的时候可以直接设置启用)

链接数据库:
保证SQLServer服务器开启,. 和 (local) 和 机器名一样,代表链接本机。

ip地址:
回环地址:
127.0.0.1

局域网ip地址,外网ip地址。
SA

五、可视化创建数据库、表、主键

1.创建数据库

数据库文件默认位置:C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA
(创建数据库最好放到此位置,避免权限问题。)

sql server 仓库出货 sqlserver数据仓库搭建_sqlserver


2.创建表

命名规范同类。

列:

NChar,Nvarchar(32) N:Unicode,2个字节表示一个字符。

Char:一个字节表示一个字符。

NChar和Char的区别?
避免乱码,N:Unicode,用两个自己表示一个字符。

可能遇到的问题:“阻止保存要求重新创建表的更改”的问题,解决办法: 工具→选项→设计器→阻止表的更改

sql server 仓库出货 sqlserver数据仓库搭建_sqlserver_02

3.设置主键:

六、数据库的字段类型详解

Char,8000

Varchar,8000

Nchar,4000

Nvarchar,4000

Text varchar(max)


固定长度的非Unicode字符数据。固定长度的字符串相对于可变长度的字符串来说效率要高一些,在数据长度固定的情况下优先选用固定长度,省去了计算长度的过程提高效率.

可变长度非Unicode 数据

固定长度的Unicode 数据

可变长度Unicode数据

存储长文本信息(指针2G)


七、数据库的迁移方案

右击数据库属性:

sql server 仓库出货 sqlserver数据仓库搭建_数据库_03

分离 附加
权限问题:
启用Administrator账号
把数据库文件放到默认的数据库文件存放目录。
数据库文件兼容级别,设置成2005兼容

脱机 附加

备份 还原

生成SQL脚本

八、SQL脚本

结构化查询语言(Structured Query Language)

DML\DDL\DCL
脚本:一般就是指比较简单的,不需要编译的可以直接解析执行的语言,常见的比如:SQL、JavaScript等。

T-SQL的特点
跨DBMS,基本上所有的DBMS都对标准T-SQL兼容
大小写不敏感(仅仅是关键字不敏感,字符串数据是大小写敏感的)
转义

九、基本的DDL SQL脚本

创建数据库(Create Database)

创建数据库的SQL:
		create database 数据库名
		on
		(
			name=‘’,
			size=5MB,
			filegrowth=2MB,
			filename="....\data\db.mdf"
		)
		log on
		(
			name=‘_log’,
			size=5MB,
			filegrowth=2MB,
			filename="....\data\db_log.ldf"
		)
--1.创建数据库
create database PhpDb;

--2.删除数据库
drop database PhpDb;

创建表(包括主键、自动增长、是否可空)等

use PhpDb
create table Employee(
	EmpId int primary key not null,
	EmpName nvarchar(32) null,
	EmpAge int default(18) not null,
	DelFlag smallint default(0) not null
)
create table 表名
		(
			列名 类型 null,
			.....,
			列名  类型 primaryt key not null,--主键列
			
			列名  类型 identity(1,1) not null,--自动增长,只能用于数据的类型:int,bigint,float
			
		)

sql server 仓库出货 sqlserver数据仓库搭建_数据_04

十、基本的DML SQL脚本

select 列名,… from 表 where 表达式1 and 表达式2
delete from 表 where 表达式1 and 表达式2
update 表名 set 列1=值,列2=值
insert into 表名(列1,列2…) values(值1,值2…)

简单的查询: Select 列名 From 表明 where 条件表达式

--基本查询
select *from Employee where EmpId=1

插入数据: Insert Into 表名(列名) values(列值)

--插入数据
insert into Employee values('1','小明','18','1111')

删除数据:Delete

--删除数据:Delete
delete Employee where EmpId=2

修改数据:Update

--修改数据:Update
update Employee set EmpId=2 where EmpName='小明'

十一、案例:OA系统数据库设计

部门表:Department   JQJB:警情级别  	
	->部门的名字 DepName
	->部门的老大 DepMaster
	->部门的编号 主键:
	->部门的描述 
	->删除标识
	->上级部门的ID  
		select * from dep where ParentDepId =我的id
员工表、
	
内部员工消息表
	->发送者
	->发送的时间
	->发送的内容
	->接收
	->接收时间
	...
--OA项目
--创建数据库
create database OADB;
go
use OADB;
create table Department(
	DepId int identity(1,1)primary key not null,
	DepName nvarchar(32) null,
	DepMasterId int null,
	DepRemark nvarchar(512) null,
	ParentDepId int null,
	DelFlag smallint default(0) not null
)