主外键:
关系是实例类和类的关系,主键是类(理解为目录也许),外键是实例类(目录下的实际内容),实例类受到类的约束(目录的内容受到目录约束,级联后目录删除,那么属于这个目录的内容也删除)。
级联:
如果有主外键关系时候要删除数据需要级联删除,需要设计级联关系(级联跟新和级联删除,这东西知道就好了,最好不要用)
删除最合适是手动去删除不要代码操作,建数据库的时候利用bit值类型,对需要删除的赋值1或trun,这样就只需要标记删除做到虚拟删除就可以了,是一直谨慎的操作
如果是null的时候用is ,如is null
在值为字符类型时候,在单引号前加N表示这个字符使用UN...编码,如:厂家名称=N'华为'
-----------------------------
CHECK约束:
可以对列的值进行约束,比如:厂家编号>18.....表示厂家编号的值必须大于18,在设计中右击选择这个项进行编辑
---------------
sql中的NULL不是表示空值,是表示不知道的意思,所以null+1还是null,因为不知道了加什么都是不知道
注意sql表中的NULL是斜体的,如果是正常的NULL就表示‘NULL’这四个字母字符了
sql中平短短是否为空,因为"不知道"所以不能用=null这个写法,而是用is,
如:select * from dbo.厂家信息 where 厂家名称 is null
select * from dbo.厂家信息 where 厂家名称 is not null......not在这里用,表示厂家名称列中值不为空的字段
---------------------------------------------------------------------------------------
唯一标识类型:
SQLServer中生成GUID(全球唯一标识符)的函数newid(),.Net中生成Guid的方法:System.Guid.NewGuid(),返回是Guid类型。
GUI(uniqueidentifier类型)和int是主要的两个唯一标识类型,小数据用int,大数据用GUID
int易读占空间小可以自增无需干预,但导数据库的时候痛苦;GUID难读占空间大,但导数据库时候效率高(数据迁移和合并),所以GUID是主流啊
sql server生成GUID:newid()
-------------------------------------------------
(联合查询)多值匹配:内联inner join ,左联left outer join,右联right outer join,全联full outer join
in()也表示或的意思,如:select * from 厂家信息 where 厂家名称 in('华为','三星')
between,表示范围,如:select * from 厂家信息 where 厂家名称 between 1 and 4......表示大于等于1小于等于4之间的这个范围
ROW_NUMBER() over(order by 列名) 根据列名排列给结果集合一个序号
例子:
select * from
(
select ROW_NUMBER() over(order by time) as 序号, country_name_ch as 国家,country_name_en as 英文名,country 英文缩写,
indicator_name as 指标,unit as 单位,value as 数值,time as 年份 from dbo.country(表)
join dbo.fact(表) on dbo.country.country_id=dbo.fact.country
join dbo.indicator on dbo.indicator.indicator_id=dbo.fact.indicator
join dbo.time on dbo.time.time_id=dbo.fact.year
) as t
where 序号 between 1 and 200
--------------------------------------
belong_to()选择该文件
--------------------------------------------------------------------
分类 |备注和说明 |类型 |说明
................ |..................................|..............|...
二进制数据类型 |存储非子符和文本的数据 |Image |可用来存储图像
................ |.................................. |..............|..............
文本数据类型 |字符数据包括任意字母、符号或数字字符的组合|Char |固定长度的非 Unicode 字符数据
|Varchar |可变长度非 Unicode 数据
|Nchar |固定长度的 Unicode 数据
|Nvarchar |可变长度 Unicode 数据
|Text |存储长文本信息(指针,2G)
|Ntext |存储可变长度的长文本
.........................................................|..............|..........
日期和时间 |日期和时间在单引号内输入 |Datetime |日期和时间
................ |...................................|..............|...
数字数据 |该数据仅包含数字,包括正数、负数以及分数 |int
smallint |整数
|float
real |数字
............... .|...................................|..............|
货币数据类型 |用于十进制货币值 |Money |
................ |...................................|..............|.......
Bit数据类型 |表示是/否的数据 |Bit |存储布尔数据类型
.........................................................|..............|...........................
|numeric(10, 2)|10表示一共有10位数,2表示其中小数有2位,可以设置后面小数位数
---------------------------------------------------------------------------------