一.数据库的基础和管理:
持久化技术:内存->文件->数据库(相对来说用的最多,流行)
1.数据库:
1.存储海量数据(P)大数据,云计算
2.安全性
3.易于管理和操作(ddl,dml.tcl...)
4.数据的共享(并发访问)
2.产品品牌:(关系型数据库)
oracle:甲骨文(sun:java) ordbm(面向对象的关系型数据库)
db2:IBM(RDB)
sybase:SYBASE
mysql:sybase 免费 (***)
sqlserver:ms(性价比高,客户量大)(***)
3.关系型数据库语言统一(sql语言:)
DDL:数据定义语言(结构)
CREATE:创建
ALTER:修改
Truncate:截断
DML:数据操作语言(数据)
insert:添加
update:修改
delete:删除
select:查询(**************************)
TCL:事物控制语句
commit:提交
rollback:回滚
4.基础概念:
逻辑:服务器-->数据库-->表(实体集)-->行(实体,记录)-->列
ROM:关系(db) 对象(object 语言) 映射
表---->实体类
行---->属性
列---->实体类对象
多行数据-->泛型<实体类>集合
物理:文件
数据文件:数据(表,索引(加快查询速度))
主数据文件(mdf)有且仅有一个
次要数据文件(.ndf)可以没有也可以有多个
作用:扩容,分担风险和数据放问的压力
日志文件:记录所有的对数据库的写操
作用:数据恢复
日志文件:ldf(至少一个)
5.Sqlserver:
系统数据库:
master:主控数据库,所有与系统有关的资源
model :模板数据库
所有的新建数据库的初始状态与模板数据库一致
tempdb:临时数据库
中间数据,信息,内存的开辟和释放
msdb:代理数据库,主要用于代理功能的管理(DBA)
6.登录管理:
方式1:windows方式登录模式
有操作系统的权限,就可以登录
方式2:windows和sqlserver混合登录模式
7.数据库的移植:
数据库的分离和附加:(备份文件)冷备份 数据库在非工作状态下完成
数据库的备份和还原:(.bak)热备份:数据库在工作状态下完成()
二.表的创建和管理
1.创建表(二维)
从逻辑角度来看,数据是存储在表格中(从物理角度看是存储在数据文件中)
1)语法
varchar(字符长度)相当于string
例子:
use 数据库名
create table info
(
id int primary key,
Name varchar(50),
Age int check (age>18 and age<=60),
[Address]varchar(100)delault‘山西省永济市程胡庄八组‘
)
--语法
create table 表名
(
列名字 数据类型 [约束条件 not null或者null],
列名字 数据类型 [约束条件 not null或者null],
列名字 数据类型 [约束条件 not null或者null],
......
)
1.数据库的数据类型
数:int,decimal(4,2),numeric(4,0)--C# decimal
float,real
货币:money,精确到小数点后四位
文本类型:
char:固定长度的字符类型
name char(20) eg:张三,占4个剩16个 剩下的空间由空格占据(存在着空间的浪费)
varchar;可变长度的文本类型
name varchar(20) eg:张三,占4个剩16个 剩下的空间由系统自动重新分配(不存在空间浪费的问题)
思考:
什么时候用char 什么时候用varchar
char:
char(18):适合固定长度的字符
eg:身份证(18),当长度固定时,char类型的效率高于varchar类型
varchar():适合不能固定长度的字符的类型
注意:没有写长度 默认的长度为1
text:长文本信息
NCHAR,NVARCHAR,NTEXT:
N:UNICODE:支持双字节编码.(汉字,韩文......)
带有N的更适合存储汉字这种双字节的文本.
bit:(位)0或者1(通常当bool用)
eg:gender:(1,0)
假删除flag(1)
8bit=1byte
datetime:日期事件类型的函数
注意:添加:‘1999/09/09‘
内置函数:系统时间 getdate()
eg:select CREATEDATE()
img:存储图片等二进制数据
实际开发中:会把图片路径存储到数据