From c4e73ec7a852b18cbf888bf7cbfb549acf9743cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=8D=8E=E4=BC=9F?= <1931626338@qq.com> Date: Sun, 18 Sep 2022 17:03:05 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E5=92=8C?= =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2022-9-15.md" | 190 ++++++++++++++++++ .../SQLQuery1.sql" | 64 ++++++ .../2022-9-16.md" | 190 ++++++++++++++++++ .../SQLQuery2.sql" | 70 +++++++ 4 files changed, 514 insertions(+) create mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" create mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" create mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" create mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" new file mode 100644 index 0000000..c115434 --- /dev/null +++ "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" @@ -0,0 +1,190 @@ +# 2022.9.16 + +## 创建数据库 + +```SQL +create database 数据库名 +``` + +## 创建数据表 + +```SQL +create table 表名( +) +``` + +## 查询数据 + +```sql +select * from 表名 +``` + +## 增删改查 + +```SQL +insert into 表名 ({字段1},{字段1},{字段1},....) values (值1,值1,值1,....) +alter table (表名) add (列名) varchar(255) ; +delete from 表名 where 删除条件 +drop table (表名) 删除整个表 +UPDATE 表名 SET 字段1=修改的值1,字段2=修改的值2,.. . .. WHERE 修改的条件 +``` + + + +## 主键,自增,不允许为空,默认值,外键,唯一约束 + +```sql +1.primary key 主键 +2.identity(1,1) 自增 初始ID,自增多少 +3.not null 不允许为空 +4.default('') 默认值 +5.userId(表名) int(字段) references(外键) userInfo(表名)(userNo)列名 外键 +6.unique 唯一约束 +``` + +# 2022.9.17 + +## SQL条件查询 + +```sql +=:等于,比较是否相等及赋值 +!=:比较不等于 +>:比较大于 +<:比较小于 +>=:比较大于等于 +<=:比较小于等于 +IS NULL:比较为空 +IS NOT NULL:比较不为空 +in:比较是否在其中 +like:模糊查询 +BETWEEN...AND...:比较是否在两者之间 50-100 BETWEEN 50 AND 100 +and:逻辑与(两个条件同时成立表达式成立) +or:逻辑或(两个条件有一个成立表达式成立) +not:逻辑非(条件成立,表达式则不成立;条件不成立,表达式则成立) +``` + +## 模糊查询 + +```sql +%:代表匹配0个字符、1个字符或多个字符。 +_:代表匹配有且只有1个字符。 +[]:代表匹配范围内 +[^]:代表匹配不在范围内 + +模糊查询,包含查询 +select * from 表名 where 列名 like '%要查询的字段%' + +模糊查询,开头查询 +select * from 表名 where 列名 like '要查询的字段%' + +模糊查询,结尾查询 +select * from 表名 where 列名 like '%要查询的字段' +``` + +## 聚合函数 + +```SQL +count:求数量 +max:求最大值 计算某一列的最大值 +min:求最小值 计算某一列的最小值 +sum:求和 计算某一列的合计值,该列必须为数值类型 +avg:求平均值 计算某一列的平均值,该列必须为数值类型 +``` + +## 升序降序查询 + +```SQL +-- desc 降序 默认升序 asc -- +SELECT * FROM 表名 order by 列名 desc +``` + + + +## ROUND函数用法: + +```SQL +round(num,len,[type]) +其中: +num表示需要处理的数字,len表示需要保留的长度,type处理类型(0是默认值代表四舍五入,非0代表直接截取) +select ROUND(123.45454,3) --123.45500 +select ROUND(123.45454,3,1) --123.45400 +``` + +## CONVERT()与CAST()函数: + +```SQL +--1.保留小数 +convert(decimal(13,2),12.45454) +cast(12.45454 as decimal(13,2)) +--2.强制转换类型 +``` + +## SQL中常用的时间函数 + +```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()); --返回当前日期年数 + +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 +``` + +## 连表查询 + +```SQL +内连接查询 +1.select * from 第一张表名 重命名字段1 +2.inner join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 +3.where 要筛选的条件、 + +左连接查询 +1.select * from 第一张表名 重命名字段1 +2.left join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 +3.where 要筛选的条件、 + +右连接查询 +1.select * from 第一张表名 重命名字段1 +2.right join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 +3.where 要筛选的条件、 +``` + +## **时间格式控制字符串:** + +| 名称 | 日期单位 | 缩写 | +| ------------ | ----------- | --------- | +| 年 | 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 | + +## SQL语句执行顺序: + +```sql +(7) SELECT +(8) DISTINCT +(1) FROM +(3) JOIN +(2) ON +(4) WHERE +(5) GROUP BY +(6) HAVING +(9) ORDER BY +(10) LIMIT +``` + diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" new file mode 100644 index 0000000..732d0c6 --- /dev/null +++ "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" @@ -0,0 +1,64 @@ + + + + --Ϣ + create table sectionInfo( + --ű + sectionID int primary key identity(1,1), + -- + sectionName varchar(10) not null + ); + + select * from sectionInfo + INSERT INTO sectionInfo(sectionName) VALUES(''), + (''), + ('ڲ'); + + + --ԱϢ + create table userInfo( + --Ա + userNo int primary key identity(1,1) not null , + --Ա + userName varchar(10) unique not null check(len(userName)>=2), + --ԱԱ + userSex varchar(2) not null check(userSex='' or userSex='Ů'), + --Ա + userAge int not null check(userAge>=0 and userAge <=100), + --Աַ + userAddress varchar(50) default(''), + --Ա + userSection int references sectionInfo(sectionID) + ); + + drop table userInfo + + select * from userInfo + + INSERT INTO userInfo(userName,userSex,userAge,userAddress,userSection) + VALUES + ('','',17,'',1), + ('','Ů',18,'Ĵ',2), + ('','',20,'',3); + + + --Աڱ + create table workInfo( + --ڱ + workId int primary key identity(1,1), + --Ա + userId int references userInfo(userNo) not null, + --ʱ + workTime datetime not null, + --˵ + workDescription varchar(40) check(workDescription='ٵ' or workDescription='' + or workDescription='' or workDescription='' or workDescription='¼') not null + ); + + select * from workInfo + + INSERT INTO workInfo(userId,workTime,workDescription) + VALUES + (1,2022,'ٵ'), + (2,2022,'¼'), + (3,2022,''); \ No newline at end of file diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" new file mode 100644 index 0000000..c115434 --- /dev/null +++ "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" @@ -0,0 +1,190 @@ +# 2022.9.16 + +## 创建数据库 + +```SQL +create database 数据库名 +``` + +## 创建数据表 + +```SQL +create table 表名( +) +``` + +## 查询数据 + +```sql +select * from 表名 +``` + +## 增删改查 + +```SQL +insert into 表名 ({字段1},{字段1},{字段1},....) values (值1,值1,值1,....) +alter table (表名) add (列名) varchar(255) ; +delete from 表名 where 删除条件 +drop table (表名) 删除整个表 +UPDATE 表名 SET 字段1=修改的值1,字段2=修改的值2,.. . .. WHERE 修改的条件 +``` + + + +## 主键,自增,不允许为空,默认值,外键,唯一约束 + +```sql +1.primary key 主键 +2.identity(1,1) 自增 初始ID,自增多少 +3.not null 不允许为空 +4.default('') 默认值 +5.userId(表名) int(字段) references(外键) userInfo(表名)(userNo)列名 外键 +6.unique 唯一约束 +``` + +# 2022.9.17 + +## SQL条件查询 + +```sql +=:等于,比较是否相等及赋值 +!=:比较不等于 +>:比较大于 +<:比较小于 +>=:比较大于等于 +<=:比较小于等于 +IS NULL:比较为空 +IS NOT NULL:比较不为空 +in:比较是否在其中 +like:模糊查询 +BETWEEN...AND...:比较是否在两者之间 50-100 BETWEEN 50 AND 100 +and:逻辑与(两个条件同时成立表达式成立) +or:逻辑或(两个条件有一个成立表达式成立) +not:逻辑非(条件成立,表达式则不成立;条件不成立,表达式则成立) +``` + +## 模糊查询 + +```sql +%:代表匹配0个字符、1个字符或多个字符。 +_:代表匹配有且只有1个字符。 +[]:代表匹配范围内 +[^]:代表匹配不在范围内 + +模糊查询,包含查询 +select * from 表名 where 列名 like '%要查询的字段%' + +模糊查询,开头查询 +select * from 表名 where 列名 like '要查询的字段%' + +模糊查询,结尾查询 +select * from 表名 where 列名 like '%要查询的字段' +``` + +## 聚合函数 + +```SQL +count:求数量 +max:求最大值 计算某一列的最大值 +min:求最小值 计算某一列的最小值 +sum:求和 计算某一列的合计值,该列必须为数值类型 +avg:求平均值 计算某一列的平均值,该列必须为数值类型 +``` + +## 升序降序查询 + +```SQL +-- desc 降序 默认升序 asc -- +SELECT * FROM 表名 order by 列名 desc +``` + + + +## ROUND函数用法: + +```SQL +round(num,len,[type]) +其中: +num表示需要处理的数字,len表示需要保留的长度,type处理类型(0是默认值代表四舍五入,非0代表直接截取) +select ROUND(123.45454,3) --123.45500 +select ROUND(123.45454,3,1) --123.45400 +``` + +## CONVERT()与CAST()函数: + +```SQL +--1.保留小数 +convert(decimal(13,2),12.45454) +cast(12.45454 as decimal(13,2)) +--2.强制转换类型 +``` + +## SQL中常用的时间函数 + +```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()); --返回当前日期年数 + +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 +``` + +## 连表查询 + +```SQL +内连接查询 +1.select * from 第一张表名 重命名字段1 +2.inner join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 +3.where 要筛选的条件、 + +左连接查询 +1.select * from 第一张表名 重命名字段1 +2.left join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 +3.where 要筛选的条件、 + +右连接查询 +1.select * from 第一张表名 重命名字段1 +2.right join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 +3.where 要筛选的条件、 +``` + +## **时间格式控制字符串:** + +| 名称 | 日期单位 | 缩写 | +| ------------ | ----------- | --------- | +| 年 | 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 | + +## SQL语句执行顺序: + +```sql +(7) SELECT +(8) DISTINCT +(1) FROM +(3) JOIN +(2) ON +(4) WHERE +(5) GROUP BY +(6) HAVING +(9) ORDER BY +(10) LIMIT +``` + diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" new file mode 100644 index 0000000..facfccf --- /dev/null +++ "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" @@ -0,0 +1,70 @@ +--ѯ人еԱϢҪʾԼԱϸ +--ѯ人еԱϢҪʾƣְԼԱϸ +--ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʡ +--ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʣƽ10000 µIJͳƣҸƽʽС +--ݲƣȻְλƣͳԱԱܺͣƽʣ߹ʺ͹ +--ѯз 6.22--7.22 ԱϢ +--ѯԱϢһʾ(,ţ,,,,,,,,,,) = + + +select * from Department; +select * from [Rank]; +select * from People; +drop table Department +--ѯз 6.22--7.22 ԱϢ +select * from People where +MONTH(PeopleBirth)=6 and DAY(PeopleBirth)>=22 or MONTH(PeopleBirth)=7 and DAY(PeopleBirth)<=22 +--ѯԱϢһʾ(,ţ,,,,,,,,,,) + select * ,case + when YEAR(PeopleBirth)%12=0 + then '' + when YEAR(PeopleBirth)%12=1 + then 'ţ' + when YEAR(PeopleBirth)%12=2 + then '' + when YEAR(PeopleBirth)%12=3 + then '' + when YEAR(PeopleBirth)%12=4 + then '' + when YEAR(PeopleBirth)%12=5 + then '' + when YEAR(PeopleBirth)%12=6 + then '' + when YEAR(PeopleBirth)%12=7 + then '' + when YEAR(PeopleBirth)%12=8 + then '' + when YEAR(PeopleBirth)%12=9 + then '' + when YEAR(PeopleBirth)%12=10 + then '' + when YEAR(PeopleBirth)%12=11 + then '' + end from People + ; + +--ѯ人еԱϢҪʾԼԱϸ +select * from People +join Department on People.DepartmentId = Department.DepartmentId +where PeopleAddress ='人'; +--ѯ人еԱϢҪʾƣְԼԱϸ +select * from People +join Department on People.DepartmentId = Department.DepartmentId +join [Rank] on People.RankId = [Rank].RankId +where PeopleAddress ='人'; +--ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʡ +select DepartmentName, COUNT(*) Ա,SUM(PeopleSalary) Աܺ,AVG(PeopleSalary) ƽ ,MAX(PeopleSalary)߹,MIN(PeopleSalary)͹ from People +join Department on People.DepartmentId = Department.DepartmentId +group by DepartmentName; +--ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʣƽ10000 µIJͳƣҸƽʽС +select DepartmentName,COUNT(*) Ա,SUM(PeopleSalary) Աܺ,AVG(PeopleSalary) ƽ ,MAX(PeopleSalary)߹,MIN(PeopleSalary)͹ from People +join Department on People.DepartmentId = Department.DepartmentId +group by DepartmentName +having AVG(PeopleSalary)>=10000 +order by AVG(PeopleSalary) desc; +--ݲƣȻְλƣͳԱԱܺͣƽʣ߹ʺ͹ +select DepartmentName,RankName ,[Rank].RankId ְλȼ ,COUNT(*) Ա,SUM(PeopleSalary) Աܺ,AVG(PeopleSalary) ƽ ,MAX(PeopleSalary)߹,MIN(PeopleSalary)͹ from People +join Department on People.DepartmentId = Department.DepartmentId +join [Rank] on People.RankId = [Rank].RankId +group by DepartmentName,RankName,[Rank].RankId +order by [Rank].RankId desc; \ No newline at end of file -- Gitee From 28822a2e2590c1449ab96167a36b48ab915e22ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=8D=8E=E4=BC=9F?= <1931626338@qq.com> Date: Sun, 18 Sep 2022 09:11:02 +0000 Subject: [PATCH 2/7] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20?= =?UTF-8?q?=E9=99=88=E5=8D=8E=E4=BC=9F=2012?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2022-9-15.md" | 190 ------------------ .../SQLQuery1.sql" | 64 ------ .../2022-9-16.md" | 190 ------------------ .../SQLQuery2.sql" | 70 ------- 4 files changed, 514 deletions(-) delete mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" delete mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" delete mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" delete mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" deleted file mode 100644 index c115434..0000000 --- "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" +++ /dev/null @@ -1,190 +0,0 @@ -# 2022.9.16 - -## 创建数据库 - -```SQL -create database 数据库名 -``` - -## 创建数据表 - -```SQL -create table 表名( -) -``` - -## 查询数据 - -```sql -select * from 表名 -``` - -## 增删改查 - -```SQL -insert into 表名 ({字段1},{字段1},{字段1},....) values (值1,值1,值1,....) -alter table (表名) add (列名) varchar(255) ; -delete from 表名 where 删除条件 -drop table (表名) 删除整个表 -UPDATE 表名 SET 字段1=修改的值1,字段2=修改的值2,.. . .. WHERE 修改的条件 -``` - - - -## 主键,自增,不允许为空,默认值,外键,唯一约束 - -```sql -1.primary key 主键 -2.identity(1,1) 自增 初始ID,自增多少 -3.not null 不允许为空 -4.default('') 默认值 -5.userId(表名) int(字段) references(外键) userInfo(表名)(userNo)列名 外键 -6.unique 唯一约束 -``` - -# 2022.9.17 - -## SQL条件查询 - -```sql -=:等于,比较是否相等及赋值 -!=:比较不等于 ->:比较大于 -<:比较小于 ->=:比较大于等于 -<=:比较小于等于 -IS NULL:比较为空 -IS NOT NULL:比较不为空 -in:比较是否在其中 -like:模糊查询 -BETWEEN...AND...:比较是否在两者之间 50-100 BETWEEN 50 AND 100 -and:逻辑与(两个条件同时成立表达式成立) -or:逻辑或(两个条件有一个成立表达式成立) -not:逻辑非(条件成立,表达式则不成立;条件不成立,表达式则成立) -``` - -## 模糊查询 - -```sql -%:代表匹配0个字符、1个字符或多个字符。 -_:代表匹配有且只有1个字符。 -[]:代表匹配范围内 -[^]:代表匹配不在范围内 - -模糊查询,包含查询 -select * from 表名 where 列名 like '%要查询的字段%' - -模糊查询,开头查询 -select * from 表名 where 列名 like '要查询的字段%' - -模糊查询,结尾查询 -select * from 表名 where 列名 like '%要查询的字段' -``` - -## 聚合函数 - -```SQL -count:求数量 -max:求最大值 计算某一列的最大值 -min:求最小值 计算某一列的最小值 -sum:求和 计算某一列的合计值,该列必须为数值类型 -avg:求平均值 计算某一列的平均值,该列必须为数值类型 -``` - -## 升序降序查询 - -```SQL --- desc 降序 默认升序 asc -- -SELECT * FROM 表名 order by 列名 desc -``` - - - -## ROUND函数用法: - -```SQL -round(num,len,[type]) -其中: -num表示需要处理的数字,len表示需要保留的长度,type处理类型(0是默认值代表四舍五入,非0代表直接截取) -select ROUND(123.45454,3) --123.45500 -select ROUND(123.45454,3,1) --123.45400 -``` - -## CONVERT()与CAST()函数: - -```SQL ---1.保留小数 -convert(decimal(13,2),12.45454) -cast(12.45454 as decimal(13,2)) ---2.强制转换类型 -``` - -## SQL中常用的时间函数 - -```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()); --返回当前日期年数 - -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 -``` - -## 连表查询 - -```SQL -内连接查询 -1.select * from 第一张表名 重命名字段1 -2.inner join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 -3.where 要筛选的条件、 - -左连接查询 -1.select * from 第一张表名 重命名字段1 -2.left join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 -3.where 要筛选的条件、 - -右连接查询 -1.select * from 第一张表名 重命名字段1 -2.right join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 -3.where 要筛选的条件、 -``` - -## **时间格式控制字符串:** - -| 名称 | 日期单位 | 缩写 | -| ------------ | ----------- | --------- | -| 年 | 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 | - -## SQL语句执行顺序: - -```sql -(7) SELECT -(8) DISTINCT -(1) FROM -(3) JOIN -(2) ON -(4) WHERE -(5) GROUP BY -(6) HAVING -(9) ORDER BY -(10) LIMIT -``` - diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" deleted file mode 100644 index 732d0c6..0000000 --- "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" +++ /dev/null @@ -1,64 +0,0 @@ - - - - --Ϣ - create table sectionInfo( - --ű - sectionID int primary key identity(1,1), - -- - sectionName varchar(10) not null - ); - - select * from sectionInfo - INSERT INTO sectionInfo(sectionName) VALUES(''), - (''), - ('ڲ'); - - - --ԱϢ - create table userInfo( - --Ա - userNo int primary key identity(1,1) not null , - --Ա - userName varchar(10) unique not null check(len(userName)>=2), - --ԱԱ - userSex varchar(2) not null check(userSex='' or userSex='Ů'), - --Ա - userAge int not null check(userAge>=0 and userAge <=100), - --Աַ - userAddress varchar(50) default(''), - --Ա - userSection int references sectionInfo(sectionID) - ); - - drop table userInfo - - select * from userInfo - - INSERT INTO userInfo(userName,userSex,userAge,userAddress,userSection) - VALUES - ('','',17,'',1), - ('','Ů',18,'Ĵ',2), - ('','',20,'',3); - - - --Աڱ - create table workInfo( - --ڱ - workId int primary key identity(1,1), - --Ա - userId int references userInfo(userNo) not null, - --ʱ - workTime datetime not null, - --˵ - workDescription varchar(40) check(workDescription='ٵ' or workDescription='' - or workDescription='' or workDescription='' or workDescription='¼') not null - ); - - select * from workInfo - - INSERT INTO workInfo(userId,workTime,workDescription) - VALUES - (1,2022,'ٵ'), - (2,2022,'¼'), - (3,2022,''); \ No newline at end of file diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" deleted file mode 100644 index c115434..0000000 --- "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" +++ /dev/null @@ -1,190 +0,0 @@ -# 2022.9.16 - -## 创建数据库 - -```SQL -create database 数据库名 -``` - -## 创建数据表 - -```SQL -create table 表名( -) -``` - -## 查询数据 - -```sql -select * from 表名 -``` - -## 增删改查 - -```SQL -insert into 表名 ({字段1},{字段1},{字段1},....) values (值1,值1,值1,....) -alter table (表名) add (列名) varchar(255) ; -delete from 表名 where 删除条件 -drop table (表名) 删除整个表 -UPDATE 表名 SET 字段1=修改的值1,字段2=修改的值2,.. . .. WHERE 修改的条件 -``` - - - -## 主键,自增,不允许为空,默认值,外键,唯一约束 - -```sql -1.primary key 主键 -2.identity(1,1) 自增 初始ID,自增多少 -3.not null 不允许为空 -4.default('') 默认值 -5.userId(表名) int(字段) references(外键) userInfo(表名)(userNo)列名 外键 -6.unique 唯一约束 -``` - -# 2022.9.17 - -## SQL条件查询 - -```sql -=:等于,比较是否相等及赋值 -!=:比较不等于 ->:比较大于 -<:比较小于 ->=:比较大于等于 -<=:比较小于等于 -IS NULL:比较为空 -IS NOT NULL:比较不为空 -in:比较是否在其中 -like:模糊查询 -BETWEEN...AND...:比较是否在两者之间 50-100 BETWEEN 50 AND 100 -and:逻辑与(两个条件同时成立表达式成立) -or:逻辑或(两个条件有一个成立表达式成立) -not:逻辑非(条件成立,表达式则不成立;条件不成立,表达式则成立) -``` - -## 模糊查询 - -```sql -%:代表匹配0个字符、1个字符或多个字符。 -_:代表匹配有且只有1个字符。 -[]:代表匹配范围内 -[^]:代表匹配不在范围内 - -模糊查询,包含查询 -select * from 表名 where 列名 like '%要查询的字段%' - -模糊查询,开头查询 -select * from 表名 where 列名 like '要查询的字段%' - -模糊查询,结尾查询 -select * from 表名 where 列名 like '%要查询的字段' -``` - -## 聚合函数 - -```SQL -count:求数量 -max:求最大值 计算某一列的最大值 -min:求最小值 计算某一列的最小值 -sum:求和 计算某一列的合计值,该列必须为数值类型 -avg:求平均值 计算某一列的平均值,该列必须为数值类型 -``` - -## 升序降序查询 - -```SQL --- desc 降序 默认升序 asc -- -SELECT * FROM 表名 order by 列名 desc -``` - - - -## ROUND函数用法: - -```SQL -round(num,len,[type]) -其中: -num表示需要处理的数字,len表示需要保留的长度,type处理类型(0是默认值代表四舍五入,非0代表直接截取) -select ROUND(123.45454,3) --123.45500 -select ROUND(123.45454,3,1) --123.45400 -``` - -## CONVERT()与CAST()函数: - -```SQL ---1.保留小数 -convert(decimal(13,2),12.45454) -cast(12.45454 as decimal(13,2)) ---2.强制转换类型 -``` - -## SQL中常用的时间函数 - -```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()); --返回当前日期年数 - -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 -``` - -## 连表查询 - -```SQL -内连接查询 -1.select * from 第一张表名 重命名字段1 -2.inner join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 -3.where 要筛选的条件、 - -左连接查询 -1.select * from 第一张表名 重命名字段1 -2.left join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 -3.where 要筛选的条件、 - -右连接查询 -1.select * from 第一张表名 重命名字段1 -2.right join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 -3.where 要筛选的条件、 -``` - -## **时间格式控制字符串:** - -| 名称 | 日期单位 | 缩写 | -| ------------ | ----------- | --------- | -| 年 | 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 | - -## SQL语句执行顺序: - -```sql -(7) SELECT -(8) DISTINCT -(1) FROM -(3) JOIN -(2) ON -(4) WHERE -(5) GROUP BY -(6) HAVING -(9) ORDER BY -(10) LIMIT -``` - diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" deleted file mode 100644 index facfccf..0000000 --- "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" +++ /dev/null @@ -1,70 +0,0 @@ ---ѯ人еԱϢҪʾԼԱϸ ---ѯ人еԱϢҪʾƣְԼԱϸ ---ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʡ ---ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʣƽ10000 µIJͳƣҸƽʽС ---ݲƣȻְλƣͳԱԱܺͣƽʣ߹ʺ͹ ---ѯз 6.22--7.22 ԱϢ ---ѯԱϢһʾ(,ţ,,,,,,,,,,) = - - -select * from Department; -select * from [Rank]; -select * from People; -drop table Department ---ѯз 6.22--7.22 ԱϢ -select * from People where -MONTH(PeopleBirth)=6 and DAY(PeopleBirth)>=22 or MONTH(PeopleBirth)=7 and DAY(PeopleBirth)<=22 ---ѯԱϢһʾ(,ţ,,,,,,,,,,) - select * ,case - when YEAR(PeopleBirth)%12=0 - then '' - when YEAR(PeopleBirth)%12=1 - then 'ţ' - when YEAR(PeopleBirth)%12=2 - then '' - when YEAR(PeopleBirth)%12=3 - then '' - when YEAR(PeopleBirth)%12=4 - then '' - when YEAR(PeopleBirth)%12=5 - then '' - when YEAR(PeopleBirth)%12=6 - then '' - when YEAR(PeopleBirth)%12=7 - then '' - when YEAR(PeopleBirth)%12=8 - then '' - when YEAR(PeopleBirth)%12=9 - then '' - when YEAR(PeopleBirth)%12=10 - then '' - when YEAR(PeopleBirth)%12=11 - then '' - end from People - ; - ---ѯ人еԱϢҪʾԼԱϸ -select * from People -join Department on People.DepartmentId = Department.DepartmentId -where PeopleAddress ='人'; ---ѯ人еԱϢҪʾƣְԼԱϸ -select * from People -join Department on People.DepartmentId = Department.DepartmentId -join [Rank] on People.RankId = [Rank].RankId -where PeopleAddress ='人'; ---ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʡ -select DepartmentName, COUNT(*) Ա,SUM(PeopleSalary) Աܺ,AVG(PeopleSalary) ƽ ,MAX(PeopleSalary)߹,MIN(PeopleSalary)͹ from People -join Department on People.DepartmentId = Department.DepartmentId -group by DepartmentName; ---ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʣƽ10000 µIJͳƣҸƽʽС -select DepartmentName,COUNT(*) Ա,SUM(PeopleSalary) Աܺ,AVG(PeopleSalary) ƽ ,MAX(PeopleSalary)߹,MIN(PeopleSalary)͹ from People -join Department on People.DepartmentId = Department.DepartmentId -group by DepartmentName -having AVG(PeopleSalary)>=10000 -order by AVG(PeopleSalary) desc; ---ݲƣȻְλƣͳԱԱܺͣƽʣ߹ʺ͹ -select DepartmentName,RankName ,[Rank].RankId ְλȼ ,COUNT(*) Ա,SUM(PeopleSalary) Աܺ,AVG(PeopleSalary) ƽ ,MAX(PeopleSalary)߹,MIN(PeopleSalary)͹ from People -join Department on People.DepartmentId = Department.DepartmentId -join [Rank] on People.RankId = [Rank].RankId -group by DepartmentName,RankName,[Rank].RankId -order by [Rank].RankId desc; \ No newline at end of file -- Gitee From 7795291c5668be51da9fd74944e738619b21dc7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=8D=8E=E4=BC=9F?= <1931626338@qq.com> Date: Sun, 18 Sep 2022 17:21:16 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2022-9-16.md" | 190 ++++++++++++++++++ .../SQLQuery2.sql" | 70 +++++++ 2 files changed, 260 insertions(+) create mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" create mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" new file mode 100644 index 0000000..c115434 --- /dev/null +++ "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" @@ -0,0 +1,190 @@ +# 2022.9.16 + +## 创建数据库 + +```SQL +create database 数据库名 +``` + +## 创建数据表 + +```SQL +create table 表名( +) +``` + +## 查询数据 + +```sql +select * from 表名 +``` + +## 增删改查 + +```SQL +insert into 表名 ({字段1},{字段1},{字段1},....) values (值1,值1,值1,....) +alter table (表名) add (列名) varchar(255) ; +delete from 表名 where 删除条件 +drop table (表名) 删除整个表 +UPDATE 表名 SET 字段1=修改的值1,字段2=修改的值2,.. . .. WHERE 修改的条件 +``` + + + +## 主键,自增,不允许为空,默认值,外键,唯一约束 + +```sql +1.primary key 主键 +2.identity(1,1) 自增 初始ID,自增多少 +3.not null 不允许为空 +4.default('') 默认值 +5.userId(表名) int(字段) references(外键) userInfo(表名)(userNo)列名 外键 +6.unique 唯一约束 +``` + +# 2022.9.17 + +## SQL条件查询 + +```sql +=:等于,比较是否相等及赋值 +!=:比较不等于 +>:比较大于 +<:比较小于 +>=:比较大于等于 +<=:比较小于等于 +IS NULL:比较为空 +IS NOT NULL:比较不为空 +in:比较是否在其中 +like:模糊查询 +BETWEEN...AND...:比较是否在两者之间 50-100 BETWEEN 50 AND 100 +and:逻辑与(两个条件同时成立表达式成立) +or:逻辑或(两个条件有一个成立表达式成立) +not:逻辑非(条件成立,表达式则不成立;条件不成立,表达式则成立) +``` + +## 模糊查询 + +```sql +%:代表匹配0个字符、1个字符或多个字符。 +_:代表匹配有且只有1个字符。 +[]:代表匹配范围内 +[^]:代表匹配不在范围内 + +模糊查询,包含查询 +select * from 表名 where 列名 like '%要查询的字段%' + +模糊查询,开头查询 +select * from 表名 where 列名 like '要查询的字段%' + +模糊查询,结尾查询 +select * from 表名 where 列名 like '%要查询的字段' +``` + +## 聚合函数 + +```SQL +count:求数量 +max:求最大值 计算某一列的最大值 +min:求最小值 计算某一列的最小值 +sum:求和 计算某一列的合计值,该列必须为数值类型 +avg:求平均值 计算某一列的平均值,该列必须为数值类型 +``` + +## 升序降序查询 + +```SQL +-- desc 降序 默认升序 asc -- +SELECT * FROM 表名 order by 列名 desc +``` + + + +## ROUND函数用法: + +```SQL +round(num,len,[type]) +其中: +num表示需要处理的数字,len表示需要保留的长度,type处理类型(0是默认值代表四舍五入,非0代表直接截取) +select ROUND(123.45454,3) --123.45500 +select ROUND(123.45454,3,1) --123.45400 +``` + +## CONVERT()与CAST()函数: + +```SQL +--1.保留小数 +convert(decimal(13,2),12.45454) +cast(12.45454 as decimal(13,2)) +--2.强制转换类型 +``` + +## SQL中常用的时间函数 + +```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()); --返回当前日期年数 + +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 +``` + +## 连表查询 + +```SQL +内连接查询 +1.select * from 第一张表名 重命名字段1 +2.inner join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 +3.where 要筛选的条件、 + +左连接查询 +1.select * from 第一张表名 重命名字段1 +2.left join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 +3.where 要筛选的条件、 + +右连接查询 +1.select * from 第一张表名 重命名字段1 +2.right join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 +3.where 要筛选的条件、 +``` + +## **时间格式控制字符串:** + +| 名称 | 日期单位 | 缩写 | +| ------------ | ----------- | --------- | +| 年 | 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 | + +## SQL语句执行顺序: + +```sql +(7) SELECT +(8) DISTINCT +(1) FROM +(3) JOIN +(2) ON +(4) WHERE +(5) GROUP BY +(6) HAVING +(9) ORDER BY +(10) LIMIT +``` + diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" new file mode 100644 index 0000000..facfccf --- /dev/null +++ "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" @@ -0,0 +1,70 @@ +--ѯ人еԱϢҪʾԼԱϸ +--ѯ人еԱϢҪʾƣְԼԱϸ +--ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʡ +--ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʣƽ10000 µIJͳƣҸƽʽС +--ݲƣȻְλƣͳԱԱܺͣƽʣ߹ʺ͹ +--ѯз 6.22--7.22 ԱϢ +--ѯԱϢһʾ(,ţ,,,,,,,,,,) = + + +select * from Department; +select * from [Rank]; +select * from People; +drop table Department +--ѯз 6.22--7.22 ԱϢ +select * from People where +MONTH(PeopleBirth)=6 and DAY(PeopleBirth)>=22 or MONTH(PeopleBirth)=7 and DAY(PeopleBirth)<=22 +--ѯԱϢһʾ(,ţ,,,,,,,,,,) + select * ,case + when YEAR(PeopleBirth)%12=0 + then '' + when YEAR(PeopleBirth)%12=1 + then 'ţ' + when YEAR(PeopleBirth)%12=2 + then '' + when YEAR(PeopleBirth)%12=3 + then '' + when YEAR(PeopleBirth)%12=4 + then '' + when YEAR(PeopleBirth)%12=5 + then '' + when YEAR(PeopleBirth)%12=6 + then '' + when YEAR(PeopleBirth)%12=7 + then '' + when YEAR(PeopleBirth)%12=8 + then '' + when YEAR(PeopleBirth)%12=9 + then '' + when YEAR(PeopleBirth)%12=10 + then '' + when YEAR(PeopleBirth)%12=11 + then '' + end from People + ; + +--ѯ人еԱϢҪʾԼԱϸ +select * from People +join Department on People.DepartmentId = Department.DepartmentId +where PeopleAddress ='人'; +--ѯ人еԱϢҪʾƣְԼԱϸ +select * from People +join Department on People.DepartmentId = Department.DepartmentId +join [Rank] on People.RankId = [Rank].RankId +where PeopleAddress ='人'; +--ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʡ +select DepartmentName, COUNT(*) Ա,SUM(PeopleSalary) Աܺ,AVG(PeopleSalary) ƽ ,MAX(PeopleSalary)߹,MIN(PeopleSalary)͹ from People +join Department on People.DepartmentId = Department.DepartmentId +group by DepartmentName; +--ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʣƽ10000 µIJͳƣҸƽʽС +select DepartmentName,COUNT(*) Ա,SUM(PeopleSalary) Աܺ,AVG(PeopleSalary) ƽ ,MAX(PeopleSalary)߹,MIN(PeopleSalary)͹ from People +join Department on People.DepartmentId = Department.DepartmentId +group by DepartmentName +having AVG(PeopleSalary)>=10000 +order by AVG(PeopleSalary) desc; +--ݲƣȻְλƣͳԱԱܺͣƽʣ߹ʺ͹ +select DepartmentName,RankName ,[Rank].RankId ְλȼ ,COUNT(*) Ա,SUM(PeopleSalary) Աܺ,AVG(PeopleSalary) ƽ ,MAX(PeopleSalary)߹,MIN(PeopleSalary)͹ from People +join Department on People.DepartmentId = Department.DepartmentId +join [Rank] on People.RankId = [Rank].RankId +group by DepartmentName,RankName,[Rank].RankId +order by [Rank].RankId desc; \ No newline at end of file -- Gitee From b56603e42209789fba833a04c0b9df4b836e8d65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=8D=8E=E4=BC=9F?= <1931626338@qq.com> Date: Sun, 18 Sep 2022 17:22:49 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E5=92=8C=E7=AC=AC=E4=BA=8C=E6=AC=A1=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2022-9-15.md" | 190 ++++++++++++++++++ .../SQLQuery1.sql" | 64 ++++++ 2 files changed, 254 insertions(+) create mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" create mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" new file mode 100644 index 0000000..c115434 --- /dev/null +++ "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" @@ -0,0 +1,190 @@ +# 2022.9.16 + +## 创建数据库 + +```SQL +create database 数据库名 +``` + +## 创建数据表 + +```SQL +create table 表名( +) +``` + +## 查询数据 + +```sql +select * from 表名 +``` + +## 增删改查 + +```SQL +insert into 表名 ({字段1},{字段1},{字段1},....) values (值1,值1,值1,....) +alter table (表名) add (列名) varchar(255) ; +delete from 表名 where 删除条件 +drop table (表名) 删除整个表 +UPDATE 表名 SET 字段1=修改的值1,字段2=修改的值2,.. . .. WHERE 修改的条件 +``` + + + +## 主键,自增,不允许为空,默认值,外键,唯一约束 + +```sql +1.primary key 主键 +2.identity(1,1) 自增 初始ID,自增多少 +3.not null 不允许为空 +4.default('') 默认值 +5.userId(表名) int(字段) references(外键) userInfo(表名)(userNo)列名 外键 +6.unique 唯一约束 +``` + +# 2022.9.17 + +## SQL条件查询 + +```sql +=:等于,比较是否相等及赋值 +!=:比较不等于 +>:比较大于 +<:比较小于 +>=:比较大于等于 +<=:比较小于等于 +IS NULL:比较为空 +IS NOT NULL:比较不为空 +in:比较是否在其中 +like:模糊查询 +BETWEEN...AND...:比较是否在两者之间 50-100 BETWEEN 50 AND 100 +and:逻辑与(两个条件同时成立表达式成立) +or:逻辑或(两个条件有一个成立表达式成立) +not:逻辑非(条件成立,表达式则不成立;条件不成立,表达式则成立) +``` + +## 模糊查询 + +```sql +%:代表匹配0个字符、1个字符或多个字符。 +_:代表匹配有且只有1个字符。 +[]:代表匹配范围内 +[^]:代表匹配不在范围内 + +模糊查询,包含查询 +select * from 表名 where 列名 like '%要查询的字段%' + +模糊查询,开头查询 +select * from 表名 where 列名 like '要查询的字段%' + +模糊查询,结尾查询 +select * from 表名 where 列名 like '%要查询的字段' +``` + +## 聚合函数 + +```SQL +count:求数量 +max:求最大值 计算某一列的最大值 +min:求最小值 计算某一列的最小值 +sum:求和 计算某一列的合计值,该列必须为数值类型 +avg:求平均值 计算某一列的平均值,该列必须为数值类型 +``` + +## 升序降序查询 + +```SQL +-- desc 降序 默认升序 asc -- +SELECT * FROM 表名 order by 列名 desc +``` + + + +## ROUND函数用法: + +```SQL +round(num,len,[type]) +其中: +num表示需要处理的数字,len表示需要保留的长度,type处理类型(0是默认值代表四舍五入,非0代表直接截取) +select ROUND(123.45454,3) --123.45500 +select ROUND(123.45454,3,1) --123.45400 +``` + +## CONVERT()与CAST()函数: + +```SQL +--1.保留小数 +convert(decimal(13,2),12.45454) +cast(12.45454 as decimal(13,2)) +--2.强制转换类型 +``` + +## SQL中常用的时间函数 + +```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()); --返回当前日期年数 + +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 +``` + +## 连表查询 + +```SQL +内连接查询 +1.select * from 第一张表名 重命名字段1 +2.inner join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 +3.where 要筛选的条件、 + +左连接查询 +1.select * from 第一张表名 重命名字段1 +2.left join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 +3.where 要筛选的条件、 + +右连接查询 +1.select * from 第一张表名 重命名字段1 +2.right join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 +3.where 要筛选的条件、 +``` + +## **时间格式控制字符串:** + +| 名称 | 日期单位 | 缩写 | +| ------------ | ----------- | --------- | +| 年 | 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 | + +## SQL语句执行顺序: + +```sql +(7) SELECT +(8) DISTINCT +(1) FROM +(3) JOIN +(2) ON +(4) WHERE +(5) GROUP BY +(6) HAVING +(9) ORDER BY +(10) LIMIT +``` + diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" new file mode 100644 index 0000000..732d0c6 --- /dev/null +++ "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" @@ -0,0 +1,64 @@ + + + + --Ϣ + create table sectionInfo( + --ű + sectionID int primary key identity(1,1), + -- + sectionName varchar(10) not null + ); + + select * from sectionInfo + INSERT INTO sectionInfo(sectionName) VALUES(''), + (''), + ('ڲ'); + + + --ԱϢ + create table userInfo( + --Ա + userNo int primary key identity(1,1) not null , + --Ա + userName varchar(10) unique not null check(len(userName)>=2), + --ԱԱ + userSex varchar(2) not null check(userSex='' or userSex='Ů'), + --Ա + userAge int not null check(userAge>=0 and userAge <=100), + --Աַ + userAddress varchar(50) default(''), + --Ա + userSection int references sectionInfo(sectionID) + ); + + drop table userInfo + + select * from userInfo + + INSERT INTO userInfo(userName,userSex,userAge,userAddress,userSection) + VALUES + ('','',17,'',1), + ('','Ů',18,'Ĵ',2), + ('','',20,'',3); + + + --Աڱ + create table workInfo( + --ڱ + workId int primary key identity(1,1), + --Ա + userId int references userInfo(userNo) not null, + --ʱ + workTime datetime not null, + --˵ + workDescription varchar(40) check(workDescription='ٵ' or workDescription='' + or workDescription='' or workDescription='' or workDescription='¼') not null + ); + + select * from workInfo + + INSERT INTO workInfo(userId,workTime,workDescription) + VALUES + (1,2022,'ٵ'), + (2,2022,'¼'), + (3,2022,''); \ No newline at end of file -- Gitee From 0fdf1f6c2d09e0a9a1165a9de1a8626f28f9c107 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=8D=8E=E4=BC=9F?= <1931626338@qq.com> Date: Sun, 18 Sep 2022 09:24:36 +0000 Subject: [PATCH 5/7] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20?= =?UTF-8?q?=E9=99=88=E5=8D=8E=E4=BC=9F=2012?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2022-9-15.md" | 190 ------------------ .../SQLQuery1.sql" | 64 ------ .../2022-9-16.md" | 190 ------------------ .../SQLQuery2.sql" | 70 ------- 4 files changed, 514 deletions(-) delete mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" delete mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" delete mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" delete mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" deleted file mode 100644 index c115434..0000000 --- "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" +++ /dev/null @@ -1,190 +0,0 @@ -# 2022.9.16 - -## 创建数据库 - -```SQL -create database 数据库名 -``` - -## 创建数据表 - -```SQL -create table 表名( -) -``` - -## 查询数据 - -```sql -select * from 表名 -``` - -## 增删改查 - -```SQL -insert into 表名 ({字段1},{字段1},{字段1},....) values (值1,值1,值1,....) -alter table (表名) add (列名) varchar(255) ; -delete from 表名 where 删除条件 -drop table (表名) 删除整个表 -UPDATE 表名 SET 字段1=修改的值1,字段2=修改的值2,.. . .. WHERE 修改的条件 -``` - - - -## 主键,自增,不允许为空,默认值,外键,唯一约束 - -```sql -1.primary key 主键 -2.identity(1,1) 自增 初始ID,自增多少 -3.not null 不允许为空 -4.default('') 默认值 -5.userId(表名) int(字段) references(外键) userInfo(表名)(userNo)列名 外键 -6.unique 唯一约束 -``` - -# 2022.9.17 - -## SQL条件查询 - -```sql -=:等于,比较是否相等及赋值 -!=:比较不等于 ->:比较大于 -<:比较小于 ->=:比较大于等于 -<=:比较小于等于 -IS NULL:比较为空 -IS NOT NULL:比较不为空 -in:比较是否在其中 -like:模糊查询 -BETWEEN...AND...:比较是否在两者之间 50-100 BETWEEN 50 AND 100 -and:逻辑与(两个条件同时成立表达式成立) -or:逻辑或(两个条件有一个成立表达式成立) -not:逻辑非(条件成立,表达式则不成立;条件不成立,表达式则成立) -``` - -## 模糊查询 - -```sql -%:代表匹配0个字符、1个字符或多个字符。 -_:代表匹配有且只有1个字符。 -[]:代表匹配范围内 -[^]:代表匹配不在范围内 - -模糊查询,包含查询 -select * from 表名 where 列名 like '%要查询的字段%' - -模糊查询,开头查询 -select * from 表名 where 列名 like '要查询的字段%' - -模糊查询,结尾查询 -select * from 表名 where 列名 like '%要查询的字段' -``` - -## 聚合函数 - -```SQL -count:求数量 -max:求最大值 计算某一列的最大值 -min:求最小值 计算某一列的最小值 -sum:求和 计算某一列的合计值,该列必须为数值类型 -avg:求平均值 计算某一列的平均值,该列必须为数值类型 -``` - -## 升序降序查询 - -```SQL --- desc 降序 默认升序 asc -- -SELECT * FROM 表名 order by 列名 desc -``` - - - -## ROUND函数用法: - -```SQL -round(num,len,[type]) -其中: -num表示需要处理的数字,len表示需要保留的长度,type处理类型(0是默认值代表四舍五入,非0代表直接截取) -select ROUND(123.45454,3) --123.45500 -select ROUND(123.45454,3,1) --123.45400 -``` - -## CONVERT()与CAST()函数: - -```SQL ---1.保留小数 -convert(decimal(13,2),12.45454) -cast(12.45454 as decimal(13,2)) ---2.强制转换类型 -``` - -## SQL中常用的时间函数 - -```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()); --返回当前日期年数 - -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 -``` - -## 连表查询 - -```SQL -内连接查询 -1.select * from 第一张表名 重命名字段1 -2.inner join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 -3.where 要筛选的条件、 - -左连接查询 -1.select * from 第一张表名 重命名字段1 -2.left join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 -3.where 要筛选的条件、 - -右连接查询 -1.select * from 第一张表名 重命名字段1 -2.right join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 -3.where 要筛选的条件、 -``` - -## **时间格式控制字符串:** - -| 名称 | 日期单位 | 缩写 | -| ------------ | ----------- | --------- | -| 年 | 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 | - -## SQL语句执行顺序: - -```sql -(7) SELECT -(8) DISTINCT -(1) FROM -(3) JOIN -(2) ON -(4) WHERE -(5) GROUP BY -(6) HAVING -(9) ORDER BY -(10) LIMIT -``` - diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" deleted file mode 100644 index 732d0c6..0000000 --- "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" +++ /dev/null @@ -1,64 +0,0 @@ - - - - --Ϣ - create table sectionInfo( - --ű - sectionID int primary key identity(1,1), - -- - sectionName varchar(10) not null - ); - - select * from sectionInfo - INSERT INTO sectionInfo(sectionName) VALUES(''), - (''), - ('ڲ'); - - - --ԱϢ - create table userInfo( - --Ա - userNo int primary key identity(1,1) not null , - --Ա - userName varchar(10) unique not null check(len(userName)>=2), - --ԱԱ - userSex varchar(2) not null check(userSex='' or userSex='Ů'), - --Ա - userAge int not null check(userAge>=0 and userAge <=100), - --Աַ - userAddress varchar(50) default(''), - --Ա - userSection int references sectionInfo(sectionID) - ); - - drop table userInfo - - select * from userInfo - - INSERT INTO userInfo(userName,userSex,userAge,userAddress,userSection) - VALUES - ('','',17,'',1), - ('','Ů',18,'Ĵ',2), - ('','',20,'',3); - - - --Աڱ - create table workInfo( - --ڱ - workId int primary key identity(1,1), - --Ա - userId int references userInfo(userNo) not null, - --ʱ - workTime datetime not null, - --˵ - workDescription varchar(40) check(workDescription='ٵ' or workDescription='' - or workDescription='' or workDescription='' or workDescription='¼') not null - ); - - select * from workInfo - - INSERT INTO workInfo(userId,workTime,workDescription) - VALUES - (1,2022,'ٵ'), - (2,2022,'¼'), - (3,2022,''); \ No newline at end of file diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" deleted file mode 100644 index c115434..0000000 --- "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" +++ /dev/null @@ -1,190 +0,0 @@ -# 2022.9.16 - -## 创建数据库 - -```SQL -create database 数据库名 -``` - -## 创建数据表 - -```SQL -create table 表名( -) -``` - -## 查询数据 - -```sql -select * from 表名 -``` - -## 增删改查 - -```SQL -insert into 表名 ({字段1},{字段1},{字段1},....) values (值1,值1,值1,....) -alter table (表名) add (列名) varchar(255) ; -delete from 表名 where 删除条件 -drop table (表名) 删除整个表 -UPDATE 表名 SET 字段1=修改的值1,字段2=修改的值2,.. . .. WHERE 修改的条件 -``` - - - -## 主键,自增,不允许为空,默认值,外键,唯一约束 - -```sql -1.primary key 主键 -2.identity(1,1) 自增 初始ID,自增多少 -3.not null 不允许为空 -4.default('') 默认值 -5.userId(表名) int(字段) references(外键) userInfo(表名)(userNo)列名 外键 -6.unique 唯一约束 -``` - -# 2022.9.17 - -## SQL条件查询 - -```sql -=:等于,比较是否相等及赋值 -!=:比较不等于 ->:比较大于 -<:比较小于 ->=:比较大于等于 -<=:比较小于等于 -IS NULL:比较为空 -IS NOT NULL:比较不为空 -in:比较是否在其中 -like:模糊查询 -BETWEEN...AND...:比较是否在两者之间 50-100 BETWEEN 50 AND 100 -and:逻辑与(两个条件同时成立表达式成立) -or:逻辑或(两个条件有一个成立表达式成立) -not:逻辑非(条件成立,表达式则不成立;条件不成立,表达式则成立) -``` - -## 模糊查询 - -```sql -%:代表匹配0个字符、1个字符或多个字符。 -_:代表匹配有且只有1个字符。 -[]:代表匹配范围内 -[^]:代表匹配不在范围内 - -模糊查询,包含查询 -select * from 表名 where 列名 like '%要查询的字段%' - -模糊查询,开头查询 -select * from 表名 where 列名 like '要查询的字段%' - -模糊查询,结尾查询 -select * from 表名 where 列名 like '%要查询的字段' -``` - -## 聚合函数 - -```SQL -count:求数量 -max:求最大值 计算某一列的最大值 -min:求最小值 计算某一列的最小值 -sum:求和 计算某一列的合计值,该列必须为数值类型 -avg:求平均值 计算某一列的平均值,该列必须为数值类型 -``` - -## 升序降序查询 - -```SQL --- desc 降序 默认升序 asc -- -SELECT * FROM 表名 order by 列名 desc -``` - - - -## ROUND函数用法: - -```SQL -round(num,len,[type]) -其中: -num表示需要处理的数字,len表示需要保留的长度,type处理类型(0是默认值代表四舍五入,非0代表直接截取) -select ROUND(123.45454,3) --123.45500 -select ROUND(123.45454,3,1) --123.45400 -``` - -## CONVERT()与CAST()函数: - -```SQL ---1.保留小数 -convert(decimal(13,2),12.45454) -cast(12.45454 as decimal(13,2)) ---2.强制转换类型 -``` - -## SQL中常用的时间函数 - -```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()); --返回当前日期年数 - -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 -``` - -## 连表查询 - -```SQL -内连接查询 -1.select * from 第一张表名 重命名字段1 -2.inner join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 -3.where 要筛选的条件、 - -左连接查询 -1.select * from 第一张表名 重命名字段1 -2.left join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 -3.where 要筛选的条件、 - -右连接查询 -1.select * from 第一张表名 重命名字段1 -2.right join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 -3.where 要筛选的条件、 -``` - -## **时间格式控制字符串:** - -| 名称 | 日期单位 | 缩写 | -| ------------ | ----------- | --------- | -| 年 | 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 | - -## SQL语句执行顺序: - -```sql -(7) SELECT -(8) DISTINCT -(1) FROM -(3) JOIN -(2) ON -(4) WHERE -(5) GROUP BY -(6) HAVING -(9) ORDER BY -(10) LIMIT -``` - diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" deleted file mode 100644 index facfccf..0000000 --- "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" +++ /dev/null @@ -1,70 +0,0 @@ ---ѯ人еԱϢҪʾԼԱϸ ---ѯ人еԱϢҪʾƣְԼԱϸ ---ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʡ ---ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʣƽ10000 µIJͳƣҸƽʽС ---ݲƣȻְλƣͳԱԱܺͣƽʣ߹ʺ͹ ---ѯз 6.22--7.22 ԱϢ ---ѯԱϢһʾ(,ţ,,,,,,,,,,) = - - -select * from Department; -select * from [Rank]; -select * from People; -drop table Department ---ѯз 6.22--7.22 ԱϢ -select * from People where -MONTH(PeopleBirth)=6 and DAY(PeopleBirth)>=22 or MONTH(PeopleBirth)=7 and DAY(PeopleBirth)<=22 ---ѯԱϢһʾ(,ţ,,,,,,,,,,) - select * ,case - when YEAR(PeopleBirth)%12=0 - then '' - when YEAR(PeopleBirth)%12=1 - then 'ţ' - when YEAR(PeopleBirth)%12=2 - then '' - when YEAR(PeopleBirth)%12=3 - then '' - when YEAR(PeopleBirth)%12=4 - then '' - when YEAR(PeopleBirth)%12=5 - then '' - when YEAR(PeopleBirth)%12=6 - then '' - when YEAR(PeopleBirth)%12=7 - then '' - when YEAR(PeopleBirth)%12=8 - then '' - when YEAR(PeopleBirth)%12=9 - then '' - when YEAR(PeopleBirth)%12=10 - then '' - when YEAR(PeopleBirth)%12=11 - then '' - end from People - ; - ---ѯ人еԱϢҪʾԼԱϸ -select * from People -join Department on People.DepartmentId = Department.DepartmentId -where PeopleAddress ='人'; ---ѯ人еԱϢҪʾƣְԼԱϸ -select * from People -join Department on People.DepartmentId = Department.DepartmentId -join [Rank] on People.RankId = [Rank].RankId -where PeopleAddress ='人'; ---ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʡ -select DepartmentName, COUNT(*) Ա,SUM(PeopleSalary) Աܺ,AVG(PeopleSalary) ƽ ,MAX(PeopleSalary)߹,MIN(PeopleSalary)͹ from People -join Department on People.DepartmentId = Department.DepartmentId -group by DepartmentName; ---ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʣƽ10000 µIJͳƣҸƽʽС -select DepartmentName,COUNT(*) Ա,SUM(PeopleSalary) Աܺ,AVG(PeopleSalary) ƽ ,MAX(PeopleSalary)߹,MIN(PeopleSalary)͹ from People -join Department on People.DepartmentId = Department.DepartmentId -group by DepartmentName -having AVG(PeopleSalary)>=10000 -order by AVG(PeopleSalary) desc; ---ݲƣȻְλƣͳԱԱܺͣƽʣ߹ʺ͹ -select DepartmentName,RankName ,[Rank].RankId ְλȼ ,COUNT(*) Ա,SUM(PeopleSalary) Աܺ,AVG(PeopleSalary) ƽ ,MAX(PeopleSalary)߹,MIN(PeopleSalary)͹ from People -join Department on People.DepartmentId = Department.DepartmentId -join [Rank] on People.RankId = [Rank].RankId -group by DepartmentName,RankName,[Rank].RankId -order by [Rank].RankId desc; \ No newline at end of file -- Gitee From b83d6679a4654399505923c855eaf6880d189e4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=8D=8E=E4=BC=9F?= <1931626338@qq.com> Date: Sun, 18 Sep 2022 17:27:54 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E5=92=8C=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2022-9-15.md" | 190 ++++++++++++++++++ .../SQLQuery1.sql" | 64 ++++++ 2 files changed, 254 insertions(+) create mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" create mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" new file mode 100644 index 0000000..c115434 --- /dev/null +++ "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-15.md" @@ -0,0 +1,190 @@ +# 2022.9.16 + +## 创建数据库 + +```SQL +create database 数据库名 +``` + +## 创建数据表 + +```SQL +create table 表名( +) +``` + +## 查询数据 + +```sql +select * from 表名 +``` + +## 增删改查 + +```SQL +insert into 表名 ({字段1},{字段1},{字段1},....) values (值1,值1,值1,....) +alter table (表名) add (列名) varchar(255) ; +delete from 表名 where 删除条件 +drop table (表名) 删除整个表 +UPDATE 表名 SET 字段1=修改的值1,字段2=修改的值2,.. . .. WHERE 修改的条件 +``` + + + +## 主键,自增,不允许为空,默认值,外键,唯一约束 + +```sql +1.primary key 主键 +2.identity(1,1) 自增 初始ID,自增多少 +3.not null 不允许为空 +4.default('') 默认值 +5.userId(表名) int(字段) references(外键) userInfo(表名)(userNo)列名 外键 +6.unique 唯一约束 +``` + +# 2022.9.17 + +## SQL条件查询 + +```sql +=:等于,比较是否相等及赋值 +!=:比较不等于 +>:比较大于 +<:比较小于 +>=:比较大于等于 +<=:比较小于等于 +IS NULL:比较为空 +IS NOT NULL:比较不为空 +in:比较是否在其中 +like:模糊查询 +BETWEEN...AND...:比较是否在两者之间 50-100 BETWEEN 50 AND 100 +and:逻辑与(两个条件同时成立表达式成立) +or:逻辑或(两个条件有一个成立表达式成立) +not:逻辑非(条件成立,表达式则不成立;条件不成立,表达式则成立) +``` + +## 模糊查询 + +```sql +%:代表匹配0个字符、1个字符或多个字符。 +_:代表匹配有且只有1个字符。 +[]:代表匹配范围内 +[^]:代表匹配不在范围内 + +模糊查询,包含查询 +select * from 表名 where 列名 like '%要查询的字段%' + +模糊查询,开头查询 +select * from 表名 where 列名 like '要查询的字段%' + +模糊查询,结尾查询 +select * from 表名 where 列名 like '%要查询的字段' +``` + +## 聚合函数 + +```SQL +count:求数量 +max:求最大值 计算某一列的最大值 +min:求最小值 计算某一列的最小值 +sum:求和 计算某一列的合计值,该列必须为数值类型 +avg:求平均值 计算某一列的平均值,该列必须为数值类型 +``` + +## 升序降序查询 + +```SQL +-- desc 降序 默认升序 asc -- +SELECT * FROM 表名 order by 列名 desc +``` + + + +## ROUND函数用法: + +```SQL +round(num,len,[type]) +其中: +num表示需要处理的数字,len表示需要保留的长度,type处理类型(0是默认值代表四舍五入,非0代表直接截取) +select ROUND(123.45454,3) --123.45500 +select ROUND(123.45454,3,1) --123.45400 +``` + +## CONVERT()与CAST()函数: + +```SQL +--1.保留小数 +convert(decimal(13,2),12.45454) +cast(12.45454 as decimal(13,2)) +--2.强制转换类型 +``` + +## SQL中常用的时间函数 + +```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()); --返回当前日期年数 + +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 +``` + +## 连表查询 + +```SQL +内连接查询 +1.select * from 第一张表名 重命名字段1 +2.inner join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 +3.where 要筛选的条件、 + +左连接查询 +1.select * from 第一张表名 重命名字段1 +2.left join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 +3.where 要筛选的条件、 + +右连接查询 +1.select * from 第一张表名 重命名字段1 +2.right join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 +3.where 要筛选的条件、 +``` + +## **时间格式控制字符串:** + +| 名称 | 日期单位 | 缩写 | +| ------------ | ----------- | --------- | +| 年 | 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 | + +## SQL语句执行顺序: + +```sql +(7) SELECT +(8) DISTINCT +(1) FROM +(3) JOIN +(2) ON +(4) WHERE +(5) GROUP BY +(6) HAVING +(9) ORDER BY +(10) LIMIT +``` + diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" new file mode 100644 index 0000000..732d0c6 --- /dev/null +++ "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\270\200\346\254\241\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery1.sql" @@ -0,0 +1,64 @@ + + + + --Ϣ + create table sectionInfo( + --ű + sectionID int primary key identity(1,1), + -- + sectionName varchar(10) not null + ); + + select * from sectionInfo + INSERT INTO sectionInfo(sectionName) VALUES(''), + (''), + ('ڲ'); + + + --ԱϢ + create table userInfo( + --Ա + userNo int primary key identity(1,1) not null , + --Ա + userName varchar(10) unique not null check(len(userName)>=2), + --ԱԱ + userSex varchar(2) not null check(userSex='' or userSex='Ů'), + --Ա + userAge int not null check(userAge>=0 and userAge <=100), + --Աַ + userAddress varchar(50) default(''), + --Ա + userSection int references sectionInfo(sectionID) + ); + + drop table userInfo + + select * from userInfo + + INSERT INTO userInfo(userName,userSex,userAge,userAddress,userSection) + VALUES + ('','',17,'',1), + ('','Ů',18,'Ĵ',2), + ('','',20,'',3); + + + --Աڱ + create table workInfo( + --ڱ + workId int primary key identity(1,1), + --Ա + userId int references userInfo(userNo) not null, + --ʱ + workTime datetime not null, + --˵ + workDescription varchar(40) check(workDescription='ٵ' or workDescription='' + or workDescription='' or workDescription='' or workDescription='¼') not null + ); + + select * from workInfo + + INSERT INTO workInfo(userId,workTime,workDescription) + VALUES + (1,2022,'ٵ'), + (2,2022,'¼'), + (3,2022,''); \ No newline at end of file -- Gitee From d6eaba3899f70f96c1b4fb749eb42f3e3b634760 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=8D=8E=E4=BC=9F?= <1931626338@qq.com> Date: Sun, 18 Sep 2022 17:29:06 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E5=92=8C=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2022-9-16.md" | 190 ++++++++++++++++++ .../SQLQuery2.sql" | 70 +++++++ 2 files changed, 260 insertions(+) create mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" create mode 100644 "\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" new file mode 100644 index 0000000..c115434 --- /dev/null +++ "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/2022-9-16.md" @@ -0,0 +1,190 @@ +# 2022.9.16 + +## 创建数据库 + +```SQL +create database 数据库名 +``` + +## 创建数据表 + +```SQL +create table 表名( +) +``` + +## 查询数据 + +```sql +select * from 表名 +``` + +## 增删改查 + +```SQL +insert into 表名 ({字段1},{字段1},{字段1},....) values (值1,值1,值1,....) +alter table (表名) add (列名) varchar(255) ; +delete from 表名 where 删除条件 +drop table (表名) 删除整个表 +UPDATE 表名 SET 字段1=修改的值1,字段2=修改的值2,.. . .. WHERE 修改的条件 +``` + + + +## 主键,自增,不允许为空,默认值,外键,唯一约束 + +```sql +1.primary key 主键 +2.identity(1,1) 自增 初始ID,自增多少 +3.not null 不允许为空 +4.default('') 默认值 +5.userId(表名) int(字段) references(外键) userInfo(表名)(userNo)列名 外键 +6.unique 唯一约束 +``` + +# 2022.9.17 + +## SQL条件查询 + +```sql +=:等于,比较是否相等及赋值 +!=:比较不等于 +>:比较大于 +<:比较小于 +>=:比较大于等于 +<=:比较小于等于 +IS NULL:比较为空 +IS NOT NULL:比较不为空 +in:比较是否在其中 +like:模糊查询 +BETWEEN...AND...:比较是否在两者之间 50-100 BETWEEN 50 AND 100 +and:逻辑与(两个条件同时成立表达式成立) +or:逻辑或(两个条件有一个成立表达式成立) +not:逻辑非(条件成立,表达式则不成立;条件不成立,表达式则成立) +``` + +## 模糊查询 + +```sql +%:代表匹配0个字符、1个字符或多个字符。 +_:代表匹配有且只有1个字符。 +[]:代表匹配范围内 +[^]:代表匹配不在范围内 + +模糊查询,包含查询 +select * from 表名 where 列名 like '%要查询的字段%' + +模糊查询,开头查询 +select * from 表名 where 列名 like '要查询的字段%' + +模糊查询,结尾查询 +select * from 表名 where 列名 like '%要查询的字段' +``` + +## 聚合函数 + +```SQL +count:求数量 +max:求最大值 计算某一列的最大值 +min:求最小值 计算某一列的最小值 +sum:求和 计算某一列的合计值,该列必须为数值类型 +avg:求平均值 计算某一列的平均值,该列必须为数值类型 +``` + +## 升序降序查询 + +```SQL +-- desc 降序 默认升序 asc -- +SELECT * FROM 表名 order by 列名 desc +``` + + + +## ROUND函数用法: + +```SQL +round(num,len,[type]) +其中: +num表示需要处理的数字,len表示需要保留的长度,type处理类型(0是默认值代表四舍五入,非0代表直接截取) +select ROUND(123.45454,3) --123.45500 +select ROUND(123.45454,3,1) --123.45400 +``` + +## CONVERT()与CAST()函数: + +```SQL +--1.保留小数 +convert(decimal(13,2),12.45454) +cast(12.45454 as decimal(13,2)) +--2.强制转换类型 +``` + +## SQL中常用的时间函数 + +```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()); --返回当前日期年数 + +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 +``` + +## 连表查询 + +```SQL +内连接查询 +1.select * from 第一张表名 重命名字段1 +2.inner join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 +3.where 要筛选的条件、 + +左连接查询 +1.select * from 第一张表名 重命名字段1 +2.left join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 +3.where 要筛选的条件、 + +右连接查询 +1.select * from 第一张表名 重命名字段1 +2.right join 第二张表名 重命名字段2 on 重命名字段1.关联的列=重命名字段2.关联的列 +3.where 要筛选的条件、 +``` + +## **时间格式控制字符串:** + +| 名称 | 日期单位 | 缩写 | +| ------------ | ----------- | --------- | +| 年 | 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 | + +## SQL语句执行顺序: + +```sql +(7) SELECT +(8) DISTINCT +(1) FROM +(3) JOIN +(2) ON +(4) WHERE +(5) GROUP BY +(6) HAVING +(9) ORDER BY +(10) LIMIT +``` + diff --git "a/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" new file mode 100644 index 0000000..facfccf --- /dev/null +++ "b/\351\231\210\345\215\216\344\274\237 12/\347\254\254\344\272\214\345\234\272\344\275\234\344\270\232,\347\254\224\350\256\260/SQLQuery2.sql" @@ -0,0 +1,70 @@ +--ѯ人еԱϢҪʾԼԱϸ +--ѯ人еԱϢҪʾƣְԼԱϸ +--ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʡ +--ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʣƽ10000 µIJͳƣҸƽʽС +--ݲƣȻְλƣͳԱԱܺͣƽʣ߹ʺ͹ +--ѯз 6.22--7.22 ԱϢ +--ѯԱϢһʾ(,ţ,,,,,,,,,,) = + + +select * from Department; +select * from [Rank]; +select * from People; +drop table Department +--ѯз 6.22--7.22 ԱϢ +select * from People where +MONTH(PeopleBirth)=6 and DAY(PeopleBirth)>=22 or MONTH(PeopleBirth)=7 and DAY(PeopleBirth)<=22 +--ѯԱϢһʾ(,ţ,,,,,,,,,,) + select * ,case + when YEAR(PeopleBirth)%12=0 + then '' + when YEAR(PeopleBirth)%12=1 + then 'ţ' + when YEAR(PeopleBirth)%12=2 + then '' + when YEAR(PeopleBirth)%12=3 + then '' + when YEAR(PeopleBirth)%12=4 + then '' + when YEAR(PeopleBirth)%12=5 + then '' + when YEAR(PeopleBirth)%12=6 + then '' + when YEAR(PeopleBirth)%12=7 + then '' + when YEAR(PeopleBirth)%12=8 + then '' + when YEAR(PeopleBirth)%12=9 + then '' + when YEAR(PeopleBirth)%12=10 + then '' + when YEAR(PeopleBirth)%12=11 + then '' + end from People + ; + +--ѯ人еԱϢҪʾԼԱϸ +select * from People +join Department on People.DepartmentId = Department.DepartmentId +where PeopleAddress ='人'; +--ѯ人еԱϢҪʾƣְԼԱϸ +select * from People +join Department on People.DepartmentId = Department.DepartmentId +join [Rank] on People.RankId = [Rank].RankId +where PeopleAddress ='人'; +--ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʡ +select DepartmentName, COUNT(*) Ա,SUM(PeopleSalary) Աܺ,AVG(PeopleSalary) ƽ ,MAX(PeopleSalary)߹,MIN(PeopleSalary)͹ from People +join Department on People.DepartmentId = Department.DepartmentId +group by DepartmentName; +--ݲŷͳԱԱܺͣƽʣ߹ʺ͹ʣƽ10000 µIJͳƣҸƽʽС +select DepartmentName,COUNT(*) Ա,SUM(PeopleSalary) Աܺ,AVG(PeopleSalary) ƽ ,MAX(PeopleSalary)߹,MIN(PeopleSalary)͹ from People +join Department on People.DepartmentId = Department.DepartmentId +group by DepartmentName +having AVG(PeopleSalary)>=10000 +order by AVG(PeopleSalary) desc; +--ݲƣȻְλƣͳԱԱܺͣƽʣ߹ʺ͹ +select DepartmentName,RankName ,[Rank].RankId ְλȼ ,COUNT(*) Ա,SUM(PeopleSalary) Աܺ,AVG(PeopleSalary) ƽ ,MAX(PeopleSalary)߹,MIN(PeopleSalary)͹ from People +join Department on People.DepartmentId = Department.DepartmentId +join [Rank] on People.RankId = [Rank].RankId +group by DepartmentName,RankName,[Rank].RankId +order by [Rank].RankId desc; \ No newline at end of file -- Gitee