6.10 个人总结数据库知识

修改部分

修改数据标准语法
update student set sex=‘女’ where sname=‘luck’;
可以一次性修改多行数据
update student set sex=‘女’ where cid>101;
修改数据在原有基础上的更改
update student set birth=birth+10 where cid=102;
可以对控制做出设置
update student set birth=‘1997-8-1’ where sid=6;
将sid=6的数据修改为null
update student set birth=null where sid =6;
设置和条件都是同一个,也可以
update student set cid=null where cid=103
将cid为空的数据改成生日+1天
update student set birth=birth+1 where cid is null
可以对多个数据做修改
update student set birth=birth+1,cid=103 where sid=8

删除部分

删除数据用delete,删除表用drop
delete from student where sid =7;

查询语法

1.简单查询
select 要显示的字段(列) from 表;
2.查询某个列的数据
select sid,sname,sex from student;
3.查询时使用常量
select sid,sname,‘你好’ from studen;
4.拼数据
selent concat(sid,sname),concat(sname,‘你好’) from student;
5.if
selent sname,ifnull(birth,‘2020-1-4’),if(cid>101,404,101) from student;
6.查询时支持对字段使用表达式
select sname,birth,current_date-birth as age from student;
select sid,mod(sid,2)from student;
7.查询生日都在哪些时间(去重复)
select distinct sex,birth,from student;
8.排序order by(ASC(正序),DESC(倒序))
select * from student order by birth desc;
多个排序
select * from exam order by score desc,sid asc;
9.指定返回几行数据
select * from student limit 0,5(从第一行显示5行数据)
10.like 关键字 模糊查询

%a%中间含a
a%以a开头
%a以a结尾
_aa前面有一个字符
a_a后面有一个字符
%%查询全部

where表达式

筛选条件
select (字段,列)from 表 where 条件;
NULL值需要用到is null / is not null

不等于查询 > < >= <=

多条件连接 and or

where 条件 and 条件全部满足有记录
where 条件 or 条件满足其一即可

SQL注入

select * from shop where username=‘qianli’ or ‘a’=‘a’ and password=MD5(任意)

$name qianli’ or ‘a’=‘a’

  1. 防范方法:输入时去掉单引号

简单查询

在某个区间内between and
成绩在60到80之间
select * from exam where score>=60 and score<=80
select distinct sid from exam where between 76 and 80
在某个集合中
select * from exam where score in (76,80,90)
select * from exam where (course,score) in ((‘语文’,80),(‘数学’,90),(‘英语’,76))

分组查询

  1. 函数
  2. 聚合函数 count min max sum avg
  3. 分组 group by
    按sid查询每个学生的平均分
    select sid,avg(score) from exam group by sid
    求男生和女生各有多少人
    select sex,count(sname) from student group by sex
    查询每个班级各有多少学生
    select cid,count(sname) from student group by cid
    查询每个城市的男生女生各多少人
    select city,sex,count(sid) from student group by city,sex
    分组表达式是一个要在分组之后才能够统计出来的,这时候一定要用到having
    如果是对普通字段进行处理,则可以where语句来完成,而且建议where完成
  4. 二次筛选 having
    查询有同班同学的班级
    select cid,count(sid) from student group by cid having count(cid) >=1
    查询每个班级有多少人
    select cid,count(sid) from student group by cid having cid is not null
  5. count统计数量,max和min求最大数和最小数,sum和avg是求和以及平均值
    名字长度为5的学生信息
    select * from student where length(sname)=5
  6. count(字段)
    select count(sid) from student
    select count(distinct cid) from student;
  7. 统计行数
    select count(*) from student
    select max(score),min(score) from exam

多表联合查询

select e.,s. from exam e ,student s where e.sid=s.sid

  1. 每个人每门考试的成绩是多少
    select s.sid,s.sname,e.course,e.score from exam e,student s where e.sid=s,sid and e.score<60

  2. 查询每个分数等级有多少个学生
    select sl,count(distinct sid),group_concat(distinct sid) from exam e join slevel s on e.score between s.minscore and s.maxscore group by sl
    结果

  3. 查询每门科目最低分数学生的学号,姓名,科目和分数
    select s.**,a.* from student s join (select course,min(score) mis,max(sid) mid from exam group by course) a on s.sid=a.mid
    在这里插入图片描述

