数据库:存放数据的仓库,不同类型的数据应该存放到不同的数据库中。
数据表:用于分类存放数据,数据库里还有DBA对表进行管理,比如:维护调试数据库、保证数据库的正常运行、进行数据备份、数据还原、表结构
调优。
尽量在一张表中只存储一种信息。
从仓库拿数据需要凭证(权限),
列Column、字段Field、行(
元组
)
对数据库的操作:写入和读取数据
-------------------------------------------------->
数据库特点:
1)海量存储、
2)查询速度快、
3
)并发控制问题(数据库有锁机制,能够保证多个人同时访问)、
4)安全性、数据完整性(保存在数据库中的数据是正确的,真实的,不能是非法的数据)
-------------------------------------------------->
数据库软件:(
数据库其实也是文件
)
数据库存在操作系统的磁盘文件上,但是记事本不能直接打开看,必须通过数据库软件才能访问里面的数据(数据库软件高效的查询,并发的控制)。
数据库管理系统(
DBMS
):数据库管理系统,大部分数据库都需要数据库服务器才能运行。开发时连接的是本机的数据库,上线运行时数据库运行在单独的服务器。
-------------------------------------------------->
重复记录:
一张表中可以出现重复的记录,但是最好不要出现重复的记录。
没有必要,浪费存储空间。
避免表中出现重复的记录。如何避免表中出现重复的记录呢:使用主键。
-------------------------------------------------->
主键:
主键是数据行的唯一标识,不能重复的列才能当主键,一个表中可以没有主键,但是数据可能非常难处理。
逻辑主键与业务主键,一般推荐使用逻辑主键,使用没有任何业务意义的字段做主键。
1)主键列不允许为空
2)主键不能重复
3)与实际业务没有关系的列
4)稳定的列(列中的数据不经常改变)
5)选择单列作为主键
6)尽量选择数字类型作为主键,不要选择字符串。
-------------------------------------------------->
什么是数据冗余:
如果一张表中存在大量重复的数据,就产生了数据冗余(会造成存储空间的浪费、更新异常和删除异常)。
一般情况下,不允许表中出现数据冗余。
如何将两张表中的数据关联起来?
使用主外键进行关联,使用主外键就能将不同表中的数据关联起来。
外键必须引用另一张表中的主键,引用另一张表中的数据,直接拿过来即可。(有外键的表成为外键表)
外键表与主键表。外键列
-------------------------------------------------->
SQL Server数据库的安装
-------------------------------------------------->
如何连接数据库:
总体思路:先启动服务----->打开sql server管理工具
如何启动数据库服务。
1)服务器名称(ip地址)
2)身份验证,用户名和密码
数据库所在的主机地址、SQL Server版本、用户名
如何查询当前数据库的版本?
新建查询----->print @@version(选中这条语句)----->执行查询
数据库可视化工具
-------------------------------------------------->
SQL
Server的两种身份验证方式:
用户名验证和windows验证
windows验证:使用当前登录windows操作
系统的账号(
用户名和密码
)直接连接数据库,如果这个账号有权限连接数据库,就能登录成功!
-------------------------------------------------->
当前连接数据库的用户:
1)如何查看当前用户的登录名:
安全性----->登录名
2)如何添加数据库的用户:右键单击登录名----->新建登录名----->搜索
----->
高级
----->
立即查找
如何卸载数据库?
一个服务器上可以安装多个数据库实例,两个数据库之间完全没有联系,相互不知道对方的存在。
通过设计器创建数据库和表
如何创建数据库:
右键单击----->新建数据库----->输入数据库名字----->回车。
如何查看数据库的保存位置:
右键单击----->属性----->文件----->数据库文件路径,就可以看到数据库文件的位置。
数据库其实也是一个磁盘文件。
每次新建数据库都会产生两个文件:
主数据库文件与日志文件;
1)主数据文件后缀名为.mdf,所有的数据都保存在这里
2)事物日志文件为.ldf.(f是文件的意思),这里保存的是对数据库的操作记录。
3)可以包含任意多个次要数据文件 .ndf
-------------------------------------------------->
新建数据库时,如何进行详细设置?
设置数据库的存储路径、设置数据库大小自动增长、设置数据库的逻辑名称
如何新建数据表:单击表----->新建表:表设计器----->标识规范
-------------------------------------------------->
数据库的分离和附加:主要用于数据库文件的copy
数据库分离:右键单击数据库----->任务----->分离----->勾选删除链接----->分离之后在数据库列表就不能看到此数据库了。
附加数据库文件:右键单击数据库----->附加----->找到数据库的路径,选中即可。
更好的办法:选中数据库单击----->脱机;右键单击----->任务----->联机。
-------------------------------------------------->
SQLServer常用数据类型
image:主要用于存储图片,内部以字节数组的形式进行存储,不限制存储大小,把一张图片转化成二进制流进行存储。
binary(50):也可以用于存储图片
字符串类型:
如果存储的数据有中文,就是用带n的数据类型
带var与不带var的区别是:可变长度与固定长度:存储的数据长度是可变的,存储的数据长度是固定的
一个汉字占用两个字节,一个英文单词占用一个字节,一个字节用八位二进制数表示。
可变长度更节省内存空间
帮助菜单----->查看帮助----->搜索数据类型
-------------------------------------------------->
通过生成兼容脚本移动数据库
数据库版本不同,数据库copy后,无法打开。
右键单击----->任务----->生成脚本----->选择 保存到新建查询窗口----->高级----->为某种指定的服务器编写脚本----->要编写脚本的数据类型(选择数据和架构)
-------------------------------------------------->
用户数据库与系统数据库
用户数据库:用户自己创建的数据库。
1)新建查询里面的注释:--
对sql语句进行注释。
2)如何将鼠标操作转化成sql语句?
新建数据库面板----->脚本----->将“操作脚本”保存到“新建查询“窗口.
必须会写新建数据库和数据表的代码:手写。
如何创建数据表?
4)检查sql语句的语法。
5)表示当前要操作的数据库:等同于“
use 数据库名
”语句。
use 数据库名:表示当前要用的数据库名称,在其下面创建表。
6)右键单击表名----->选择设计----->就可以修改表结构。
7)创建员工表:
--使用sql语句创建表:员工表
create table Employees(
EmpID int identity(1,1) primary key,
EmpIdCard varchar(18) not null,
EmpName nvarchar(10) null,
EmpGender bit null,
EmpJoinData datetime,
EmpAge int null,
EmpAddress nvarchar(50) null,
EmpPhone varchar(100) not null,
--所属部门id,引用另外一张表中的主键
EmpDepartID int not null,
EmpEmail varchar(100) null
)
练习sql语句:
--创建数据库
create database MyFirstData;
--删除数据库
drop database MyFirstData;
--将代码环境切换到你想要使用的表下面
use MyFirstData;
--如何在数据库中创建数据表
--最后一句不需要添加逗号 非空not null 主键primary key 自动增长identity(1.1) 可以为空null 日期类型为datetime。
create table Departments
(
AutoID Int identity(1,1) primary key,
DepartmentName nvarchar(10) not null
)
--删除数据表
use MyFirstData;
drop table Departments;
多记忆数据库操作的关键字
----------------------------------------------------->
数据仓库
就与我们之前学过的纯文本,properties,XML这些技术一样.用来保存数据.并提供对数据进行增删改查的操作. 我们以后做项目时,项目中的数据都是保存在数据库中的.
和文本存数据的区别是数据库中存放的是格式化、有结构的数据。
关系数据库,是建立在关系模型基础上的数据库;现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。
标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。 关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。
关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。
为什么要用数据库, 数据库的特点?
1、实现数据共享
2、减少数据的冗余度
3、数据实现集中控制
4、数据一致性,完整性和可维护性,以确保数据的安全性和可靠性(数据库的事务)
5、故障恢复
由服务帮你操作数据库.
数据库是由两部分构成的:数据库服务和库文件。通过数据库服务操作库文件。
DDL 数据库定义语言Data Definition Language || create alter drop (操作数据结构的语句)
DCL 数据库控制语言Data Control Language || grant rollback commit.
DML 数据库操纵语言Data Manipulation Language || insert update delete select;对数据库的增删改查。
DQL 数据库查询语言 Data Query Language || select (输入DML)
ddl语言是和表结构有关的语言;dml语言是对数据库操作的语言,增删改查。
sql中的语法:
1)sql中的注释 -- 表示注释一行
2)sql不区分大小写吗? 语句不区分大小写(关键字). 数据区分大小写.
3)sql语句的结束.使用";"表示sql语句的结束. 分号