济宁实训第六天&&MySQL笔记

单表查询

– 1 查询所有学生信息
SELECT * FROM student;
– 2 查询学生信息,显示学生姓名,电话,性别
SELECT name,phone,sex FROM student;
– 3 查询学生在哪些班级中,显示班级编号 DISTINCT对查询结果去重
SELECT DISTINCT cid FROM student;
– 4 把所有学生成绩加5分
SELECT socre as 加分前的成绩,socre+5 加分后的成绩 FROM score;
– WHERE
– 1 查询学号为4的学生信息
SELECT * FROM student WHERE stuid=4;
– 查询考试成绩在60分到80分的学生学号,分数
SELECT stuid,socre FROM score WHERE socre>=60 AND socre<=80;
– BETWEEN AND 在两个值之间同等于 小于等于 大于等于
SELECT stuid,socre FROM score WHERE socre BETWEEN 60 and 80;
SELECT stuid,socre FROM score WHERE socre NOT BETWEEN 60 and 80;
– in
– 查询成绩为69 79 71的学生学号,分数
– 只要满足in里面其中一个值,就能查询出来
SELECT stuid,socre FROM score WHERE socre=69 OR socre=79 OR socre=71;
SELECT stuid,socre FROM score WHERE socre in(69,79,71);
– LIKE 像模糊查询
– %代表多个字符

– 查询姓张的学生信息
SELECT * FROM student WHERE name LIKE ‘张%’;
– 查询以4结尾的学生信息
SELECT * FROM student WHERE name LIKE ‘%四’;
– 查询姓名中带m的学生信息
SELECT * FROM student WHERE name LIKE ‘%m%’;
– —_代表一个字符
SELECT * FROM student WHERE name LIKE ‘张 _’;
– IS NULL
SELECT * FROM score WHERE socre IS NULL;

聚合函数

– AVG( expr): 平均值
– 求科目编号是1 的平均成绩
SELECT AVG(socre) 平均成绩 FROM score WHERE subid=1;
– 统计科目编号为1的学生数量
SELECT COUNT(*)FROM score WHERE subid=1;
–SUM(expr)
SELECT SUM(socre) FROM score;
– MAX(expr) MIN(expr)
– 求score成绩表中科目编号为2的学生的最高成绩和最低成绩
SELECT MAX(socre),MIN(socre) FROM score WHERE subid=2;

分组

– 获取各科目的平均成绩
– 1 查询有哪些科目
SELECT DISTINCT subid FROM score;
– 2 根据科目求平均分
SELECT AVG(socre) FROM score WHERE subid=1;
SELECT AVG(socre) FROM score WHERE subid=2;
– 每 个 带聚合函数的都会分组
SELECT AVG(socre) FROM score GROUP BY stuid;
– 在 sqlserver 中 不能单独使用,字段要在前面写上
SELECT AVG(socre),subid FROM score GROUP BY stuid;

having

– having 查询出所有成绩加五分之后成绩还是小于60的学生学号
– WHERE 针对表中真正存在的列
– HAVING 针对查询结果
SELECT stuid FROM score WHERE socre+5<60;
SELECT stuid ,socre+5 AS 加分后的成绩 FROM score HAVING 加分后的成绩 <60;
SELECT stuid,AVG(socre) FROM score GROUP BY subid HAVING AVG(socre)>70;

order by

– 员工大会
– 排名不分先后
– 根据首字母
– ORDER BY 分为 ASC升序默认是升序 DESC降序 可以写多个字段
SELECT * FROM student ORDER BY cid,birthday asc;

limit(常用在分页)

– 查询年龄最大的五名学生信息
– LIMIT(数据的坐标,显示的条数)数据的坐标从0开始
SELECT * FROM student ORDER BY birthday LIMIT 0,5;

多表查询

1、交叉连接:
– 交叉连接
– 多表查询 查询李四所在班级,显示班级编号,姓名,班级名
SELECT * FROM student,classinfo WHERE cid=cid1;
– 步骤:
– 1、把两个表连成一个大表,即笛卡尔积
SELECT student.cid,name,cname FROM student,classinfo
– 2、确定连接条件
WHERE student.cid=classinfo.cid
– 3、确定其他筛选条件
and name=‘李四’

等值连接:

–example(等值连接): 查询张三c++考试成绩,显示学生姓名、班级名、学号、成绩、科目名

SELECT student.name,classinfo.cname,student.stuid,score.socre,subject.subname FROM student,classinfo,score,subject
WHERE classinfo.cid=student.cid AND subject.subid=score.subid AND student.stuid=score.stuid
AND name=‘张三’ AND subname=‘C++’

内连接:

– 查询李四所考科目的平均成绩,显示姓名,平均成绩:
– 1、把两个表连成一个大表
SELECT name,AVG(socre) FROM student INNER JOIN score
– 2、连接条件
ON student.stuid=score.stuid
– 3、筛选条件
WHERE name=‘李四’
SELECT student.name,classinfo.cname,student.stuid,score.socre,subject.subname FROM student INNER JOIN classinfo
ON student.cid=classinfo.cid
INNER JOIN score
ON student.stuid=score.stuid
INNER JOIN subject
on score.subid=subject.subid
WHERE name=‘张三’ AND subname=‘C++’

JDBC

1、connection:连接对象,负责应用程序和数据库建立连接,只要连接成功以后,才能向数据库发生命令,但是在创建链接之前,需要制定数据库的连接地址,用户名和密码
2、statement:执行对象,负责发送sql语句,用它执行时需要拼接sql,使用弊端,使用繁琐,容易出错,容易引起sql注入
3、DriverManager:创建连接对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fisherfishfffff

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值