1、数据库概述
(1)用自定义文件格式保存数据的劣势
(2)DBMS(DataBase Management System 数据库管理系统)和数据库,平时谈到数据库可能有两种含义。 MSSQLServer Oracle等各种DBMS,存放一堆数据表的一个分类(Catalog)
不同品牌的DBMS有自己不同的特点,MYSQL、MSSQLSERVER、DB2、Oracle、Access、Sybase等,对于开发人员来讲大同小异。
除了Access、SQLServer CE等文件型数据库之外,大部分数据库都需要数据库服务器才能运行学习。开发时是连接本机的数据库,上线运行时是数据库运行在单独的服务器
2、数据库中的概念
Catalog(分类)(又叫做数据库DataBase,表空间,TableSpace)不同类的数据应该放到不同的数据库中
(1)便于对各个Catalog进行个性化管理
(2)避免命名冲突
(3)安全性更高
Table(表),书放到书架上,碗放到橱柜里,不同类型的资料放到不同的格子里,将这种区域叫做表(Table),不同的表根据放的数据不同进行空间的优化找起来也方便
3、主键
主键就是数据行的唯一标识,不会重复的列才能当主键,一个表中可以没有主键但是会非常难处理,因此没有特殊理由表都要决定主键
主键选用策略:
业务主键:使用有业务意义的字段做主键,比如身份证号、银行账户等
逻辑主键:使用没有任何业务意义的字段叫做主键,因为很难保证业务主键不会重复,不会变化(账户升位等)
因此推荐使用逻辑主键,完全给程序看了,业务人员是不会看的数据
4、表间关联,外键(Foreign-Key)
5、数据类型
Bit——boolean(0或1)
Char(10)——10个字符,不满足10补空格
Int——整数
Bigint——大整数
Nvarchar(50)——50个字符
Nvarchar(Max)——长度不限(中英文等)
Varchar(50)——纯英文50,不补空格
6、SQL语句入门
(1)SQL语句是和DBMS交谈的时候专用语句,不同的DBMS都认SQL语法
(2)SQL语句中字符串用单引号
(3)SQL语句是大小写敏感的,不敏感的是指SQL关键字,字符串值还是大小写敏感的
(4)创建表不仅可以手工完成,还可以执行SQL语句完成,在自动化部署数据导入中用的很多 CREATE TABLE T_PERSON(ID int not NUll,Name nvarchar(50) ,Age int NULL)
SQL主要分DDL(数据定义语言)和DML(数据操作语言)两类,CREATE TABLE,DROP TABLE均属于DDL,SELECT,INSERT均属于DML
7、主键选择
SQLServer中两种常用的主键数据类型 int(或bigint)+标识列(又称自动增长字段)、uniqueidentifier(又称GUID)
(1)用标识列实现字段自增可以避免并发等问题,不要开发人员控制自增,用标识列的字段,在Insert的时候不用指定主键的值,将字段的标识列设置为是,一个表只能有一个标识列