千峰JAVA逆战班Day38

Day38

*连接查询:必须是两个或以上表之间且一定有主外键关系,才能进行连接查询

​ I. 内连接:inner join on

SELECT bid,bname,bprice,book.`tid`,tname FROM book INNER JOIN booktype ON book.`tid`=booktype.`tid`;

在这里插入图片描述

​ II. 外连接:主表的内容一定会显示,从表的内容只有主表有的才会显示

​ 1)左外连接:左边的是主表,右边是从表

SELECT bid,bname,bprice,book.`tid`,tname FROM book LEFT JOIN booktype ON book.`tid`=booktype.`tid`

在这里插入图片描述

​ 2)右外连接:右边是主表,左边是从表

SELECT bid,bname,bprice,book.`tid`,tname FROM book RIGHT JOIN booktype ON book.`tid`=booktype.`tid`

在这里插入图片描述

*子查询:在查询语句还还有查询语句
-- 查询工资大于jones的人,子查询是得到Jones的工资
SELECT empno,ename,sal FROM emp WHERE sal>(SELECT sal FROM emp WHERE ename='jones')

在这里插入图片描述

*补充:

​ if(条件,真则返回,假则返回),一般用在需要返回两种结果的时候(也可以用if嵌套,但是最好不用)

SELECT sid,sname,age,IF(sex=0,'女','男') AS '性别' FROM stu

在这里插入图片描述

​ case 字段 when 值 [else 值] then 值 ,当字段的值等会when后的值时,则返回then后的值(跟java中的switch case有点像)

SELECT sid,sname,age,
CASE sex
	WHEN 1 THEN '男'
	WHEN 0 THEN '女'
	WHEN 2 THEN '保密'
	ELSE '未知'
END '性别'
FROM stu

在这里插入图片描述

​ isnull()如果是null 就返回1,如果不是就返回0

SELECT sid,sname,age,ISNULL(sex) '性别' FROM stu

在这里插入图片描述

*JDBC:6个步骤

​ I. 第一步:导包,并且配置好构建路径

在这里插入图片描述

​ II. 第二步:加载驱动

Class.forName("com.mysql.jdbc.Driver");

​ III. 第三步:获取连接

String url = "jdbc:mysql://127.0.0.1:3306/nz2001";//·数据库ip,端口,名字
String name = "root";//·数据库用户名
String pass = "123";//·数据库密码
//·通过DriverManager.getConnection方法获取一个和数据库的连接
Connection con = DriverManager.getConnection(url, name, pass);

​ IV. 第四步:通过连接,获取一个statement对象(操作数据库用的)

Statement stm = con.createStatement();

​ V. 第五步:执行sql语句

String sql1 = "insert into book values(4,'灵域',33,2)";
String sql2 = "UPDATE book SET bprice=55 WHERE bid=1";
String sql3 = "DELETE FROM book WHERE bid=3";
int result = stm.executeUpdate(sql1);//·执行sql语句,并返回一个数据库受影响的行数
int result1 = stm.executeUpdate(sql2);//·只能执行DML语句
int result3 = stm.executeUpdate(sql3);
System.out.println(result+result1+result3);

​ VI. 第六步:关闭连接

stm.close();//·注意关闭顺序,先关小的,再关大的
con.close();

intln(result+result1+result3);


​	VI. 第六步:关闭连接

~~~java
stm.close();//·注意关闭顺序,先关小的,再关大的
con.close();

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值