SQL server2016 数据库 基础知识

SQL Server基础知识

SQL Server服务的启动方式:
1、SQL配置管理器(C:\Windows\SysWOW64)
2、控制面板----管理工具-----服务----SQL Server服务
3、我的电脑----管理----服务----SQL Server服务
4、我的电脑----搜索(SysWOW64)
5、寻找以前的固定图标或快捷方式
6、win+r 输入:services.msc

SQL Server的启动方式:
1、SQL配置管理器(C:\Windows\SysWOW64)
2、控制面板----管理工具-----服务----SQL Server服务
3、我的电脑----管理----服务----SQL Server服务

SQL SERVER(MSSQLSERVER) ,服务器名:计算机名\实例名
MSSQLSERVER(实例)
服务器名称可以为:英文点(.) localhost .\实例名 ip地址 计算机名称

数据库(DB)
定义:存放数据的集合
数据库的特点:冗余小,共享性高,采用特定的数据模型,有统一的数据控制功能
数据:能被计算机存储、处理的图文声像等
数据类型:数值型、非数值型 //(数据不等于数字)
数据处理:将数据转换为信息的过程
信息 = 数据 + 数据处理 //(信息一定是数据但数据不一定是信息)

数据库管理系统(DBMS)
核心 系统软件 应用系统
作用:数据操纵,数据组织,控制及保护数据服务等
DBMS介于用户和操作系统之间

数据库系统(DBS)
组成:​硬件系统、数据库,数据库管理系统、数据库管理员、用户、数据库的软件
DBS 包含 DB+DBMS // 包含关系
DBS=DB+DBMS+DBA+硬件系统 // DBA:数据库管理员

数据库模型:
关系模型—二维表
网状模型—网络结构
层次模型—树状结构
结构数据模型

数据库的发展阶段:
人工管理阶段
文件系统阶段
数据库系统阶段

数据库名词:
实体 属性 同型实体(不同的实体有共同的属性)— 表达:实体名(属性1,属性2…)
实体型(一类实体) 实体集(多个同型实体)
码(主键) 域(属性的取值范围)

实体的联系:
一对一(1:1)
一对多(1:n)
多对多(m:n)

E-R图:
矩形:实体
四边形/菱形:关系(动词)
椭圆:属性

外键:
两个关系中,在关系1中是主键,但在关系2中不是主键,则称该属性为外键
主键与外键的关系:1:n

E-R图转换成关系模式规则:
一个实体集转换为关系模型中的一个关系,实体的属性就是关系的属性,实体的码就是关系的码,关系的结构是关系模式。
一个1:1联系可以转换为一个独立的关系,也可以与任意一端实体集所对应的关系合并。如果将1:1系转换为一个独立的关系,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,且每个实体的码均是该关系的候选码。如果将1:1联系与某一端实体所对应的关系合并,则需要在被合并关系中增加属性,其新增的属性为联系本身的属性和与联系相关的另一个实体的码。
实体间的1:n联系可以有两种转换方法:一种方法是将联系转换为一个独立的关系,其关系的属性由与该联系相连的各实体集的码以及联系本身的属性组成,而该关系的码为n端实体的码;另一种方法是在n端实体集中增加新属性,新属性由联系对应的1端实体集的码和联系自身的属性构成,新增属性后原关系的码不变。
一个m:n联系转换为一个关系:与该联系相连的各实体集的码以及联系本身的属性均转换为关系的属性,新关系的码为两个相连实体码的组合。

数据库范式判断:
范式:进行数据库设计时所要遵循的规则和准则(五大范式)

第一范式(1st NF):关系中的属性都是不可再分的数据项(消除多值)
第二范式(2nd NF):每一列都依赖于主键  联合主键的每一列都要完全依赖于主键	(消除部分依赖)
第三范式(3 NF):除主键以外的其他列都不传递依赖于主键列(消除传递依赖)

数据库的文件类型:
1、主数据文件(primary file):
每一个数据库额有且只有一个主数据文件
扩展名为:.mdf
作用:存放数据以及数据库的启动信息

2、辅助数据文件(secjdary file):
可以有多个也可以没有
扩展名:.ndf
作用:扩充存放数据(当主数据文件存储空间不够时启用)

3、事务日志文件:
一个数据库至少有一个日志文件
扩展名:.ldf
作用:存放数据库的日志,记录对数据库的操作记录

数据库文件组:分组

SQL Sever系统数据库:

  • master 主数据库(包含数据库的系统信息,至少对应两个文件)
  • model 模板数据库(存放数据库的系统表格)
  • msdb
  • tempdb 存放临时表(每次启动数据库都会重建还原,删除不会影响数据库的影响)

–查看数据库信息:sp_helpdb model //查看model数据库的信息
(右键数据库–属性–文件也可以查看)

逻辑文件名称没有后缀

数据完整性:
定义:指数据的 精确性 和 可靠性 //数据完整性通过SQL server约束实现

1、实体完整性	//主键	primary key
2、域完整性		//检查约束 check
3、参照完整性	//外键 foreign key

