数据库Word格式.docx
- 文档编号:8307833
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:16
- 大小:497.07KB
数据库Word格式.docx
《数据库Word格式.docx》由会员分享,可在线阅读,更多相关《数据库Word格式.docx(16页珍藏版)》请在冰点文库上搜索。
PS:
主键唯一性和稳定性,如果没有列可以作为主键,新建一个标示列,定义int。
标识列在下面修改表示范围,是标识,(是、否)
部门表是主表
商品类型是主表
以此类推
练习,建数据库,建表。
建主键、外键。
在表和列范围中修改关系。
主表和附表弄明白。
空白页面右键,关系。
然后找到外键关系。
添加等。
1、建库
2、建表,确定列名和约束等。
标识列,类型等
3、建立关系,建立主外关联
4、添加数据:
。
原则,先主表后子表
新建查询,然后找到自己的数据库。
然后输入SQL语句。
eg:
insertintobumen(bumenid,bumenname,bumendizhi)
values(20,‘技术部’,‘后汉书’)
文本日期加单引号,英文状态!
数字不用。
null不存值。
'
null'
英文字母单词。
插入时,值和列的位置对应即可。
插入时,可以省略列名,但下方位置必须不变。
ps:
当新建表student中id学号列为标识列为主键的时候,不能填写,而且语句也不能填写。
insertintostudent
values('
问问'
20)
主键唯一性,不能插入两条重复的数据。
更新数据
update<
表名>
set<
列名=更新值>
[where<
更新条件>
]
题目:
--2、插入新员工信息
员工编号、员工姓名、员工职位、入职日期、基本工资、奖金、部门编号
7101,'
张三丰'
'
分析员'
'
1981-2-22'
1250,500,20
7102,'
郭湘'
销售人员'
1981-2-23'
1250,500,30
7103,'
张四丰'
职员'
1981-2-24'
1250,500,10
--3、改变员工职位为'
为'
普通员工'
--4、所有基本工资不足1200的上涨20%
--5、所有部门编号是10的奖金为300
--6、入职日期1982以前部门编号为30的涨工资10%
--7、将双儿开除
--8、将部门标号为20的员工删除
--9、将韦小宝的职位改为总裁助理,基本工资改为原来的50%
--10、将工资最高的人的职务升为总裁
答案:
updateyuangongsetyuangongzhiwei='
whereyuangongzhiwei='
updateyuangongsetjibengongzi=jibengongji*1.2wherejibengongzi<
1200
updateyuangongjiangjin=300wherebumenid=30
updateyuangongjibengongzi*1.1whereruzhiriqi<
1982-1-1'
andbumenid=30
deletefromyuangongwhereyuangongname='
双儿'
deletefromyuangongwherebumenid=20
总裁助理'
jibengongzi=jibengongzi*0.5whereyuangongname='
韦小宝'
5-8练习题
--1、查询员工表所有数据
select*fromyuangong
--2、查询总裁的基本工资
selectjibengongzi,yuangongzhiweifromyuangong
whereyuangongzhiwei='
总裁'
--3、所有奖金为空的员工
select*fromyuangongwherejiangjinisnull
--4、查询基本工资最高的三个人
selecttop3*fromyuangongorderbyjibengongzidesc
--5、查询技术部的所在地
select*frombumenwherebumenname='
技术部'
--6、查询部门编号为30且奖金大于300元的员工信息
select*fromyuangongwherebumenid=30andjiangjin>
300
--7、查询部门编号为20的员工中基本工资最高的员工姓名和工资
selecttop1yuangongname,jibengongzifromyuangong
wherebumenid=20orderbyjibengongzidesc
selectyuangongname,jibengongzifromyuangong
wherejibengongzi=(selecttop1jibengongzifromyuangongwherebumenid=20
orderbyjibengongzidesc)
--8、查询位于'
嵩山'
、'
黑木崖'
南海神宫'
的部门信息
select*frombumenwherebumendizhi='
orbumendizhi='
销售部'
学习部'
select*frombumenwherebumendizhiin('
)
--9、查询入职日期在1981-5-1到1981-12-31之间的所有员工
whereruzhiriqi>
='
1981-5-1'
andrizhiriqi<
1981-12-31'
whereruzhitiqibetween'
and'
--10、查询所有名字为三个字的员工的员工编号,姓名
selectyuangongID,yuangongNamefromyuangong
whereyuangongNamelike'
___'
--11、查询10号部门的所有经理和20号部门的所有职员的详细信息
wherebumenID=10andyuangongzhiwei='
经理'
or
bumenID=20
--12查询姓名中没有‘王’的员工的详细信息。
whereyuangongNamenotlike'
%王%'
13查询员工姓名,将工作年限最长的员工排在最前面
selectyuangongName,ruzhiriqifomyuangong
orderbyruzhiriqi
14查询'
任我行'
的基本工资5月9
selectjibengongzifromyuangong
whereyuangongname='
15查询基本工资比任我行多的所有员工的姓名和基本工资类似第七题
wherejibengongzi>
(selectjibengongzifromyuangong
16查询各个部门经理的基本工资
Selectjibengongzifromyuangong
Whereyuangongzhiwei=’经理
’
我的:
17查询东方不败从事相同工作的员工的详细信息
Select*fromyuangongwhereyuangongzhiwei=(selectyuangongzhiweifromyuangongwhereyuangongname=’东方不败’)andyuangongname<
>
’东方不败’
selectyuangongid,yuangongnamefromyuangong
whereyuangongzhiwei=(selectyuangongzhiweifromyuangong
东方不败'
18查询市场部员工的姓名
Selectyuangongnamefromyuangongwherebumenid=(selectbumenidfrombumenwherebumenname=’市场部’)
selectbumenid,bumennamefrombumen
wherebumenname=(selectbumenid,yuangongnamefromyuangong
wherebumenid=30)
19查询某些员工的姓名和基本工资
条件是他们的基本工资与部门30中某一个员工的基本工资相同
Selectyuangongname,jibengongzifromyuangongwherejibengongziin(selectjibengongzifromyuangongwherebumenid=30)andbumenid<
30
20查询奖金收入bi基本工资高的员工的详细信息
Select*fromyuangongwherejibengongzi<
jiangjin
21查询不同部门的平均基本工资
Ps:
Avg(列名)平均值
sum(列名)累加和
max(列名)最大值
min(列名)最小值
count(*)所有行的行数
count(列名)统计在这一列当中非空值的个数
查询语句
select*from表名查询所有数据
select*fromstudent
where所在班级='
S202'
格式
SELECT<
列名>
from<
where
orderby
ascdesc排序方式
top4
excesice:
wherejiangjinisnull
selecttop3*fromyuangong
orderbyjibengongzidesc
select*frombumen
wherebumenName='
wherebumenID=30andjiangjin>
selectyuangongName,jibengongzifromyuangong
wherebumenID=20
5-8下午
charindex寻找一个指定的字符串在另一个字符创中的起始位置
len返回传递给她的字符串长度
lower把传递给他的字符串转换成小写
upper
ltrim清楚字符串左边空格
rtrim
right
replace替换
selectyuangongnamefromyuangong
whereleft(yuangongname,1)=left('
任盈盈'
1)andyuangongname<
selectyuangongname,len(yuangongname)fromyuangong
这几节课截图
5-9笔记
Like加通配符
In子查询(单列的数据);
可以加多个值
Betweenand
Isnull
练习:
Selectavg(jibengongzi),bumenidfromyuangonggroupbybumenid
selectavg(jibengongzi)fromyuangong求员工表的基本工资平均值
22查询所有基本工资高于平均基本工资(平均基本工资为所有部门员工的基本工资平均数)的销售人员
Selectjibengongzi,yuangongnamefromyuangong
Wherejibengongzi>
(selectavg(jibengongzi)fromyuangong)andyuangongzhiwei=’销售人员’
23显示各种职位的最低基本工资
Selectmin(jibengongzi),yuangongzhiweifromyuangong
Groupbyyuangongzhiwei
24查询每个部门的人数
Selectcount(*),bumenidfromyuangong
Groupbybumenid
Orderbycount(*)desc
25查询每个部门入职最早的员工的入职时间和bumenid
Selectmin(ruzhiriqi),bumenidfromyuangong
26显示所有职员的姓名及其所在部门的名称
内连接查询,外连接查询内连接重要
格式:
SelectS.Sname,C.courseld,C.score(给表起别名)
From
Innerjoin
on
完整写法:
Selectyuangongname.yuangongname,bumen.bumennamefromyuangong
Innerjoinbumenonyuangong.bumenid=bumen.bumenid
简答写法:
Selecty.yuangongname,b.bumennamefromyuangongy
Innerjoinbumenbony.bumenid=b.bumenid
Orderbyb.bumennamedesc
另一种写法:
Selecty.yuangongname,b.bumennamefromyuangongy,bumenb.bumenname
wherey.bumenid=b.bumenid
27显示所有员工的姓名及、所在部门名称和基本工资
Selecty.yuangongname,b.bumennamefromyuangongy,bumenb.bumenname,y.jibengongzi
28、显示不同部门不同职位的平均基本工资,部门名称,职位
Selectavg(y.jibengongzi),b.bumenname,y.yuangongzhiwei
Fromyuangongy,bumenb
Wherey.bumenid=b.bumenid
Groupbyb.bumenname,y.yuangongzhiwei
29、查询部门平均工资大于员工平均工资(全体员工平均工资)的部门编号和平均工资
Selectb.bumenname,avg(y.jibengongzi)fromyuangongy,bumenb
Groupbyb.bumenname
Havingavg(y.jibengongzi)>
(selectavg(y.jibengongzi)fromyuangong)
30、查询没有员工的部门名称
【
Selecty.yuangongname,b.bumennamefromyuangongy,bumenb
Wherey.bumenid=b.bumenidorderbyb.bumenname
Select*frombumen
内连接查询不到!
运用外连接
rightouterjoinbumenbony.bumendi=b.bumenid右外连接from后面是子表
groupbyb.bumenname
havingcount(y.yuangongname)>
Selecty.yuangongname,b.bumennamefrombumenb
leftouterjoinyuangongyony.bumendi=b.bumenid左外连接from后面是主表
】
havingcount(y.yuangongid)>
0查询出来有NULL
31、查询部门当中每个员工基本工资都大于1200的部门名称
Selectb.bumennamefromyuangongy,bumenb
Havingmin(jibengongiz)>
=1200
34查询部门中基本工资不小于2000的人数不止1人的部门编号和人数
筛选例子,条件分组筛选排序
Selectcount(*),bumenidfromyuangong
2000
Groupbybumenid
Havingcount(*)>
1聚合
5-10号上午
约束
数据库设计方面基本常识和规律:
例子:
学生:
学号,姓名,班级,年龄,性别,生日,联系电话,地址,email
成绩:
科目,任课教师,成绩,
三个范式
原子性,传递依赖性,
--1查询:
年龄最大的人的住址
--2查询:
所有班级的编号
--3查询:
所有班级的学员人数
--4查询:
所有人信息包括(学号,姓名,年龄,住址)
--5查询:
姓名,每人的总成绩
--6查询:
排列所有考了3科以上的人的成绩排行(降序)
--7删除学生详细信息表中资料不全(邮箱、qq、地址均没有值)的学生
--8修改'
t-06'
班级名为'
y-06'
--9添加新班级,班级名字为'
t-09'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库