cgb2105-day05-Oracle 谁践踏了优雅 2021-09-11 02:30 202阅读 0赞 ### 文章目录 ### * * 一,SQL的语法练习 * * \--1,测试 * 二,Oralce的过气技术 * * \--1,虚表 * \--2,序列 * \--3,视图 * \--4,触发器 * 三,JDBC * * \--1,概述 * \--2,开发步骤 * \--3,导入jar包 * 四,入门案例 * 五,练习 * * \--1,利用jdbc向dept表中插入数据 * 六,作业 * * \--1,利用jdbc查询user的信息,如果信息正确就登录,否则提示错误 ## 一,SQL的语法练习 ## ### –1,测试 ### #查询男老师的人数 select count(1),tname from teachers where tsex='男' group by tname #having tsex='男' #having里不能出现没查过的列名 #查询女学生的所有信息 select * from students where ssex='女' #查询每个班里的女学生的人数和名字 select sname,count(1) from students where ssex='女' group by class having count(1)> 1 #查询最年长和年轻的学生 select * from students order by sbirthday #升序,按数字升序 select min(sbirthday),max(sbirthday) from students #查询大于平均年龄的学生 select * from students where year(sbirthday) < ( select avg( year(sbirthday) ) from students ) limit 0,1 ## 二,Oralce的过气技术 ## ### –1,虚表 ### --1. dual虚表 select 1 from dual select 'abc' from dual --select now() from dual select sysdate from dual ### –2,序列 ### 和MySQL里的主键,,,自动递增效果一样。Oracle可以指定开始位置,递增规则。 创建序列 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 1] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 2] 使用序列 --2. 使用序列,自己指定开始位置和变化规则。 select ID_SEQ.CURRVAL from dual --CURRVAL查询当前的值 select ID_SEQ.Nextval from dual --Nextval查询下一次的值 insert into stu(sid) values( ID_SEQ.Nextval ) --只给sid列赋值,其他列都是null select * from stu --sid确实使用了序列的值 insert into stu values('hi',1,'1-1月-2000','ios', ID_SEQ.Nextval) --以后插入新数据时,sid都可以用序列的值 ### –3,视图 ### 创建视图 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 3] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 4] --视图:好处是提高查询效率,缺点是SQL无法优化 --1.创建视图 视图名 create or replace view StuView as --把查询的结果缓存到视图里 select * from stu where sname like '%o%' --2.使用视图 select * from stu where sname like '%o%' --不需要次次写相同的需求了,因为都缓存到视图里了 select * from StuView --直接查视图 ### –4,触发器 ### 创建触发器 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 5] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 6] ![在这里插入图片描述][20210702143036249.png] create or replace trigger Stu_update_Tri before update on stu for each row declare -- local variables here begin --判断,如果满足了条件,就执行触发器的功能 IF :NEW.SSEX>5 THEN :NEW.SSEX := 1; --把新的值设置成1 END IF; end Stu_update_Tri; 使用触发器 --2. 使用触发器 update stu set ssex=10 ; --满足了触发器的条件,ssex改成了触发器规定的1 update stu set ssex=3 ; --不满足触发器的条件 select * from stu ## 三,JDBC ## ### –1,概述 ### 专门用来 通过java程序 连接 数据库。是一套标准,本质上就是用jar包里的各种工具类。 ### –2,开发步骤 ### 导入jar包 连接数据库 发起SQL 处理结果 ### –3,导入jar包 ### ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 7] 创建工程:File-New-Project-选java-next-next-输入工程名-finish 创建lib文件夹:选中工程-右键-new-Directory-起个名字lib-finish 拷贝jar包:从磁盘里找到下载好的jar包,复制粘贴到lib文件夹里 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 8] 编译jar包: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 9] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 10] ## 四,入门案例 ## ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 11] package cn.tedu.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; //测试 jdbc入门案例 public class Test1 { public static void main(String[] args) throws Exception { //1.注册驱动 // Class.forName("com.mysql.cj.jdbc.Driver");//高版本jar包的路径 Class.forName("com.mysql.jdbc.Driver");//低版本jar包的路径 //2,连接数据库(用户名 密码 IP地址 端口号) // String url = "使用的协议 IP地址 端口号 数据库名 " ; String url = "jdbc:mysql://localhost:3306/cgb2105" ; String user = "root" ; //连接数据库的用户名 String pwd = "root" ; //连接数据库的密码 Connection conn = DriverManager.getConnection(url,user,pwd); //3,获取传输器 Statement st = conn.createStatement(); //4,执行SQL -- 查询部门表的所有数据 String sql = "select * from dept"; //executeQuery执行了查询的语句,并且把结果封装给了ResultSet结果集 ResultSet rs = st.executeQuery(sql); //5,解析结果集 //next()判断有没有下一条数据,有返回true,没有返回false while( rs.next() ) { //rs获取数据:根据列的编号 或者 列名 //getInt:字段是整数类型的,直接获取整数值 getString:字段是字符串类型的,直接获取字符串值 // int num = rs.getInt(1);//获取第1列的数据 // String name = rs.getString(2);//获取第2列的数据 // String loc = rs.getString(3);//获取第3列的数据 int num = rs.getInt("deptno");//获取deptno列的数据 String name = rs.getString("dname");//获取dname列的数据 String loc = rs.getString("loc");//获取loc列的数据 System.out.println(num + name + loc); } //6,释放资源 rs.close();//释放结果集 st.close();//释放传输器 conn.close();//释放连接 } } ## 五,练习 ## ### –1,利用jdbc向dept表中插入数据 ### package cn.tedu.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; //测试 jdbc的插入 public class Test2 { public static void main(String[] args) throws Exception { //1,注册驱动 Class.forName("com.mysql.jdbc.Driver");//高版本的jar包驱动路径要改一下 //2,获取连接 String url = "jdbc:mysql://localhost:3306/cgb2105?characterEncoding=utf8"; Connection conn = DriverManager.getConnection(url,"root","root"); //3,获取传输器 Statement st = conn.createStatement(); //4,执行SQL //利用jdbc向dept表中插入数据 String sql ="insert into dept values(null,'java开发部2','北京2')" ; //executeUpdate用来执行增删改的SQL,返回影响行数 int rows = st.executeUpdate(sql); //5,解析结果集 System.out.println("数据插入成功!!!"); //6,释放资源 st.close(); conn.close(); } } ## 六,作业 ## ### –1,利用jdbc查询user的信息,如果信息正确就登录,否则提示错误 ### --1,创建user表,指定字段id name password,并添加数据 --2,通过jdbc查询user表的数据,根据用户名和密码查 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70]: /images/20210911/c2b47f1a16034be9b21ee6c7fa78622d.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 1]: /images/20210911/4b71d6b4821743f2b4c4d0952eebf19b.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 2]: /images/20210911/052e5b0ee4774a0bb43b1b44712eee31.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 3]: /images/20210911/ebe22a2469724c6a8a00fc75d1e3cbb0.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 4]: /images/20210911/a4054ea4ff2d417980e7fe9fe0c39b16.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 5]: /images/20210911/7aff3ebf0c7b4c608280eb5ae5aa380f.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 6]: /images/20210911/32a5a830745f46af8c06f71bffddc581.png [20210702143036249.png]: /images/20210911/0b85b910c15d4e4aa53685473ab6137b.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 7]: /images/20210911/4d42fe4644944c5a8e0e6d3fa8ef8f54.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 8]: /images/20210911/7c3985b2ddc1424da7de3e71c9263d40.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 9]: /images/20210911/2d0dee0059a744fc83b98f856159ebb8.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 10]: /images/20210911/3c30301338924744b82ef50984a15211.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI5MzI4NzY_size_16_color_FFFFFF_t_70 11]: /images/20210911/4795220d768e49f09809008564e89ec4.png
相关 cgb2105-day12 文章目录 一,Spring Boot \--1,创建Spring Boot项目 \--2,配置maven ╰半橙微兮°/ 2021年09月11日 03:10/ 0 赞/ 363 阅读
相关 cgb2105-day09 文章目录 一,js的语句 二,js的数组 三,js的函数 四,Maven \--1,创建Mave 心已赠人/ 2021年09月11日 03:04/ 0 赞/ 387 阅读
相关 cgb2105-day08 文章目录 一,模拟 服务器 解析浏览器发来的数据 二,CSS选择器 三,练习HTML和CSS \--1,创建c 谁践踏了优雅/ 2021年09月11日 03:04/ 0 赞/ 323 阅读
相关 cgb2105-day05-Oracle 文章目录 一,SQL的语法练习 \--1,测试 二,Oralce的过气技术 \--1,虚表 谁践踏了优雅/ 2021年09月11日 02:30/ 0 赞/ 203 阅读
还没有评论,来说两句吧...