diff --git "a/\347\254\224\350\256\260/\347\254\254\344\270\200\350\212\202\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.md" "b/\347\254\224\350\256\260/\347\254\254\344\270\200\350\212\202\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.md" new file mode 100644 index 0000000000000000000000000000000000000000..3ebcc18858b3e07e4628389d9ce5239bfecac1b1 --- /dev/null +++ "b/\347\254\224\350\256\260/\347\254\254\344\270\200\350\212\202\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241.md" @@ -0,0 +1,90 @@ +### 1.常用的运算符 + +=:等于,比较是否相等及赋值 +!=:比较不等于 + +:比较大于 +<:比较小于 +=:比较大于等于 +<=:比较小于等于 +IS NULL:比较为空 +IS NOT NULL:比较不为空 +in:比较是否在其中 +like:模糊查询 +BETWEEN...AND...:比较是否在两者之间 50-100 BETWEEN 50 AND 100 +and:逻辑与(两个条件同时成立表达式成立) +or:逻辑或(两个条件有一个成立表达式成立) +not:逻辑非(条件成立,表达式则不成立;条件不成立,表达式则成立) + +### 2.常用的聚合函数以及时间函数 + +count:求数量 +max:求最大值 +min:求最小值 +sum:求和 +avg:求平均值 +--时间函数 +select DATEDIFF(day, '2019-08-20', getDate()); --获取指定时间单位的差值 +SELECT DATEADD(MINUTE,-5,GETDATE()) --加减时间,此处为获取五分钟前的时间,MINUTE 表示分钟,可为 YEAR,MONTH,DAY,HOUR +select DATENAME(month, getDate()); --当前月份 +select DATENAME(WEEKDAY, getDate()); --当前星期几 +select DATEPART(month, getDate()); --当前月份 +select DAY(getDate()); --返回当前日期天数 +select MONTH(getDate()); --返回当前日期月数 +select YEAR(getDate()); --返回当前日期年数 + + + +SELECT CONVERT(VARCHAR(22),GETDATE(),20) --2020-01-09 14:46:46 +SELECT CONVERT(VARCHAR(24),GETDATE(),21) --2020-01-09 14:46:55.91 +SELECT CONVERT(VARCHAR(22),GETDATE(),23) --2020-01-09 +SELECT CONVERT(VARCHAR(22),GETDATE(),24) --15:04:07 +Select CONVERT(varchar(20),GETDATE(),14) --15:05:49:330 + + + +#### 时间格式控制字符串: + +| 名称 | 日期单位 | 缩写 | +| ------------ | ----------- | --------- | +| 年 | year | yyyy 或yy | +| 季度 | quarter | qq,q | +| 月 | month | mm,m | +| 一年中第几天 | dayofyear | dy,y | +| 日 | day | dd,d | +| 一年中第几周 | week | wk,ww | +| 星期 | weekday | dw | +| 小时 | Hour | hh | +| 分钟 | minute | mi,n | +| 秒 | second | ss,s | +| 毫秒 | millisecond | ms | + +#### E-R图转换为关系模型 + +- **1对1:** + - 可以转换为一个独立的关系模式 + - 可以与任意一端对应的关系模式合并,在任意一方加入对方的主键*(主码)变为其外键(外码),并加入联系本身的属性。 +- **1对n,n对1:** + - 可以转换为一个独立的关系模式 + - 可以与n端对应的关系模式合并,将1方的主键加入n方作为其外键**,**并将联系的属性也加入n方 +- **m对n:** + - 可以转换为一个独立的关系模式(新建一张关系表),将联系双方的主键(主码)加入其中,并将联系的属性也加入其中。 + +### 数据规范化 + +- 第一范式(1st NF -First Normal Fromate) +- 第二范式(2nd NF-Second Normal Fromate) +- 第三范式(3rd NF- Third Normal Fromate) + +#### 第一范式 (1st NF) + +- 第一范式的目标是**确保每列的原子性** +- 如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF) + +#### 第二范式 (2nd NF) + +如果一个关系满足第一范式,并且除了主键以外的其他列都依赖于该主键,则满足第二范式(2NF) + +#### 第三范式 (3rd NF) + +如果一个关系满足第二范式,并且除了主键以外的其他列都依赖,且直接于主键列,则满足第三范式(3NF) \ No newline at end of file