期末sql_server复习枯燥?乏味?一文带你轻松击破sql壁垒!

news/2024/11/7 5:37:29/

🎬 博客主页:博主链接
🎥 本文由 M malloc 原创,首发于 CSDN🙉
🎄 学习专栏推荐:LeetCode刷题集!
🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📆 未来很长,值得我们全力奔赴更美好的生活✨
------------------❤️分割线❤️-------------------------
————————————————

在这里插入图片描述

文章目录

  • 😧关于sql_server的基础知识
    • 😧 一、sql_server技术介绍
    • 😧二、学习前的准备工作
  • 😧sql_server查询篇
    • 😧三、查询的基本操作
      • 😧3.1基础查询
      • 😧3.2条件查询(where)
      • 😧3.3排序(order by)
      • 😧3.4运用到些许函数进行查询
  • 😧如何巩固学习

😧关于sql_server的基础知识

😁大家好呀,今天是我第三次写sql_server,也是最近才学习sql_server,也想着记录一下自己的学习过程,并且分享给大家尼!

😧 一、sql_server技术介绍

SQL Server 是由微软公司(Microsoft)开发的关系型数(RDBMS)。RDBMS 是 SQL 以及所有现代数据库系统的基础,比如 MS SQL Server,IBM DB2,Oracle,MySQL 以及微软的 Microsoft Access。

😧二、学习前的准备工作

编程软件:SQL Server Management Studio 2012
带好你的小板凳,我们一起扬帆起航!

在这里插入图片描述

😧sql_server查询篇

😧三、查询的基本操作

在日常过程中,我们会遇到很多需要查询的数据信息,这个时候,我们就可以运用sql_server中的查询语句。

😧3.1基础查询

1.查询数据库中的所有列,所有行:

select * from department
select * from s_rank
select * from People

执行上述代码之后,如下图所示就是数据库中的所有数据啦!

在这里插入图片描述

2.查询指定列(姓名,性别,生日,月薪,电话):

select PeopleName,PeopleSex,PeopleBirth,PeopleSalary,PeoplePhone from People

在这里插入图片描述

如上图所示就是数据库中的查询指定列的操作啦

3.查询指定列(姓名,性别,生日,月薪,电话)(显示一个中文的列名)

select PeopleName 姓名,PeopleSex 性别,PeopleBirth 生日,PeopleSalary 月薪,PeoplePhone 电话 from People

我们只需要在对应的字段后面加一个空格,然后输入我们想命名的标题就好啦!如下如所示

在这里插入图片描述

4.查询出员工所在的城市(不需要重复数据显示)

select distinct(PeopleAddress) from People

在数据库中有个关键字是distinct,代表中去重的意思,当我们没带这个关键字的时候,我们显示到的数据是这样的
select PeopleAddress from People
在这里插入图片描述

我们会发现此时的数据中出现了两个荆州,但是我们不想要它重复出现相同的数据,那我们该怎么办呢?这时候就应该运用到distinct这个关键字啦!

select distinct(PeopleAddress) from People

在这里插入图片描述

我们此时就会发现不会重复的出现荆州了啦!

5.假设准备加工资(上调百分之二十),查询出加工资后的员工数据

select PeopleName,PeopleSex,PeopleSalary * 1.2 加薪后的工资 from People

在这里插入图片描述

6.假设准备加工资(上调百分之二十),查询出加工资前和加工资后的员工数据

select PeopleName,PeopleSex,PeopleSalary, PeopleSalary * 1.2 加薪后的工资 from People

在这里插入图片描述

😧3.2条件查询(where)

在查询的过程中,我们会只想查询我们想要知道的数据,也就类似于进行筛选的操作,在这个过程中,我们就可以不用在再很大一批的数据中进行数据的查找啦!

1.查询性别为女的员工信息:

select * from People where PeopleSex = '女'

在这里插入图片描述

2.查询工资大于等于10000元的员工信息:

select * from People where PeopleSalary >= 10000

在这里插入图片描述

3.查询出性别为女,工资大于等于10000元的员工信息

select * from People where PeopleSex = '女' and PeopleSalary >= 10000

4.查询出月薪大于等于10000的员工或者月薪大于等于8000的女员工

select * from People where PeopleSalary >= 10000 or 
(PeopleSalary >= 8000 and PeopleSex = '女')

在这里插入图片描述

5.查询出生年月在1980-1-1之后,而且月薪大于等于10000的女员工

select * from People where PeopleBirth >= 1980-1-1 or (PeopleSalary >= 8000 and PeopleSex = '女')

在这里插入图片描述

6.查询月薪在10000-20000之间的员工信息

select * from People where PeopleSalary >= 10000 and PeopleSalary <= 20000
select * from People where PeopleSalary between 10000 and 20000

这一个查询用到了两种方法,一种是用and连接,and就相当于是要都满足两者的条件的选择,第二钟方法就是利用between and进行连接,二者选其一就行啦!

在这里插入图片描述

7.查询出地址在武汉或者北京的员工

select * from People where PeopleAddress = '武汉' or PeopleAddress = '北京'
select * from People where PeopleAddress in ('武汉','北京','上海')

这里也是运用了两种方法,或者就是满足其一就可以啦,还有一种就是用in(‘’)里面放你想要的内容就行啦!

在这里插入图片描述

😧3.3排序(order by)

排序语法:
select * from 列名 order by 表名 asc

我们还看到其中还有asc,那么这个asc是啥呢?他其实是代表着升序的意思啦。那么既然有升序,是不是也还会有降序呢?没错降序就是desc,好啦我们来进入例题的讲解吧!

1.查询所有的员工信息,根据工资排序,降序

select * from People order by PeopleSalary desc

在这里插入图片描述

