diff --git "a/40\345\221\250\351\243\230/\344\275\234\344\270\232/2022.09.04 \347\254\254\344\272\214\350\212\202\350\257\276E-R\345\233\276\344\270\216\350\214\203\345\274\217-\350\256\276\350\256\241E-R\345\233\276\344\270\216\345\205\266\346\225\260\346\215\256\345\272\223/\347\254\254\344\270\200\344\270\252\344\275\234\344\270\232-\346\225\231\345\255\246\347\256\241\347\220\206\347\263\273\347\273\237\347\232\204E-R\345\233\276.md" "b/40\345\221\250\351\243\230/\344\275\234\344\270\232/2022.09.04 \347\254\254\344\272\214\350\212\202\350\257\276E-R\345\233\276\344\270\216\350\214\203\345\274\217-\350\256\276\350\256\241E-R\345\233\276\344\270\216\345\205\266\346\225\260\346\215\256\345\272\223/\347\254\254\344\270\200\344\270\252\344\275\234\344\270\232-\346\225\231\345\255\246\347\256\241\347\220\206\347\263\273\347\273\237\347\232\204E-R\345\233\276.md" new file mode 100644 index 0000000000000000000000000000000000000000..4e204fb5947ab2a6fac8f5a8a5734996ee263c77 --- /dev/null +++ "b/40\345\221\250\351\243\230/\344\275\234\344\270\232/2022.09.04 \347\254\254\344\272\214\350\212\202\350\257\276E-R\345\233\276\344\270\216\350\214\203\345\274\217-\350\256\276\350\256\241E-R\345\233\276\344\270\216\345\205\266\346\225\260\346\215\256\345\272\223/\347\254\254\344\270\200\344\270\252\344\275\234\344\270\232-\346\225\231\345\255\246\347\256\241\347\220\206\347\263\273\347\273\237\347\232\204E-R\345\233\276.md" @@ -0,0 +1 @@ +![第一个作业-设计E-R图](C:\Users\z\Desktop\SQL进阶\advanced-sql\40周飘\作业\2022.09.04 第二节课E-R图与范式-设计E-R图与其数据库\第一个作业-设计E-R图.png) \ No newline at end of file diff --git "a/40\345\221\250\351\243\230/\344\275\234\344\270\232/2022.09.04 \347\254\254\344\272\214\350\212\202\350\257\276E-R\345\233\276\344\270\216\350\214\203\345\274\217-\350\256\276\350\256\241E-R\345\233\276\344\270\216\345\205\266\346\225\260\346\215\256\345\272\223/\347\254\254\344\270\200\344\270\252\344\275\234\344\270\232-\350\256\276\350\256\241E-R\345\233\276.png" "b/40\345\221\250\351\243\230/\344\275\234\344\270\232/2022.09.04 \347\254\254\344\272\214\350\212\202\350\257\276E-R\345\233\276\344\270\216\350\214\203\345\274\217-\350\256\276\350\256\241E-R\345\233\276\344\270\216\345\205\266\346\225\260\346\215\256\345\272\223/\347\254\254\344\270\200\344\270\252\344\275\234\344\270\232-\350\256\276\350\256\241E-R\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..bb408188ed6949be1df17e7535be6a518cbee2be Binary files /dev/null and "b/40\345\221\250\351\243\230/\344\275\234\344\270\232/2022.09.04 \347\254\254\344\272\214\350\212\202\350\257\276E-R\345\233\276\344\270\216\350\214\203\345\274\217-\350\256\276\350\256\241E-R\345\233\276\344\270\216\345\205\266\346\225\260\346\215\256\345\272\223/\347\254\254\344\270\200\344\270\252\344\275\234\344\270\232-\350\256\276\350\256\241E-R\345\233\276.png" differ diff --git "a/40\345\221\250\351\243\230/\344\275\234\344\270\232/2022.09.04 \347\254\254\344\272\214\350\212\202\350\257\276E-R\345\233\276\344\270\216\350\214\203\345\274\217-\350\256\276\350\256\241E-R\345\233\276\344\270\216\345\205\266\346\225\260\346\215\256\345\272\223/\347\254\254\344\272\214\344\270\252\344\275\234\344\270\232-\351\223\266\350\241\214\344\270\232\345\212\241\347\232\204E-R\345\233\276\344\270\216\346\225\260\346\215\256\345\272\223/\351\223\266\350\241\214\344\270\232\345\212\241E-R\345\233\276\357\274\210pdm\357\274\211.md" "b/40\345\221\250\351\243\230/\344\275\234\344\270\232/2022.09.04 \347\254\254\344\272\214\350\212\202\350\257\276E-R\345\233\276\344\270\216\350\214\203\345\274\217-\350\256\276\350\256\241E-R\345\233\276\344\270\216\345\205\266\346\225\260\346\215\256\345\272\223/\347\254\254\344\272\214\344\270\252\344\275\234\344\270\232-\351\223\266\350\241\214\344\270\232\345\212\241\347\232\204E-R\345\233\276\344\270\216\346\225\260\346\215\256\345\272\223/\351\223\266\350\241\214\344\270\232\345\212\241E-R\345\233\276\357\274\210pdm\357\274\211.md" new file mode 100644 index 0000000000000000000000000000000000000000..9d2c36cfac651c8bb50145b9f9852b128e5a01cf --- /dev/null +++ "b/40\345\221\250\351\243\230/\344\275\234\344\270\232/2022.09.04 \347\254\254\344\272\214\350\212\202\350\257\276E-R\345\233\276\344\270\216\350\214\203\345\274\217-\350\256\276\350\256\241E-R\345\233\276\344\270\216\345\205\266\346\225\260\346\215\256\345\272\223/\347\254\254\344\272\214\344\270\252\344\275\234\344\270\232-\351\223\266\350\241\214\344\270\232\345\212\241\347\232\204E-R\345\233\276\344\270\216\346\225\260\346\215\256\345\272\223/\351\223\266\350\241\214\344\270\232\345\212\241E-R\345\233\276\357\274\210pdm\357\274\211.md" @@ -0,0 +1 @@ +![image-20220904201603062](C:\Users\z\AppData\Roaming\Typora\typora-user-images\image-20220904201603062.png) \ No newline at end of file diff --git "a/40\345\221\250\351\243\230/\344\275\234\344\270\232/2022.09.04 \347\254\254\344\272\214\350\212\202\350\257\276E-R\345\233\276\344\270\216\350\214\203\345\274\217-\350\256\276\350\256\241E-R\345\233\276\344\270\216\345\205\266\346\225\260\346\215\256\345\272\223/\347\254\254\344\272\214\344\270\252\344\275\234\344\270\232-\351\223\266\350\241\214\344\270\232\345\212\241\347\232\204E-R\345\233\276\344\270\216\346\225\260\346\215\256\345\272\223/\351\223\266\350\241\214\344\270\232\345\212\241\346\225\260\346\215\256\345\272\223.md" "b/40\345\221\250\351\243\230/\344\275\234\344\270\232/2022.09.04 \347\254\254\344\272\214\350\212\202\350\257\276E-R\345\233\276\344\270\216\350\214\203\345\274\217-\350\256\276\350\256\241E-R\345\233\276\344\270\216\345\205\266\346\225\260\346\215\256\345\272\223/\347\254\254\344\272\214\344\270\252\344\275\234\344\270\232-\351\223\266\350\241\214\344\270\232\345\212\241\347\232\204E-R\345\233\276\344\270\216\346\225\260\346\215\256\345\272\223/\351\223\266\350\241\214\344\270\232\345\212\241\346\225\260\346\215\256\345\272\223.md" new file mode 100644 index 0000000000000000000000000000000000000000..75e43d670c67d539e0d4096e65545b0aeb6052d4 --- /dev/null +++ "b/40\345\221\250\351\243\230/\344\275\234\344\270\232/2022.09.04 \347\254\254\344\272\214\350\212\202\350\257\276E-R\345\233\276\344\270\216\350\214\203\345\274\217-\350\256\276\350\256\241E-R\345\233\276\344\270\216\345\205\266\346\225\260\346\215\256\345\272\223/\347\254\254\344\272\214\344\270\252\344\275\234\344\270\232-\351\223\266\350\241\214\344\270\232\345\212\241\347\232\204E-R\345\233\276\344\270\216\346\225\260\346\215\256\345\272\223/\351\223\266\350\241\214\344\270\232\345\212\241\346\225\260\346\215\256\345\272\223.md" @@ -0,0 +1,86 @@ +```sql +create database Banking +go + +use Banking +go + + + +--状态信息变化表 +create table [State] +( + S_id int primary key, + S_status varchar(10) not null, +); +go + + + +--交易信息表 +create table Deal +( + D_id int primary key, + D_save varchar(100) not null,--存钱 + D_draw varchar(100) not null,--取钱 + S_id int foreign key references [State](S_id) +); +go + + + +--转账信息表 +create table EFT +( + E_id int primary key, + E_information varchar(200), + S_id int foreign key references [State](S_id) +); +go + + +--账户信息表 +create table Account +( + A_id int primary key, + A_information varchar(200), + E_id int foreign key references EFT(E_id), + D_id int foreign key references Deal(D_id) + +); +go + + +--银行卡表 +create table BankCard +( + B_id int primary key, + B_information varchar(100), + S_id int foreign key references [State](S_id), + E_id int foreign key references EFT(E_id) + +); +go + + +--状态信息变化表 +insert into [State] values(101,'挂失'),(102,'注销'),(103,'正常') +--交易信息表 +insert into Deal values(201,'存入3000','取出200',103),(202,'存入0','取出500',101),(203,'存入2500','取出0',102) +--转账信息表 +insert into EFT values(301,'转出7000',102),(302,'转出2000',101),(303,'转入4000',103) +--账户信息表 +insert into Account values(401,'章鱼哥',303,201),(402,'蟹老板',302,203),(403,'派大星',301,202) +--银行卡表 +insert into BankCard values(501,'123456789',102,301),(502,'987654321',101,303),(503,'147852369',103,302) + + +select * from [State] +select * from Deal +select * from EFT +select * from Account +select * from BankCard + + +``` + diff --git "a/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.08.31 \347\254\254\344\270\200\350\212\202\350\257\276-\345\244\215\344\271\240SQL\345\237\272\347\241\200.md" "b/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.08.31 \347\254\254\344\270\200\350\212\202\350\257\276-\345\244\215\344\271\240SQL\345\237\272\347\241\200.md" index 07db239ca3bfedefd7706ad563e37bf7ec3974d6..8c7d6705eb019c3be501f1fc87c52c596f2663d8 100644 --- "a/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.08.31 \347\254\254\344\270\200\350\212\202\350\257\276-\345\244\215\344\271\240SQL\345\237\272\347\241\200.md" +++ "b/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.08.31 \347\254\254\344\270\200\350\212\202\350\257\276-\345\244\215\344\271\240SQL\345\237\272\347\241\200.md" @@ -1,4 +1,41 @@ -### 1,增加 insert (into)...values... +### 一,数据类型 + +#### 1,字符串数据类型 + +| 数据类型 | 描述 | 储存空间 | +| ------------- | -------------------------- | ----------------- | +| Char(n) | n为1~8000个字符 | n字节 | +| Nchar(n) | N为1~4000个unicode字符 | (2n字节)+2字节 | +| Varchar(n) | n为1~8000个字符 | 每字符1字节+2字节 | +| Varchar(max) | 最多为2^31^-1 | 每字符1字节+2字节 | +| Nvarchar(max) | 最多为2^30^-1个Unicode字符 | 2倍字符数+2字节 | +| ntext | 最多为2^30^-1个Unicode字符 | 每字符2字节 | +| text | 最多为2^30^-1个字符 | 每字符1字节 | + + + +#### 2,整数数据类型 + +* bigint;表示-2^63^~2^63^-1范围内的所有整数 +* int(integer);表示-2^31^~2^31^-1范围内的所有整数 +* smallint;表示-2^15^~2^14^-1范围内的所有整数 +* tinyint;表示0~255范围内的所有整数 + + + +#### 3,浮点数据类型(储存十进制小数) + +* **real**;可以存储正的或者负的十进制数,它的存储范围为-3.40E+38~-1.18E-38、0 以及1.18E-38~3.40E+38。每个real类型的数据占用4字节的存储空间。 +* **float[(n)]**;其中n为用于存储float数值尾数的位数(以科学计数法表示),因此可以确定精度和存储大小。如果指定了n,则它必须是1~53的某个值。n的默认值为 53。如果不指定 float数据类型的长度,则它占用8字节的存储空间。float数据类型可以写成float(n)的形式,n 为指定 float 数据的精度,可以是1~53之间的整数值,当取1至24时,实际上定义了一个real 类型的数据,系统用4字节存储它。当n取25~53时,系统认为其为float类型,用8字节存储它。 +* **decimal[(p[,s])]**与**numeric[(p[,s])]**;这两种分别是带固定精度和小数位数的数值数据类型。使用最大精度时,有效值为-10^38+1~10^38-1。numeric在功能上等价于decimal。 + p(精度)指定了最多可以存储十进制数的总位数,包括小数点左边和右边的位数,该精度必须是从1到最大精度38之间的值,默认精度为18。 + s(小数位数)指定小数点右边可以存储的十进制数的最大位数,小数位数必须是0~p的值,仅在指定精度后才可以指定小数的位数。默认小数位数是0,因此0≤s≤p。最大存储大小基于精度而变化。例如,decimal(10,5)表示共有10位数,其中整数5位,小数5位。 + + + + + +### 二,增加 insert (into)...values... 1,创建数据库 create database+数据库名称 @@ -27,19 +64,19 @@ select *from +表名+order by +字段+==desc(降序)(默认升序asc)== 7,消除重复行 select distinct +字段 from +表名 -### 2,删除 +### 三,删除 ​ ==drop table +表名== -### 3,修改update +### 四,修改update update + 表名称 + set + 列名称 = 新值 where 列名称 = 旧值 -### 4,查询 +### 五,查询 -#### 基础查询 +#### 1,基础查询 -#### 条件查询 +#### 2,条件查询 **SQL中常用运算符** @@ -60,9 +97,7 @@ or:逻辑或(两个条件有一个成立表达式成立) not:逻辑非(条件成立,表达式则不成立;条件不成立,表达式则成立) ``` - - -#### 模糊查询 +#### 3,模糊查询 模糊查询使用like关键字和通配符结合来实现,通配符具体含义如下: @@ -75,7 +110,7 @@ _:代表匹配有且只有1个字符。 -#### 聚合函数 +#### 4,聚合函数 SQL SERVER中聚合函数主要有: @@ -101,7 +136,7 @@ select ROUND(123.45454,3,1) --123.45400 -#### SQL中常用的时间函数 +#### 5,SQL中常用的时间函数 ```sql select DATEDIFF(day, '2019-08-20', getDate()); --获取指定时间单位的差值 @@ -136,9 +171,9 @@ Select CONVERT(varchar(20),GETDATE(),14) --15:05:49:330 | 秒 | second | ss,s | | 毫秒 | millisecond | ms | -#### 分组查询 group by +#### 6,分组查询 group by -#### 连接查询 inner join on +#### 7,连接查询 inner join on * 内连接(自连接) select +表1.列1 from 表1 @@ -160,7 +195,7 @@ Select CONVERT(varchar(20),GETDATE(),14) --15:05:49:330 right join 表3 on 表2.列=表3.列 ..... -#### 并集查询(用于两个select查询之间) +#### 8,并集查询(用于两个select查询之间) select ...... 1,union (不允许有重复列) @@ -179,7 +214,7 @@ select...... -#### 子查询 +#### 9,子查询 子查询;一个select-from-where语句称为一个查询块,将一个查询块嵌套在另一个查询块的 where字句或者having子句短语的条件中的查询称为子查询(嵌套查询)。 diff --git "a/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.09.01 \347\254\254\344\272\214\350\212\202\350\257\276-E-R\346\250\241\345\236\213\344\270\216\350\214\203\345\274\217.md" "b/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.09.01 \347\254\254\344\272\214\350\212\202\350\257\276-E-R\346\250\241\345\236\213\344\270\216\350\214\203\345\274\217.md" new file mode 100644 index 0000000000000000000000000000000000000000..c7d7a8a878cb151720a1926a008e2753a04552cc --- /dev/null +++ "b/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.09.01 \347\254\254\344\272\214\350\212\202\350\257\276-E-R\346\250\241\345\236\213\344\270\216\350\214\203\345\274\217.md" @@ -0,0 +1,45 @@ +### 一,E-R模型 + +#### 1,E-R模型是通过E-R图表示的数据模型 + +#### 2,分类; + +* 矩形框;表示实体类型(考虑问题的对象) +* 菱形框;表示联系类型(实体间的联系) +* 椭圆形框;表示实体类型和联系类型的属性 +* 直线;联系类型与其涉及的实体类型之间以直线连接,并在直线端部标上联系的种类 + +#### 3,数据表之间的关联关系 + +* 1.**一对一关系** + 可以与任意一端对应的关系模式合并,在任意一方加入对方的主键(主码)变为其外键(外码),并加入联系本身的属性。 + +* 2.**一对多关系** + 可以与n端对应的关系模式合并,将1方的主键加入n方作为其外键,并将联系的属性也加入n方 + +* 3.**多对多关系** + + (新建一张关系表),将联系双方的主键(主码)加入其中,并将联系的属性也加入其中。 + + + + + +### 二,关系模式的规范化(范式) + +​ **尽量满足高标准的范式,适当建立索引,少采用储存过程,避免使用触发器** + +#### 1,第一范式(1NF);起始结构简单,便于讨论 + +* 规定了一个关系中的属性值必须是”原子“的,排斥了属性值为元组,数组或某种复合数组的可能性,使关系的属性值都是”最简形式“ + +#### 2,第二范式(2NF); + +* 如果一个关系满足第一范式,并且除了主键以外的其他列都依赖于该主键,则满足第二范式(2NF) + +#### 3,第三范式(3NF); + +* 如果一个关系满足第二范式,并且除了主键以外的其他列都依赖,且直接于主键列,则满足第三范式(3NF) + + +