java:Review(Oracle-HTML-CSS)
20170708_review:
1.oracle:
对表的操作:
使用命令行建立一张表:create table 表名 (列名 列名的类型 primarty key, ....);
alter table 表名 add constraints pk_表名_列名 primary key(需要建立的主键列名);
删除一张表:drop table 表名;
truncate(清空表中的数据,但是表不被删除)
修改一张表:alter table 表名(....);
查询一张表:desc 表名;
对数据的操作:
查询:select * from 表名;
删除:delete from 表名;
修改:update 表名 set 列名=列名对应的值, ....;----> update teacher set id = 1, name = '张三' where id=4;
新增:insert into 表名 (列名1,列名2,列名3,....) values(列名对应的值);(values中的值必须要列名顺序对应)
insert into teacher (id,name,age) values(1,'zhangsan', 29);
多表查询(简单):
select * from 表名1,表名2;----->select * from 表名1 t1,表名2 t2 where t1.列名 = 'xxxx';(select * from teacher t, students s where t.id=5/ where t.id = s.id)------> 把需要显示的数据查询出来
select t.name, s.name, t.age, .... from teacher t, students s;----->针对列取一个别名(as),as通常情况下可以省略
select t.name teacher_name, t.age teacher_age, s.name student_name from teacher, students;
子查询:
in(范围):select * from teacher where id in(1,2,3,4,5,...);
(前提条件是:查询出姓名为张三的学生id,通过这个id找到id相等的老师相关信息)and(并且)/or(或者): select * from teacher where id = (select id from students where name = 'zhangsan');------>年龄必须为35岁
select * from teacher where id = (select id from students where name = 'zhangsan') and age = 35;---->
或者年龄为35岁select * from teacher where id = (select id from students where name = 'zhangsan') or age = 35;
any(任何一个进行匹配) select * from teacher where id > any(select id from students);
all(所有进行匹配) select * from teacher where id > all (select id from students);
函数:
group by(分组--->group by后的字段,必须要出现在select关键字后面,也就是必须要查询出来): select age from teacher group by age;--->group by一般配合count来使用(分组后,每一组数据条数) select name, count(1) counts from teacher group by name;---->分 组函数可以配合where使用,但是必须要放在where关键字后面
select name from teacher where id > 2 group by name;---->分组以后再进行过滤(having),必须要放在group by的后面,就相当于 where关键字 select name from teacher group by name having id >3;
聚合函数:
max,sum,min,**avg(平均值)
max:select max(salary) max_salary from teacher where id > 2;
min:select min(salary) max_salary from teacher where id > 2;
sum:select sum(salary) sum_salary from teacher;
avg(数据类型必须要为number):select avg(age) from teacher;---->如果使用平均值会出现小数的存在
ceil(向上取整),floor(向下取整),round(四舍五入) select round(avg(age)) from teacher;---->
如果age列中的数据有null值(nvl(param1,param2)) select round(avg(nvl(age,0))) from teacher;
日期函数:SimeDateFormat:
sysdate:系统当前日期(服务器的当前日期)
to_date(,'yyyy-mm-dd hh:mi:ss'):hh代表12小时制---->to_date(,'yyyy-mm-dd 24hh:mi:ss'):hh就代表了24小时制
把日期格式的字符串转换为日期格式
to_char(,'yyyy-mm-dd hh:mi:ss'):
把日期转换为日期格式的字符串
*order by(给查询出的数据结果集进行排序,默认是升须asc):
select * from teacher order by age desc;(降序)
如果order by和where语句连用-->order by必须要放到where的后面
如果order by和 group by连用--->order by必须要放到group by的后面
三个一起连用:where group by (having) order by;
连接查询:
full join(全连接):不以任何一张表为基准,把所有数据全部查询出
**inner join(内连接,inner可以省略):只有两张表数据对应的时候才查询出,如果一方没有数据就不显示
**left join(左连接):以左表为基准关联右表,如果左表没有数据就不显示,如果右表没有数据就显示为一行null
**right join(右连接):和左连接原理一样,只是以右表为基准
cross join(交叉连接):<====>select * from teacher, students;
natural join(自然连接,两张表的列名最多只能有一个相等):和全连接类似;
表之间的关系:(hibernate相关):
一对一:两张表一一对应(身份证号和个人);
一对多:其中一张表的一条数据,可以对应另外一张表的多条数据(用户和订单);
多对多(存在三张表):两张表相互映射,关系表既没有主键又没有外键(列:分别放的是两张表的id)(商品和订单)
事务:
transaction
是把oracle数据一致性转换为另一种数据一致性
只有增删改才会开启事务
状态:
提交:把改变的数据永久保存
回滚:撤销,把数据恢复到未改变前的状态
分页:
oracle:
teacher为例:(以每5条数据为一页)
select t2.*, rownum as rm2 from (select t1.*, rownum as rm1 from (select * from teacher) t1 where rownum <=5n) t2 where t2.rm1 >= 5n-4; sql中的5代表每页显示的条数,n代表当前的页数,4代表每页显示的条数-1
mysql:
limit:有两个参数,第一个参数代表了当前页面的第一条数据的下标(如果是第一页从0开始),第二个参数代表每页显示的条数
jdbc:
// 所有都要java.sql的包
// 导入驱动jar
// 加载驱动(反射技术)
Class.forName("oralce.jdbc.driver.OracleDriver");
// 获取连接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost/127.0.0.1:1521:orcl","数据库的用户名","密码");
// 获取预编译的preparedstatement
PreparedStatement ps = conn.prepareStatement("select * from teacher");
// 执行sql语句
// 如果是查询
ResultSet rs = ps.executeQuery();
/ 遍历结果集
// 定义一个List集合来接收查询出的结果集
List<Teacher> list = new ArrayList<Teacher>();
while(rs.next()) {
// 创建一个封装的Teacher对象
Teahcer teacher = new Teacher();
teacher.setId(rs.getInt("id"));
teacher.setName(rs.getString("name"));
teacher.setAge(rs.getString("age"));
list.add(teacher);
}
// 如果为查询,就可以不释放资源,也就是可以不调用close方法
// 如果是增删改
// 返回的int类型就代表了受影响的行数
String sql = "insert into teacher(id, name, age) values(?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1,"1");
rs.setString(2,"zhangsan");
ps.setInt(3, 32);
int result = ps.executeUpdate();
if(result > 0) {
//操作成功
} else {
// 操作失败
}
// 释放资源顺序:释放结果集--->然后释放预编译的statement--->最后释放连接
if(rs != null) {
}
if(ps != null) {
}
if(conn != null) {
}
jdbc的封装:
提取出不常修改的参数:
private static fianl String DRIVER="";
private static final String URL = "";
private static final String USERNAME= "";
private static final String PASSWORD = "";
private Connection conn = null;
private PreparedStatement ps = null;
public ResultSet rs = null;
// 所有都要java.sql的包
// 导入驱动jar
// 加载驱动(反射技术)
// 开始封装
//获取连接的方法
private void getConnection() {
Class.forName(DRIVER);
// 获取连接
conn = DriverManager.getConnection(URL,USERNAME,PASSWORD);// 给conn赋值
}
// 释放资源的方法
public void closeAll() {
if(rs != null) {
}
if(ps != null) {
}
if(conn != null) {
}
}
// 如果是查询
public ResultSet executeQuery(String sql, String[] pramas) {
getConnection();
// 获取预编译的preparedstatement
select * from teacher where id < ? and age = ?;
ps = conn.prepareStatement(sql);
if(pramas != null && pramas.length > 0) {
ps.setString(i+1, params[i]);
}
}
// 执行提交sql的时候,一定要放在逻辑判断的外部
rs = ps.executeQuery();
return rs;
}
//一定不能调用closeAll方法
// 如果为增删改
public int executeUpdate(String sql, String[] pramas) {
getConnection();
// 获取预编译的preparedstatement
select * from teacher where id < ? and age = ?;
ps = conn.prepareStatement(sql);
if(pramas != null && pramas.length > 0) {
for(int i = 0; i < params.length; i++) {
ps.setString(i+1, params[i]);
}
}
// 执行提交sql的时候,一定要放在逻辑判断的外部
int result = ps.executeUpdate();
return result;
// 释放资源
closeAll();
}
mysql和oracle的区别:
在mysql中如果一个列设置为不能为null,依然可以存入null的值,oracle则不行
在mysql中如果是字符串,既可以使用单引号也可以使用双引号,在oracle中只能使用单引号
2.HTML:
form表单:
action属性:跳转到某个页面,某一个Java类中
input:
type属性:text(文本),password(密码),submit(提交),button(按钮),checkbox(多选框),radio(单选框),reset(重置)
checkbox:多选框,最常用的地方兴趣爱好
radio:单选框(配置name属性,把name的值相等分为一组)
select:下拉列表
option:每一个下拉选项:<option value="传递的时候需要的值">option所需要显示的值</option>
table(表格):
thead(设置一个标题):
tr(代表了每一行)-->th(标题内容)
tbody(设置了标题对应的内容):
tr--->td(内容显示的数据)
<table>
<thead>
<tr>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
</tr>
</tbody>
</table>
ul,ol(列表):
ul:是无序的列表
ol:是有序的列表
<ul>
<li></li>
</ul>
<h1~6></h1~6>标题
<p></p>段落
<span></span>
<img src="" alt="如果图片加载失败,就显示alt中的内容" />
<a href=""></a>链接标签,href:跳转的地址,跳转到页面,也能跳转到Java类
<div></div>块,最常用到的是盒子模型-->div+css布局(至今最流行的布局方式)
<br />换行
<hr />实线的分割线
3.css:
color设置一个字体颜色
background背景
border边框
list-style-type:设置一个列表的样式none,circle,....去掉原点
a:hover:鼠标悬浮的时候会显示的一种状态
a:active:当点击的时候显示的一种状态
a:visited:当点击过后显示的一种状态
a:link:默认第一次的显示状态
执行顺序:a:link--->a:hover---->a:visited---->a:active 错或 a:link--->a:visited---->a:hover---->a:active
如果顺序错乱,就达不到想实现的效果
text-decoration:none;去掉下划线,underline加上下划线,through-line:贯穿线
text-align:设置文本 center:居中
position:定位 fixed:定位(定位在显示器的某一个固定位置),absolute:绝对定位,active:相对定位
display:none元素隐藏(不占据任何位置),visibility:hidden:元素隐藏(占据页面的一定位置)
display:inline-block;强制元素不换行
display:block;强制元素换行
float(浮动):
left,right左浮动和右浮动
margin:外边距(两个相邻元素之间的距离)
padding:内边距(一个元素包含另一个元素,这两个元素之间的距离(填充))
选择器:
id(每个页面只能出现一次,唯一性),class,标签
id='div1':#div1
class="div2":.div2
div标签:div
子元素选择器:
div p {
}
div>p {
}
相邻元素选择器:(只能选中和他相邻的后面第一个元素)
div+p {
}
后续元素选择器:(选中所有相邻的元素)
div~p {
}
布局:
div+css
<div id="total">
<div id="header"></div>
<div id="content"></div>
<div id="footer"></div>
</div>
框架:
iframe:
<iframe src="top.html"></iframe>--->把top.html导入到当前页面
frameboeder:0/no;去掉边框
width:定义一个宽度
height:定义一个高度
frameset:不能在body标签中
<frameset rows="100,*(自适应)">
<frame src="top.html" name="起了一个别名" />
<frameset cols="300,*">
<frame src="left.html" name="left" />
<frame src="right.html" name="right" />
</frameset>
<a href="student_manage.html" target="right"><li>学生管理</li></a>
java:Review(Oracle-HTML-CSS)的更多相关文章
- Java Review (一、Java开发环境)
@ 目录 Java程序运行机制 高级语言运行机制 编译型语言 解释型语言 Java运行机制和JVM 编写 编译 运行 Java开发工具包 JDK JRE JDK.JRE与JVM HelloWord 编 ...
- Java备份Oracle数据库
Java备份Oracle数据库 Java线程.Process.ProcessBuilder 2010 年 6 月 20 日 文章内容描述了使用Java执行外部Oracle导出命令备份数据库功能的示例, ...
- Java操作Oracle
public class DBCon { // 数据库驱动对象 public static final String DRIVER = "oracle.jdbc.driver.OracleD ...
- java向oracle数据库中插入当前时间
public class Test{public static void main (String args []){ java.util.Date a = new java.util.Date(); ...
- Oracle的学习三:java连接Oracle、事务、内置函数、日期函数、转换函数、系统函数
1.java程序操作Oracle java连接Oracle JDBC_ODBC桥连接 1.加载驱动: Class.forName("sun.jdbc.odbc.JdbcodbcDriver& ...
- java连接oracle数据库的实现代码
package connectionOracleDatabase; import java.sql.Connection; import java.sql.DatabaseMetaData; impo ...
- Java调用Oracle存储Package
Oracle的包Package中可以有很多存储,可通过该包的总调入口在java中直接调用. //java调用oracle的package代码 public boolean cal() throws j ...
- Oracle - java创建Oracle 的触发器
Oracle - java创建Oracle 的触发器 今天碰到这个问题,遇到点问题,到这来 总结一下解决的办法, 需求,为一个用户当中的表增加一个自动增长列,我还没有学Oracle 的这部分,只是简单 ...
- Java调用oracle存储过程通过游标返回临时表数据
注:本文来源于 < Java调用oracle存储过程通过游标返回临时表数据 > Java调用oracle存储过程通过游标返回临时表数据 项目开发过程中,不可避免的会用到存储过程返回结 ...
- Java读取oracle数据库中blob字段数据文件保存到本地文件(转载)
转自:https://www.cnblogs.com/forever2698/p/4747349.html package com.bo.test; import java.io.FileOutput ...
随机推荐
- mysql向表中某字段前后追加一段字符串 concat(), trim(), ltrim(), rtrim(), repeat()
1.mysql向表中某字段后面追加一段字符串:update table_name set field=CONCAT(field, '分隔符', str);//'分隔符',可以为空,也可以省略updat ...
- 第三次java测验1
设计思想: 输入一个字符串,然后将字符串倒置,比较字符串第i位上的字符与倒数第i位上的字符是否相同,如果都相同则字符串是回文:否则字符串不是回文. 源代码: package java3; import ...
- C++ Primer 第 5 版 习题参考答案
从 5 月初 - 8 月 16 日,每天基本都在啃 C++ 的语法.起初直接看C++ Primer 中文版(第 5 版),发现后边的章节看着很吃力.所以就转而看了清华大学郑莉老师和李超老师的视频C++ ...
- django前戏
Django前戏: 1.软件开发: C/S 客户端与服务端 HTTP(超文本传输协议):协议的由来,如同sql语句由来一样.为了开发使用方便所形成的统一接口统一规范 学习Django之前我们先来了解下 ...
- 使用ajax上传图片,并且使用canvas实现出上传进度效果
前端代码: <%@ page contentType="text/html;charset=UTF-8" language="java" %> &l ...
- Burpsuite的Intruder模块发现敏感目录
提前配置好浏览器的代理设置,并且成功访问了目标地址(这里是http://192.168.146.133/WackoPicko) 1.在burpsuite的proxy栏目中,找到对WackoPicko路 ...
- 数组遍历 forEach 方法
数组的遍历 遍历数组,将数组中的所有元素都取出来. 使用for 循环执行数组的索引(length-1)相同的次数. var arr=["1", "5", &qu ...
- Editplus注册码生成代码
function generate_editplus_regcode(username) { var list = [0,49345,49537,320,49921,960,640,49729,506 ...
- java实现大文件上传
文件上传是最古老的互联网操作之一,20多年来几乎没有怎么变化,还是操作麻烦.缺乏交互.用户体验差. 一.前端代码 英国程序员Remy Sharp总结了这些新的接口 ,本文在他的基础之上,讨论在前端采用 ...
- 【WC2016】论战捆竹竿
已经快三周了啊--终于把挖的坑填了-- 首先显然是把除了自身的所有border拿出来,即做 \(\left\{ n - b_1, n - b_2, \dots, n - b_k, n \right\} ...