2.查询所有员工的信息,根据名字的长度排序(降序)

select * from People order by len(PeopleName) desc

在这里插入图片描述

3.查询出工资最高的5个人的信息

select top 5 * from People order by PeopleSalary desc

在这里插入图片描述

4.查询出工资最高的百分之十的员工信息

select top 10 percent * from People order by PeopleSalary desc

在这里插入图片描述

5.插入一个地址为空的信息

insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth,PeoPleSalary,PeoplePhone,PeopleAddtime) 
values(1,1,'码云','男','1977-7-7','50000','13531511531',getdate())

6.查询出地址没有填写的员工信息

select * from People where PeopleAddress is null

在这里插入图片描述

7.查询出地址填写的员工信息

select * from People where PeopleAddress is not null

在这里插入图片描述

😧3.4运用到些许函数进行查询

1查询出80后的员工信息
有以下三种方法:

select * from People where PeopleBirth >= '1980-1-1'and PeopleBirth <= '1989-12-31'
select * from People where PeopleBirth between '1980-1-1'and '1989-12-31'
select * from People where year(PeopleBirth) between 1980 and 1989

在这里插入图片描述

2查询三十到四十岁之间,并且工资到15000-30000工资之间的员工信息
假设年龄等于当前年份-生日年份.

select * from People where (year(getdate()) - year(PeopleBirth) >= 30 and year(getdate()) - year(PeopleBirth) <= 40)and (PeopleSalary >= 15000 and PeopleSalary <= 30000)

在这里插入图片描述

3.查询出星座是巨蟹座的员工信息(6-22,7-22)

select * from People where (month(PeopleBirth) = 6 and day(PeopleBirth) >= 22)or (month(PeopleBirth) = 7 and day(PeopleBirth) <= 22)

在这里插入图片描述

4.查询出工资比关羽高的信息的信息(这里就运用到了子查询)

select * from People where PeopleSalary > 
(select PeopleSalary from People where PeopleName = '关羽')

在这里插入图片描述

5.查询出和关羽在一个城市的的信息的信息

select * from People where PeopleAddress = 
(select PeopleAddress from People where PeopleName = '关羽') 

在这里插入图片描述

6.–查询出生肖是鼠的人员信息
–鼠 牛 虎 兔 龙 蛇 马 羊 猴 鸡 狗 猪
–4 5 6 7 8 9 10 11 0 1 2 3
select * from People where year(PeopleBirth) % 12 = 4

在这里插入图片描述

7.查询所有员工信息,添加一列,显示生肖

select* ,
casewhen 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 '羊'when year(PeopleBirth) % 12 = 0 then '猴'when year(PeopleBirth) % 12 = 1 then '鸡'when year(PeopleBirth) % 12 = 2 then '狗'when year(PeopleBirth) % 12 = 3 then '猪'else ''
end 生肖
from People

在这里插入图片描述

😧如何巩固学习

把我所写的代码进行阅读,并且自行的进行题目的分析,在把题目写下来这样有利于加深自己的印象,期末遇到这些题目就不用担心啦!!

我是爱你们的M malloc,我们下期再见呀!
在这里插入图片描述


http://www.ppmy.cn/news/206506.html

相关文章

2020-11-16

标题 请按照以下要求操作。 要求如下&#xff1a; 1)把1~6作为字典的键&#xff0c;把itcast的每个字符作为字典的值 2)获取字典的值视图&#xff0c;只要值为t&#xff0c;就从字典删除这些元素。 3)获取字典的键的视图&#xff0c;并输出 4)遍历字典的key&#xff08;键&…

1236

idea中如何使用git管理项目 1.在idea中配置git 2.新建仓库 3.在idea中建git仓库 4.pull和push 先add 再commit 点击Define remote URL中粘贴gitee仓库的网址 点击push&#xff0c;然后输入gitee账户密码 在Gitee上查看push成功 pull 新建文件 在idea中pull 点击…

nyoj 216

描述 When Teddy was a child , he was always thinking about some simple math problems ,such as “What it’s 1 cup of water plus 1 pile of dough ..” , “100 yuan buy 100 pig” .etc.. One day Teddy met a old man in his dream , in that dream the man whose nam…

Nyoj 269

首先题目读的费劲&#xff01;另外不能在for循环中定义变量i,j之类的&#xff0c;否则会超时&#xff01;&#xff01;&#xff01; dp[i][j] dp[i-1][j-k], i > 2&#xff0c;j < 9*i && k < j && k < 9; #include <iostream> #include …

163和169网的关系?

什么是163网和169网&#xff1f;二者之间有什么关系呢&#xff1f;很多人对此还存在着模糊的认识。163网即中国公用计算机互联网(CHINANET)&#xff0c;该网络由邮电部建设经营&#xff0c;是我国四大计算机互联网之一&#xff0c;是Internet在中国的接入部分。其用户特服接入号…

nyoj-1162-数字

数字 时间限制&#xff1a; 1000 ms | 内存限制&#xff1a; 65535 KB 难度&#xff1a; 0 描述 有一行数字 ,现在定义 0表示空格&#xff0c;即这行数字被分割成若干个数 要求将这些数按照从小到大顺序排列&#xff0c;若该行数字全为零 则表示为零&#xff0c;两个数字之间…

nyoj 136

题意&#xff1a; 描述 有以下等式&#xff1a;a1*x13a2*x23a3*x33a4*x43a5*x530 x1,x2,x3,x4,x5都就在区间[-50,50]之间的整数&#xff0c;且x1,x2,x3,x4,x5都不等于0. 问&#xff1a;给定a1,a2,a3,a4,a5的情况下&#xff0c;x1,x2,x3,x4,x5共有多少种可能的取值&#xff1f; …