---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
学习内容:数据库。
数据库概述:1.DBMS(DataBase Management System,数据库管理系统)和数据库。平时谈到“数据库”可能有两种含义:MSSQLServer,Oracle等某种DBMS;存放一堆数据表的一个分类(Catalog).
2. 不同品牌的DBMS有自己的不同的特点:MYSQL,MSSQLServer,DB2,Oracle,Access,Sybase等。对于开发人员来讲,大同小异。
3. 除了Access,SQLServerCE等文件型数据库之外,大部分数据库都是需要数据库服务器才能运行。学习,开发时是连接本机的数据库,上线运行时是数据库运行在单独的服务器。
Catalog(分类)(又叫数据库DataBase,表空间TableSpace),不同类的数据应该放到不同的数据库中
1.便于对各个Catalog进行个性化管理。
2.避免命名冲突。
3.安全性高。
主键(PrimaryKey)
主键就是数据行的唯一标识。不会重复的列才能当主键。一个表可以没有主键,但是会非常难以处理,因此没有特殊理由表都要设定主键。
主键有两种选用策略:
业务主键:业务主键是使用有业务意义的字段做主键,比如身份证号,银行账号等。
逻辑主键:使用没有任何业务意义的字段做主键,完全给程序看的,业务人员不会看的数据。因为很难保证业务主键不会重复(身份证号重复),不会变化(账号升位),因此推荐用逻辑主键。
主键的选择:
SqlServer中两种常用的主键数据类型:int(或bitint)+标识列(又成自动增长字段);
uniqueidentifier(又称Guid,UUID):Guid算法是一种可以产生唯一标示的高效算法,它使用网卡MAC, 地址不会重复,无论是同一个计算机上还是不同的计算机。在公元3400年以前产生的GUID与任何其他产生过的GUID都不相同。SQLServer中生成GUID的函数newid(),.net中生成的Guid方法:Guid.NewGuid(),返回是Guid类型。
各自的优缺点:
int自增字段
优点:占用空间小,无需看法人员干预,易读。
缺点:效率低;数据导入导出不灵活。
Guid
优点:效率高,数据导入导出方便;
缺点:占用空间大,不易读
数据类型
1: Character 字符串:
char(n) 固定长度的字符串。最多 8,000 个字符。
varchar(n) 可变长度的字符串。最多 8,000 个字符。
varchar(max) 可变长度的字符串。最多 1,073,741,824 个字符。
text 可变长度的字符串。最多 2GB 字符数据。
2: Unicode 字符串:
nchar(n) 固定长度的 Unicode 数据。最多 4,000 个字符。
nvarchar(n) 可变长度的 Unicode 数据。最多 4,000 个字符。
nvarchar(max) 可变长度的 Unicode 数据。最多 536,870,912 个字符。
ntext 可变长度的 Unicode 数据。最多 2GB 字符数据。
3: Binary 类型:
bit 允许 0、1 或 NULL
binary(n) 固定长度的二进制数据。最多 8,000 字节。
varbinary(n) 可变长度的二进制数据。最多 8,000 字节。
varbinary(max) 可变长度的二进制数据。最多 2GB 字节。
image 可变长度的二进制数据。最多 2GB。
4: Number 类型:
tinyint 1 字节 允许从 0 到 255 的所有数字。
smallint 2 字节 允许从 -32,768 到 32,767 的所有数字。
int 4 字节 允许从 -2,147,483,648 到 2,147,483,647 的所有数字。
bigint 8 字节 允许介于 -9,223,372,036,854,775,808 和 9,223,372,036,854,775,807 之间的所有数字。
decimal(p,s) 5-17 字节 固定精度和比例的数字。允许从 -10^38 +1 到 10^38 -1 之间的数字。p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是 1 到 38 之间的值。默认是 18。s 参数指示小数点右侧存储的最大位数。s 必须是 0 到 p 之间的值。默认是 0。
numeric(p,s) 5-17 字节 固定精度和比例的数字。允许从 -10^38 +1 到 10^38 -1 之间的数字。p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是 1 到 38 之间的值。默认是 18。s 参数指示小数点右侧存储的最大位数。s 必须是 0 到 p 之间的值。默认是 0。
smallmoney 4 字节 介于 -214,748.3648 和 214,748.3647 之间的货币数据。
money 8 字节 介于 -922,337,203,685,477.5808 和 922,337,203,685,477.5807 之间的货币数据。
float(n) 4 或 8 字节 从 -1.79E + 308 到 1.79E + 308 的浮动精度数字数据。参数 n 指示该字段保存 4 字节还是 8 字节。 float(24) 保存 4 字节,而 float(53) 保存 8 字节。n 的默认值是 53。
real 4 字节 从 -3.40E + 38 到 3.40E + 38 的浮动精度数字数据。
5: Date 类型:
datetime 8 字节 从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 3.33 毫秒。
smalldatetime 4 字节 从 1900 年 1 月 1 日 到 2079 年 6 月 6 日,精度为 1 分钟。
date 3 字节。 从 0001 年 1 月 1 日 到 9999 年 12 月 31 日。
time 3-5 字节 仅存储时间。精度为 100 纳秒。
datetimeoffset 8-10 字节 datetime2 相同,外加时区偏移。
timestamp 存储唯一的数字,每当创建或修改某行时,该数字会更新。timestamp 基于内部时钟,不对应真实时间。每个表只能有一个 timestamp 变量。
sql语句入门:
sql语句是DBMS"交谈"专用的语句,不同DBMS都认SQL语法。
sql语句中字符串用单引号。
sql语句是大小写不敏感的,不敏感指的是Sql关键字,字符串值还是大小写敏感的。
SQL主要分DDL(数据定义语言)和DML(数据操作语言)两类。Create Table,Drop table等属于DDL,Select,Insert等属于DML
一些简单的SQL语句:
创建一个表
Create table UserTable
(
Id int identity(1,1) primary key,//自增长,主键
UserName nvarchar(100),//用户姓名.
UserAge int,//用户年龄
UserAddress nvarchar(100)//用户地址
)
插入一条数据:
INSERT INTO UserTable(UserName,UserAge,UserAddress) values('张三',22,'北京')
更新一条数据:
update UserTable set UserAge=23 where Id=1
删除一条数据:
Drop UserTable where Id=1
查询Id为“1”的数据
select * from UserTable where Id=1
注意:
数据插入时,insert语句可以省略表明后的列名,但是不推荐。如果插入的行中有些字段的值不确定,那么Insert的时候不指定那些列即可。
更新数据:语法: UPdate 表名 set 列名='值' where 条件语句
删除数据:语法: Drop 表名 where 条件语句。
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------