From 6603d2463fdf06840ff922cf0452e1ac5f8f7824 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=AD=A3=E8=B1=AA?= Date: Mon, 19 Sep 2022 03:16:04 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20=E5=BC=A0=E6=AD=A3?= =?UTF-8?q?=E8=B1=AA2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\345\274\240\346\255\243\350\261\2522/.keep" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "\345\274\240\346\255\243\350\261\2522/.keep" diff --git "a/\345\274\240\346\255\243\350\261\2522/.keep" "b/\345\274\240\346\255\243\350\261\2522/.keep" new file mode 100644 index 0000000..e69de29 -- Gitee From 59af5122628577c21ffd257f8e49efa61da46716 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=AD=A3=E8=B1=AA?= Date: Mon, 19 Sep 2022 03:16:29 +0000 Subject: [PATCH 2/2] =?UTF-8?q?37=E5=BC=A0=E6=AD=A3=E8=B1=AA=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 张正豪 --- .../DBTEST.sql" | 225 ++++++++++++++++++ .../SQLQuery1.sql" | 57 +++++ 2 files changed, 282 insertions(+) create mode 100644 "\345\274\240\346\255\243\350\261\2522/9-19\345\274\240\346\255\243\350\261\252/DBTEST.sql" create mode 100644 "\345\274\240\346\255\243\350\261\2522/9-19\345\274\240\346\255\243\350\261\252/SQLQuery1.sql" diff --git "a/\345\274\240\346\255\243\350\261\2522/9-19\345\274\240\346\255\243\350\261\252/DBTEST.sql" "b/\345\274\240\346\255\243\350\261\2522/9-19\345\274\240\346\255\243\350\261\252/DBTEST.sql" new file mode 100644 index 0000000..afff882 --- /dev/null +++ "b/\345\274\240\346\255\243\350\261\2522/9-19\345\274\240\346\255\243\350\261\252/DBTEST.sql" @@ -0,0 +1,225 @@ +if exists(select * from sys.databases where name='DBTEST') +drop database DBTEST1; +go + +create database DBTEST1; +go + +use DBTEST1; +go + +--´´½¨²¿Ãűí +create table Department +( + --´´½¨²¿ÃűàºÅ;int´ú±íÕûÊýÀàÐÍ;primary key´ú±íÖ÷¼ü;identity(1,1)´ú±í´Ó1¿ªÊ¼²½³¤Îª1×ÔÔö³¤; + DepartmentId int primary key identity(1,1), + --´´½¨²¿ÃÅÃû³Æ;nvarchar(50)´ú±í³¤¶È50µÄ×Ö·û´®;not null´ú±í²»ÄÜΪ¿Õ; + DepartmentName nvarchar(50) not null, + --´´½¨²¿ÃÅÃèÊö£»text´ú±í³¤Îı¾; + DepartmentRemark text +); +go + +--´´½¨Ö°¼¶±í£¬rankΪϵͳ¹Ø¼ü×Ö£¬´Ë´¦Ê¹ÓÃ[]´ú±í×Ô¶¨ÒåÃû×Ö£¬¶ø·Çϵͳ¹Ø¼ü×Ö +create table [Rank] +( + RankId int primary key identity(1,1), + RankName nvarchar(50) not null, + RankRemark text +); +go + +--´´½¨Ô±¹¤ÐÅÏ¢±í +create table People +( + PeopleId int primary key identity(1,1), + --references´ú±íÍâ¼üÒýÓÃ,´Ë×ֶαØÐë·ûºÏÓëÆäËü±íµÄÍâ¼üÔ¼Êø + DepartmentId int references Department(DepartmentId) not null, + RankId int references [Rank](RankId) not null, + PeopleName nvarchar(50) not null, + --default´ú±í×Ö¶ÎĬÈÏÖµ; check¿ÉÒԹ涨×Ö¶ÎÖµµÄÔ¼ÊøÌõ¼þ; + PeopleSex nvarchar(1) default('ÄÐ') check(PeopleSex='ÄÐ' or PeopleSex='Å®') not null, + PeopleBirth datetime not null, + PeopleSalary decimal(12,2) check(PeopleSalary>= 1000 and PeopleSalary <= 100000) not null, + --unique´ú±íÎ¨Ò»Ô¼Êø£¬ÎªÊý¾ÝÌṩΨһÐÔ±£Ö¤; + PeoplePhone nvarchar(20) unique not null, + PeopleAddress nvarchar(100), + --datetimeºÍsmalldatetime¶¼¿ÉÒÔ±íʾʱ¼äÀàÐÍ£¬getdate()ÓÃÓÚ»ñȡϵͳµ±Ç°Ê±¼ä + PeopleAddTime smalldatetime default(getdate()) +); +go + + + +------------------------------²åÈëÊý¾Ý²¿·Ö------------------------------ +--²¿Ãűí²åÈëÊý¾Ý +insert into Department values('ÐÐÕþ²¿','¹«Ë¾Ö÷¹ÜÐÐÕþ¹¤×÷µÄ²¿ÃÅ'); +go + +--Ò»´ÎÐÔ²åÈë¶àÌõÊý¾Ý +insert into Department(DepartmentName,DepartmentRemark) +select 'Êг¡²¿','´µÅ£µÄ²¿ÃÅ' union +select '²úÆ·²¿','ÌìÂíÐǿյIJ¿ÃÅ' union +select '×ܾ­°ì','¶¼ÊÇÁìµ¼µÄ²¿ÃÅ' ; +go + +-------Ö°¼¶±í²åÈëÊý¾Ý +insert into [Rank](RankName,RankRemark) +values('³õ¼¶','¸¨ÖúÆäËûÈËÍê³ÉÈÎÎñ') +insert into [Rank](RankName,RankRemark) +values('Öм¶','¾ß±¸¶ÀÁ¢´¦ÀíÊÂÎñµÄÄÜÁ¦') +insert into [Rank](RankName,RankRemark) +values('¸ß¼¶','¾ß±¸¿ÉÒÔ´ø¶¯È«³¡½Ú×àµÄÄÜÁ¦'); +go + +---------ÏòÔ±¹¤±í²åÈëÊý¾Ý +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(1,3,'Áõ±¸','ÄÐ','1984-7-9',20000,'13554785452','³É¶¼',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(1,2,'ËïÉÐÏã','Å®','1987-7-9',15000,'13256854578','¾£ÖÝ',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(1,1,'¹ØÓð','ÄÐ','1988-8-8',12000,'13985745871','¾£ÖÝ',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(2,1,'ÕÅ·É','ÄÐ','1990-8-8',8000,'13535987412','Ò˲ý',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(2,3,'ÕÔÔÆ','ÄÐ','1989-4-8',9000,'13845789568','Ò˲ý',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(3,3,'Âí³¬','ÄÐ','1995-4-8',9500,'13878562568','Ïã¸Û',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(3,2,'»Æ¸Ç','ÄÐ','1989-4-20',8500,'13335457412','Î人',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(3,1,'õõ²õ','Å®','1989-4-20',6500,'13437100050','Î人',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(2,2,'²Ü²Ù','ÄÐ','1987-12-20',25000,'13889562354','±±¾©',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(2,3,'ÐíñÒ','ÄÐ','1981-11-11',9000,'13385299632','±±¾©',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(2,1,'µäΤ','ÄÐ','1978-1-13',8000,'13478545263','ÉϺ£',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(1,1,'²ÜÈÊ','ÄÐ','1998-12-12',7500,'13878523695','ÉîÛÚ',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(1,3,'Ëï¼á','ÄÐ','1968-11-22',9000,'13698545841','¹ãÖÝ',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(3,3,'Ëï²ß','ÄÐ','1988-1-22',11000,'13558745874','ÉîÛÚ',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(3,2,'ËïȨ','ÄÐ','1990-2-21',12000,'13698745214','ÉîÛÚ',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(3,2,'´óÇÇ','Å®','1995-2-21',13000,'13985478512','ÉϺ£',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(2,1,'СÇÇ','Å®','1996-2-21',13500,'13778787874','±±¾©',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(1,2,'ÖÜè¤','ÄÐ','1992-10-11',8000,'13987455214','Î人',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(2,3,'³Ëà','ÄÐ','1984-9-10',5500,'13254785965','³É¶¼',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(3,3,'ÂÀÃÉ','ÄÐ','1987-5-19',8500,'13352197364','³É¶¼',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(1,1,'½ѷ','ÄÐ','1996-5-19',7500,'13025457392','ÄϾ©',getdate()) + +insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth, +PeopleSalary,PeoplePhone,PeopleAddress,PeopleAddTime) +values(1,2,'̫ʷ´È','ÄÐ','1983-6-1',7500,'13077778888','ÉϺ£',getdate()) + + +---²éѯ +select * from Department +select * from [Rank] +select * from People + + +--1. ²éѯËùÓÐÐÐËùÓÐÁÐ + +--2. Ö¸¶¨Áвéѯ£¨ÐÕÃû£¬ÐÔ±ð£¬ÔÂн£¬µç»°£© +select PeopleName as ÐÕÃû ,Peoplesex as ÐÔ±ð from People; +--3. Ö¸¶¨Áвéѯ,²¢×Ô¶¨ÒåÖÐÎÄÁÐÃû£¨ÐÕÃû£¬ÐÔ±ð£¬ÔÂн£¬µç»°£© +--4. ²éѯ¹«Ë¾Ô±¹¤ËùÔÚ³ÇÊУ¨²»ÐèÒªÖØ¸´Êý¾Ý£© + +--Ïû³ýÖØ¸´ÐУºdistinct +select distinct peopleAddress from People; +--5. ¼ÙÉ蹤×ÊÆÕµ÷10%£¬²éѯԭʼ¹¤×ʺ͵÷ÕûºóµÄ¹¤×Ê£¬ÏÔʾ£¨ÐÕÃû£¬ÐÔ±ð£¬ÔÂн£¬¼ÓнºóµÄÔÂн£©£¨Ìí¼ÓÁвéѯ£©¡£ +select top 3 PeopleName ÐÕÃû, PeopleSalary ÔÂн, PeopleSalary*1.1 ¼ÓнºóÔÂн from People; + +--top ordey by + + +select * from People +--¸ù¾ÝÖ¸¶¨ÁУ¨ÐÕÃû£¬ÐÔ±ð£¬ÔÂн£¬µç»°£©²éѯÐÔ±ðΪٵÄÔ±¹¤ÐÅÏ¢,²¢×Ô¶¨ÒåÖÐÎÄÁÐÃû +--2. ²éѯÔÂн´óÓÚµÈÓÚ10000 µÄÔ±¹¤ÐÅÏ¢( µ¥Ìõ¼þ ) +--3. ²éѯÔÂн´óÓÚµÈÓÚ10000 µÄŮԱ¹¤ÐÅÏ¢(¶àÌõ¼þ) +select * from People where PeopleSalary>=10000 and PeopleSex='Å®' +--4. ÏÔʾ³öÉúÄêÔÂÔÚ1980-1-1Ö®ºó£¬¶øÇÒÔÂн´óÓÚµÈÓÚ10000µÄŮԱ¹¤ÐÅÏ¢¡£ +select * from People where PeopleSalary>=10000 and PeopleSex='Å®' and PeopleBirth>'1995-1-1'; + +--5. ÏÔʾ³öÔÂн´óÓÚµÈÓÚ15000 µÄÔ±¹¤,»òÕßÔÂн´óÓÚµÈÓÚ8000µÄŮԱ¹¤ÐÅÏ¢¡£ +select * from People where (PeopleSalary>=8000 and peoplesex='Å®') or PeopleSalary>=15000 +--6. ²éѯÔÂнÔÚ10000-20000 Ö®¼äÔ±¹¤ÐÅÏ¢( ¶àÌõ¼þ ) +select * from People where PeopleSalary between 10000 and 20000 +--7. ²éѯ³öµØÖ·ÔÚ±±¾©»òÕßÉϺ£µÄÔ±¹¤ÐÅÏ¢ +--8. ²éѯËùÓÐÔ±¹¤ÐÅÏ¢(¸ù¾Ý¹¤×ÊÅÅÐò£¬½µÐòÅÅÁÐ): asc£¨Ä¬ÈÏ£©:ÉýÐò desc:½µÐò +select * from People order by PeopleSalary desc + +--9. ÏÔʾËùÓеÄÔ±¹¤ÐÅÏ¢£¬°´ÕÕÃû×ֵij¤¶È½øÐе¹ÐòÅÅÁÐ +--10. ²éѯ¹¤×Ê×î¸ßµÄ5¸öÈ˵ÄÐÅÏ¢ +select top 5 * from People order by PeopleSalary desc +--11. ²éѯ¹¤×Ê×î¸ßµÄ10%µÄÔ±¹¤ÐÅÏ¢ +select top 10 percent * from People order by PeopleSalary desc +--12. ²éѯ³öµØÖ·Ã»ÓÐÌîдµÄÔ±¹¤ÐÅÏ¢ +--Ϊ¿Õ²»ÄÜÓÃ=£¬is null, is not null +select * from People where PeopleAddress is null; + +--13. ²éѯ³öµØÖ·ÒѾ­ÌîдµÄÔ±¹¤ÐÅÏ¢ +--14. ²éѯËùÓеÄ80ºóÔ±¹¤ÐÅÏ¢ + +--15. ²éѯÄêÁäÔÚ30-40 Ö®¼ä£¬²¢ÇÒ¹¤×ÊÔÚ15000-30000 Ö®¼äµÄÔ±¹¤ÐÅÏ¢ +--16. ²éѯ³ö¾Þз 6.22--7.22 µÄÔ±¹¤ÐÅÏ¢ +select * from people where +(MONTH(PeopleBirth)=6 and DAY(PeopleBirth)>=22) or +(MONTH(PeopleBirth)=7 and DAY(PeopleBirth)<=22) +; +--17. ²éѯ¹¤×ʱÈÕÔÔÆ¸ßµÄÈË +select * from people where PeopleSalary > 9000 +--18. ²éѯ³öºÍÕÔÔÆÔÚͬһ¸ö³ÇÊеÄÈË +--19. ²éѯ³öÉúФΪÊóµÄÈËÔ±ÐÅÏ¢ +--20. ²éѯËùÓÐÔ±¹¤ÐÅÏ¢£¬Ìí¼ÓÒ»ÁÐÏÔʾÊôÏà(Êó,Å£,»¢,ÍÃ,Áú,Éß,Âí,Ñò,ºï,¼¦,¹·,Öí) +--case when end diff --git "a/\345\274\240\346\255\243\350\261\2522/9-19\345\274\240\346\255\243\350\261\252/SQLQuery1.sql" "b/\345\274\240\346\255\243\350\261\2522/9-19\345\274\240\346\255\243\350\261\252/SQLQuery1.sql" new file mode 100644 index 0000000..4cace76 --- /dev/null +++ "b/\345\274\240\346\255\243\350\261\2522/9-19\345\274\240\346\255\243\350\261\252/SQLQuery1.sql" @@ -0,0 +1,57 @@ +USE DBTEST1; +select * from Department;--²¿Ãűí +select * from [Rank];--Ö°¼¶±í +select * from People;--Ô±¹¤ÐÅÏ¢±í +--1. ²éѯ³öÎ人µØÇøËùÓеÄÔ±¹¤ÐÅÏ¢£¬ÒªÇóÏÔʾ²¿ÃÅÃû³ÆÒÔ¼°Ô±¹¤µÄÏêϸ×ÊÁÏ +--select * from People where PeopleAddress +--in +--(select PeopleAddress from People where PeopleAddress = 'Î人') + +select De.DepartmentRemark ËùÔÚ²¿ÃÅ ,Pe.* from People Pe +join Department De on De.DepartmentId = Pe.DepartmentId +where PeopleAddress = 'Î人'; + + +--2. ²éѯ³öÎ人µØÇøËùÓеÄÔ±¹¤ÐÅÏ¢£¬ÒªÇóÏÔʾ²¿ÃÅÃû³Æ£¬Ö°¼¶Ãû³ÆÒÔ¼°Ô±¹¤µÄÏêϸ×ÊÁÏ +select De.DepartmentRemark ËùÔÚ²¿ÃÅ,Ra.RankRemark Ö°¼¶Ãû³Æ,Pe.* from People Pe +join Department De on De.DepartmentId = Pe.DepartmentId +join [Rank] Ra on Ra.RankId = Pe.RankId +where PeopleAddress = 'Î人'; + +--3. ¸ù¾Ý²¿ÃÅ·Ö×éͳ¼ÆÔ±¹¤ÈËÊý£¬Ô±¹¤¹¤×Ê×ܺͣ¬Æ½¾ù¹¤×Ê£¬×î¸ß¹¤×ʺÍ×îµÍ¹¤×Ê¡£ +select count(DepartmentId)Ô±¹¤ÈËÊý,sum(PeopleSalary)Ô±¹¤¹¤×Ê×ܺÍ,AVG(PeopleSalary)ƽ¾ù¹¤×Ê,max(PeopleSalary)×î¸ß¹¤×Ê,min(PeopleSalary)×îµÍ¹¤×Ê from People + group by DepartmentId; +-- select * from People;--Ô±¹¤ÐÅÏ¢±í + +--4. ¸ù¾Ý²¿ÃÅ·Ö×éͳ¼ÆÔ±¹¤ÈËÊý£¬Ô±¹¤¹¤×Ê×ܺͣ¬Æ½¾ù¹¤×Ê£¬×î¸ß¹¤×ʺÍ×îµÍ¹¤×Ê£¬Æ½¾ù¹¤×ÊÔÚ10000 ÒÔϵIJ»²ÎÓëͳ¼Æ£¬²¢ÇÒ¸ù¾Ýƽ¾ù¹¤×ʽµÐòÅÅÁС£ +select count(DepartmentId)Ô±¹¤ÈËÊý,sum(PeopleSalary)Ô±¹¤¹¤×Ê×ܺÍ,AVG(PeopleSalary)ƽ¾ù¹¤×Ê,max(PeopleSalary)×î¸ß¹¤×Ê,min(PeopleSalary)×îµÍ¹¤×Ê from People + group by DepartmentId + having Avg (PeopleSalary) >=10000 + order by ƽ¾ù¹¤×Ê desc; + -- select * from People;--Ô±¹¤ÐÅÏ¢±í + +--5. ¸ù¾Ý²¿ÃÅÃû³Æ£¬È»ºó¸ù¾ÝְλÃû³Æ£¬·Ö×éͳ¼ÆÔ±¹¤ÈËÊý£¬Ô±¹¤¹¤×Ê×ܺͣ¬Æ½¾ù¹¤×Ê£¬×î¸ß¹¤×ʺÍ×îµÍ¹¤×Ê +select d.DepartmentName ,COUNT(*) Ô±¹¤ÈËÊý,SUM(PeopleSalary) Ô±¹¤¹¤×Ê×ÜºÍ ,AVG(PeopleSalary) ƽ¾ù¹¤×Ê,MAX(PeopleSalary) ×î¸ß¹¤×Ê,MIN(PeopleSalary) ×îµÍ¹¤×Ê from People p +join Department d on d.DepartmentId=p.DepartmentId +group by d.DepartmentName,RankId + + +--6.²éѯ³ö¾Þз 6.22--7.22 µÄÔ±¹¤ÐÅÏ¢ +select * from People where PeopleAddTime between '2022-06-22' and '2022-07-22' +update People set PeopleAddTime='2017-07-22 19:08:00' where PeopleId = 10 +--7.²éѯËùÓÐÔ±¹¤ÐÅÏ¢£¬Ìí¼ÓÒ»ÁÐÏÔʾÊôÏà(Êó,Å£,»¢,ÍÃ,Áú,Éß,Âí,Ñò,ºï,¼¦,¹·,Öí) +select *,case year(PeopleAddTime) % 12 +when 0 then 'ºï' +when 1 then '¼¦' +when 2 then '¹·' +when 3 then 'Öí' +when 4 then 'Êó' +when 5 then 'Å£' +when 6 then '»¢' +when 7 then 'ÍÃ' +when 8 then 'Áú' +when 9 then 'Éß' +when 10 then 'Âí' +when 11 then 'Ñò' +end 'ÉúФ' + from People -- Gitee