表的数据类型:

  • 字符型:char(长度固定) varchar(长度不固定) 日期型:date[年月日]长度8 datetime【长日期,时分秒】
  • 整型:tinyint(0-255) smallint(-2^15,-32768-32767) int(-2^31,-2147483648-2147483647) bigint(-263-263-1)
  • 浮点型:decimal(p,s) numeric(p,s) //p表示长度,s表示小数位数

管理数据库:
1. 打开数据库:use 数据库名称
2. 重命名数据库:sp_renamedb ‘原数据据库’,‘新数据库名’
3. 修改数据库 //不能修改保存路径和文件名

创建数据库:

	create database student03
	on primary(
		name='student03_data',	*//单引号内为逻辑名称*
		filename='f:\sql\student03_data.mdf',		*//保存路径以及文件名称*
		size=3mb,	//初始大小
		maxsize=20mb,	*//最大增长*
		filegrowth=20%	*//文件增长百分比*
	),	*//若要创建辅助文件则加逗号*
	(
		name='student03_data2',
		filename='f:\sql\student03_data2.ndf'
	)
	log on(
		name='student03_log',
		filename='f:\sql\student03_log.ldf',
		size=1mb,
		maxsize=10mb,
		filegrowth=10%
	)
	go

查看数据库/表:

	sp_helpdb 数据库名	//查看数据库
	sp_help	表名	//查看数据表

管理数据库:
1. 打开数据库:use 数据库名称
2. 重命名数据库:sp_renamedb ‘原数据据库’,‘新数据库名’
3. 修改数据库 //不能修改保存路径和文件名

1)增加文件(数据文件,日志文件):

		alter database 数据库名
		add file(	
			//add log file 表示增加日志文件,不加表示添加数据文件
			name = '逻辑名',
			filename = '物理名',
			size = 初始大小,
			maxsize = 最大大小,
			filegrowth = 增长量
		)

(2)删除文件:

		alter database 数据库名
		remove file   '逻辑文件名'	//表示删除某个文件

(3)修改文件:

		alter database 数据库名
		modify file(
			name = '逻辑名',
			size = 初始大小,	//初始大小要比原来大
			maxsize = 最大大小,
			filegrowth = 增长量
		)

(4)删除数据库:

		drop database 数据库名称

三大定义语句:
创建(create)
修改(alter)
删除(drop)

分离\附加数据库:

*//分离数据库后,数据库文件仍然存在,只是不受服务器的控制*

分离数据库:

		exec sp_detach_db library,true,true	//其中 library是数据库名
		EXEC sp_detach_db @dbname = '数据库名称'

附加数据库:

// 方法一
   EXEC sp_attach_db @dbname = 数据库名称, 
		@filename1 = 'MDF路径',	//主数据库文件的路径,1表示文件1
		@filename2= 'LOG路径.LDF'		//2表示文件2

//方法二
  create database 数据库名称
		on(filename = '主数据文件路径')
		for attach

创建数据表:
表名、字段名都用英文 字段含义用中文
主键不能为空,也不能重复。外键的数据类型及长度必须与逐渐的类型及长度一致

	use 表名	//打开表,表示再该表中创建内容
	create table 表名
	(字段名1  类型(长度)  constraint   主键名  primary key,	//主键名通常格式为:pk_名字。constrant表示约束
	字段2   类型(长度)not null,
	字段3   类型(长度)  constraint  外键名  foreign key references  引用表名(引用字段名)	//外键:    外键名通常格式为:fk_名字。references表示引用
)

查看表数据:

	select  *  from 表名

删除表:

	drop table 表名

修改表:

	alter table 表名
	add constraint 约束名  约束类型 (列名) 引用	//添加一个约束,

	eg:
	alter table students
	add constraint 
	fk_student_class foreign key  classno 
	references class(classno)

SQL约束:

主键(primary key)
外键(foreign key)
非空(not null)
默认(default)
检查(check)
唯一(unique)

  • 默认值(约束):
	eg:
	alter table teacher
	add constraint 
	df_prof default('讲师') 
	for prof
  • 删除默认值:
	alter table teacher
	drop constraint df_prof default
  • 检查(约束):
	alter table teacher
	add constraint 
	ck_tsex check
	(tsex = '男') 
	//(tsex in ('女','男'))
  • 唯一约束(unique):
	alter table  表名    
	add constrint 
	索引名称 unique(字段名)

	//eg:
	alter table dept
	add constraint 
	ix_deptname unique(deptname)	

数据的操作:

  • 操作语句
	insert update  delete 	//添加修改删除
  • 添加数据:
	insert into 表名 【(字段1,字段2,……) 】
	valuses 
	(表达式1,表达式2,……)【,】
	【(表达式1,表达式2,……)*:字段数与表达式的是一一对应,切值的顺序哟啊对应字段的顺序
  • 删除数据:
	delete from 表名 where 表达式

猜你喜欢

转载自blog.csdn.net/weixin_46622106/article/details/111241234