diff --git "a/25\346\235\250\344\270\260\345\215\216/\344\275\234\344\270\232/ER\344\275\234\344\270\232/\347\254\254\344\270\200\351\242\230.md" "b/25\346\235\250\344\270\260\345\215\216/\344\275\234\344\270\232/ER\344\275\234\344\270\232/\347\254\254\344\270\200\351\242\230.md" new file mode 100644 index 0000000000000000000000000000000000000000..bda145656382c12c5fe595c419d543e1b2a0076f --- /dev/null +++ "b/25\346\235\250\344\270\260\345\215\216/\344\275\234\344\270\232/ER\344\275\234\344\270\232/\347\254\254\344\270\200\351\242\230.md" @@ -0,0 +1 @@ +![第一题](C:\Users\浮华如往昔\Desktop\ER作业\第一题.png) \ No newline at end of file diff --git "a/25\346\235\250\344\270\260\345\215\216/\344\275\234\344\270\232/ER\344\275\234\344\270\232/\347\254\254\344\270\200\351\242\230.png" "b/25\346\235\250\344\270\260\345\215\216/\344\275\234\344\270\232/ER\344\275\234\344\270\232/\347\254\254\344\270\200\351\242\230.png" new file mode 100644 index 0000000000000000000000000000000000000000..e323e49fe821e2aaad55d3166dd6aab447107679 Binary files /dev/null and "b/25\346\235\250\344\270\260\345\215\216/\344\275\234\344\270\232/ER\344\275\234\344\270\232/\347\254\254\344\270\200\351\242\230.png" differ diff --git "a/25\346\235\250\344\270\260\345\215\216/\344\275\234\344\270\232/ER\344\275\234\344\270\232/\347\254\254\344\272\214\351\242\230.md" "b/25\346\235\250\344\270\260\345\215\216/\344\275\234\344\270\232/ER\344\275\234\344\270\232/\347\254\254\344\272\214\351\242\230.md" new file mode 100644 index 0000000000000000000000000000000000000000..363a771251545bdd16f07ca23da6e2d4fff579d1 --- /dev/null +++ "b/25\346\235\250\344\270\260\345\215\216/\344\275\234\344\270\232/ER\344\275\234\344\270\232/\347\254\254\344\272\214\351\242\230.md" @@ -0,0 +1,84 @@ +![第二题](C:\Users\浮华如往昔\Desktop\ER作业\第二题.png) + +``` +create database Banks +go +use Banks +go + +--账号信息表 +create table BUser +( + UserId int primary key identity(1,1),--账户Id + UserName varchar(20) --账户姓名 + +) +insert BUser values +('张三'), +('李四'), +('王五') + + +--银行卡表 +create table Bank +( + BId int primary key identity(101,1), --卡号Id + Bpwd int , --银行卡密码 + BCard int ,--银行卡号 + UserId int references BUser(UserId) --账号Id + +) + +insert Bank values +('123456','11223344','1'), +('123455','11223345','2'), +--('123454','11223346','1'), +('123453','11223347','3') + + +--交易信息表 +create table Deal +( + DealId int primary key identity(201,1),--交易信息Id + Dsave varchar(20) not null,--存钱 + Dborrow varchar(20) not null,--取钱 + BId int references Bank(BId), --银行卡Id + UserId int references BUser(UserId) ,--用户Id + +) +insert Deal values +('存入50000','取出300','101','1'), +('存入60000','取出3000','102','2'), +('存入99000','取出60000','103','3') + +--转账信息表 +create table TDeal +( + TDId int primary key identity(301,1), --转账Id + Transfer varchar(20) not null, --转账记录 + BId int references Bank(BId), --银行卡Id + UserId int references BUser(UserId),-- 用户Id + + +) +insert TDeal values +('转出5000','101','1'), +('转入8000','102','2'), +('转出50000','103','3') + + +--状态信息表 +create table Statu +( + StId int primary key identity(401,1),--状态Id + Statuss varchar(20) not null check(Status in ('正常','冻结','挂失','注销')),--状态 + BId int references Bank(BId), --银行卡Id + UserId int references BUser(UserId),--用户Id + +) +insert Statu values +('正常','101','1'), +('挂失','102','2'), +('冻结','103','3') +``` + diff --git "a/25\346\235\250\344\270\260\345\215\216/\344\275\234\344\270\232/ER\344\275\234\344\270\232/\347\254\254\344\272\214\351\242\230.png" "b/25\346\235\250\344\270\260\345\215\216/\344\275\234\344\270\232/ER\344\275\234\344\270\232/\347\254\254\344\272\214\351\242\230.png" new file mode 100644 index 0000000000000000000000000000000000000000..2bbc8f2313c7f586b6a80a22490aa6ea0c98bad1 Binary files /dev/null and "b/25\346\235\250\344\270\260\345\215\216/\344\275\234\344\270\232/ER\344\275\234\344\270\232/\347\254\254\344\272\214\351\242\230.png" differ diff --git "a/25\346\235\250\344\270\260\345\215\216/\347\254\224\350\256\260/\347\254\254\344\270\200\350\212\202\350\257\276 \346\225\260\346\215\256\345\272\223\345\244\215\344\271\240.md" "b/25\346\235\250\344\270\260\345\215\216/\347\254\224\350\256\260/\347\254\254\344\270\200\350\212\202\350\257\276 \346\225\260\346\215\256\345\272\223\345\244\215\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..26c2d021cbf1be67a318537e3f01d2efe15693f6 --- /dev/null +++ "b/25\346\235\250\344\270\260\345\215\216/\347\254\224\350\256\260/\347\254\254\344\270\200\350\212\202\350\257\276 \346\225\260\346\215\256\345\272\223\345\244\215\344\271\240.md" @@ -0,0 +1,98 @@ +### SQL中常用运算符 + +``` +=:等于,比较是否相等及赋值 + +!=:比较不等于 + +:比较大于 + +<:比较小于 + +=:比较大于等于 + +<=:比较小于等于 + +IS NULL:比较为空 + +IS NOT NULL:比较不为空 + +in:比较是否在其中 + +like:模糊查询 + +BETWEEN...AND...:比较是否在两者之间 50-100 BETWEEN 50 AND 100 + +and:逻辑与(两个条件同时成立表达式成立) + +or:逻辑或(两个条件有一个成立表达式成立) + +not:逻辑非(条件成立,表达式则不成立;条件不成立,表达式则成立) +``` + + + +##### 模糊查询 + +``` +关键词:like + +主要搭配使用: + +%:代表匹配0个字符、1个字符或多个字符。 +_:代表匹配有且只有1个字符。 +[]:代表匹配范围内 +[^]:代表匹配不在范围内 +``` + + + +##### 聚合函数 + +``` +常用函数: +count:求数量 +max:求最大值 +min:求最小值 +sum:求和 +avg:求平均值 + + + +ROUND函数用法: +round(num,len,[type]) +其中: +num表示需要处理的数字,len表示需要保留的长度,type处理类型(0是默认值代表四舍五入,非0代表直接截取) +select ROUND(123.45454,3) --123.45500 +select ROUND(123.45454,3,1) --123.45400 + + + +SQL中常用的时间函数: +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()); --返回当前日期年数 + +``` + +##### 时间格式控制字符串 + +| 名称 | 日期单位 | 缩写 | +| ------------ | ----------- | --------- | +| 年 | 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 | + diff --git "a/25\346\235\250\344\270\260\345\215\216/\347\254\224\350\256\260/\347\254\254\344\272\214\350\212\202\350\257\276 ER\345\233\276\347\273\230\345\210\266.md" "b/25\346\235\250\344\270\260\345\215\216/\347\254\224\350\256\260/\347\254\254\344\272\214\350\212\202\350\257\276 ER\345\233\276\347\273\230\345\210\266.md" new file mode 100644 index 0000000000000000000000000000000000000000..12a40101d2712f52dd579474655e217cc4e41cec --- /dev/null +++ "b/25\346\235\250\344\270\260\345\215\216/\347\254\224\350\256\260/\347\254\254\344\272\214\350\212\202\350\257\276 ER\345\233\276\347\273\230\345\210\266.md" @@ -0,0 +1,56 @@ +### E-R图定义 + +实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。 +是描述概念模型的工具。 + +##### 基本概念 + +(1)实体:客观存在并相互区别的事物。用矩形表示 +(2)属性:实体所具有的某一特性。用椭圆表示 +(3)码或键:唯一标识实体的属性集称为码或键。 +(4)域:属性的取值范围。 +(5)实体型:用实体名及其属性集合来抽象和刻画同类实体。 +(6)实体集:同型实体的集合。 +(7)联系:实体和实体之间的联系。联系也可以有属性,用菱形表示。 + + +##### E-R图转换为关系模型 + +``` +1对1: + +可以转换为一个独立的关系模式 +可以与任意一端对应的关系模式合并,在任意一方加入对方的主键(主码)变为其外键(外码),并加入联系本身的属性。 + +1对n,n对1: + +可以转换为一个独立的关系模式 +可以与n端对应的关系模式合并,将1方的主键加入n方作为其外键,并将联系的属性也加入n方 + +m对n: + +可以转换为一个独立的关系模式(新建一张关系表),将联系双方的主键(主码)加入其中,并将联系的属性也加入其中。 +``` + + + +#### 第一范式 + +``` +第一范式的目标是确保每列的原子性 + +如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF) +``` + +#### 第二范式 + +``` +如果一个关系满足第一范式,并且除了主键以外的其他列都依赖于该主键,则满足第二范式(2NF) +``` + +#### 第三范式 + +``` +如果一个关系满足第二范式,并且除了主键以外的其他列都依赖,且直接于主键列,则满足第三范式(3NF) +``` + diff --git a/README.en.md b/README.en.md deleted file mode 100644 index 857e214f8a49e71d1e4f543c63859385eb493ba1..0000000000000000000000000000000000000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# SQL进阶 - -#### Description -{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)