三表连接
select e.,s. from exam e join studeng s on e.sid=s.sid join classroom c on s.cid=c.classid

自身表连接
select a.**,b.* from family family a join family b on a.fid=b.pid

子查询

查询语句中包含查询语句

  1. 查询年龄最小的女生
    select * from student where birth=(select max(birth) from student where sex =‘女’)
    在这里插入图片描述
  2. 查询总分最低的人是谁
    select * from student s join (
    select sid,sum(score) sc from exam group by sid having sc=(select min(sc) from
    (select sid,sum(score) sc from exam group by sid) a)) b on s.sid=b.sid

    在这里插入图片描述
  3. 查询分数是最低分的学生信息
    select * from student s where sid in(
    select distinct sid from exam where score=(
    select max(score) from exam))
    在这里插入图片描述
  4. 查询每个城市年龄最小的学生信息
    select * from student where (city,birth) in(
    select city,max(birth) from student group by city)
    在这里插入图片描述

外连接

左右连接属于外连接

  1. 左连接:以左边为基准表,右边表去连接左边表,右边没有对应的数据,以空显示
    select s.*,e.** from student s left join exam e on s.sid=e.sid
    左连接
  2. 右连接:同理,与左连接相反
    select s.*,e.** from student s right join exam e on s.sid=e.sid
    右连接
  3. 左右表也可互换,灵活运用为主
  4. 非等值连接
    select st.* e.**,s.* from exam e join slevl s on e.score between s.minscore and s.maxscore join student st on e.sid =st.sid;
    非等值三表连接

UNION ALL 将结果不去重复,简单的上下相加
select sid from student union all select fid from family
在这里插入图片描述

总结:

  1. 简单的单表查询
  2. where子句
  3. 分组(count max min avg sum)
    分组表达式,分组语句的语法和注意事项
    一次筛选和二次筛选的含义和使用
  4. 多表连查
等值连接
自身表连接
外连接
非等值连接
分组和多表的综合使用
  1. 子查询
    from子句中,把查询看成一张表,但是要设别名
    where子句中
子查询用法
单列单行=
单列多行IN
多列多行注意列的对应

delete和truncate的区别

delete可以删除部分数据 ,一行一行删除
truncate不能删除部分,成页的删除
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
KepServerEX 6.10是一款领先的工业自动化通讯服务器软件。它可以与各种设备、控制器和系统进行通讯,并提供数据采集、监控和控制功能。 KepServerEX 6.10具有以下特点和优势: 1. 多种通讯协议支持:KepServerEX 6.10支持众多通讯协议,如OPC、Modbus、SNMP、DNP3等,可以与不同设备进行无缝通讯,实现数据的采集和交换。 2. 高度可扩展性:该软件具有高度可扩展性,可以支持从几个设备到数千个设备的连接,满足不同规模的工业自动化系统需求。 3. 可视化操作界面:KepServerEX 6.10提供直观的可视化操作界面,使用户可以方便地配置和管理通讯服务器,快速建立设备连接和数据传输。 4. 安全性和数据完整性保护:该软件采用最新的安全技术,包括加密和身份验证等,确保通讯过程中数据的安全和完整性。 5. 数据处理和分发功能:KepServerEX 6.10可以进行数据处理和分发,包括数据过滤、数据转换、数据聚合等功能,使得工程师和运维人员可以轻松地进行数据分析和决策。 总结来说,KepServerEX 6.10是一款功能强大的工业自动化通讯服务器软件,它能够支持多种通讯协议,具有高度可扩展性,提供安全的数据传输和处理功能,能够满足不同规模工业自动化系统的需求。使用KepServerEX 6.10可以简化设备的集成和通讯过程,提高系统的效率和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值