篇一:数据的增删改查
数据的增删改查补充练习
1、已知关系数据库表设计如下:
product:productID(产品编号)、productName(产品名称)、productType(产品类型) price:productID(产品编号)、companyID(公司编号)、pre_price(上一次价格)、now_price(现在价格)
说明:
A、有可能很多个公司,每个公司有不同的产品价格; B、浮动价格=上一次价格-现在价格。
请编写SQL语句查询出产品类别为“笔记本”的产品编号、产品名称和浮动价格,
并且以浮动价格由高到低排列的前十名的产品信息。
参考答案:
Select top 10 * from (select product.productID, productName,pre_price-now_price as '
浮动价格'from product,price where product.productID =price.productID )temptable order by '浮动价格' desc
2、表USERS:Number(编号)、Name(姓名)
表中有以下的数据:
1 a 2 b 3 b 4 a 5 c 6 c
要求删除表中的部分记录,当Name列上有相同时,只保留Number这列上值小的那一行,操作结果应如下:
1 a 2 b 5 c
请用一条SQL语句的来实现。
参考答案:
DELETE * FROM Users WHERE Number NOT IN (Select Min(Number) FROM Users GROUP BY Name)
3、表A中有字段B,如何读出字段B存在重复的记录? 参考答案:
Select B from A group by B having count(B) >1
4、SQL Server中的表结构如下。 表g_cardapply:
表g_cardapplydetail
其中,两个表的关联字段为申请单号。 编写SQL语句实现以下功能:
A、查询身份证号码为440401430103082的申请日期;
B、查询同一个身份证号码有两条以上记录的身份证号码及记录个数; C、将身份证号码为440401430103082的记录在两个表中的申请状态均改为07 D、删除g_cardapplydetail表中所有姓李的记录
参考答案:
A、SELECT A.g_applydate FROM g_cardapply AS A INNER JOIN g_cardapplydetail AS B ON A.g_applyno = B.Applyno and B.g_idcard = '440401430103082'
B、SELECT g_idcard, count(g_idcard) FROM g_cardapplydetail GROUP BY g_idcard HAVING Count(g_idcard)>2
C、Update g_cardapplydetail Set g_state = '07' WHERE g_idcard = '440401430103082' Update g_cardapply Set g_state = '07' WHERE g_applyno In (Select g_applyno From g_cardapplydetail WHERE g_idcard = '440401430103082')
D、DELETE FROM g_cardapplydetail WHERE g_name LIKE '李%'
5、表A中的B列有很多数据行,想办法查询出B列的数据值和行编号。
参考答案:
Select Identity(int,1,1) AS C, B INTO #t From A Select * From #t Drop table #t
6、某公司的产品销售系统有一下两个表的数据: 产品表
销售计划表
回答以下问题:
A、是否能删除产品表中的Name2?请说明理由与过程;
B、将销售计划表中M客户的产品名为Name2的销售单价更换为产品表中相应的单价 C、编写求销售计划表中各客户各自的销售总金额的SQL语句; D、编写求客户中销售总金额的最大的客户名的SQL语句;
E、Update table2...数据库为默认设置能不能开始事务?为什么。
参考答案:
A、若两表建立了主外键关系,则不能删除主表中在子表中已经存在的数据项; B、DECLARE @A
SELECT @A = MAX(单价) FROM 产品表 WHERE产品名=’Name2’
UPDATE销售计划表 SET销售单价 = @A WHERE ’Name2’ AND客户名=’M’ C、SELECT客户名,SUM(销售单价*订货数量) FROM销售计划表 GROUP BY 客户名 D、SELECT TOP 1客户名,SUM(销售单价*订货数量)FROM销售计划表 GROUP BY客户名 ORDER BY SUM(销售单价*订货数量)
E、开始,单个语句为自动事务。
篇二:增删改查
考试复习
AdminDao.java
package dao;
import java.sql.SQLException;
public class AdminDao extends BaseDao {
//管理员登录方法 public boolean checkLogin(String name, String pass) {try {conn=getConn(); pstat=conn.prepareStatement("select * from admin where admin_name=? and admin_pass=?");
pstat.setString(1, name); pstat.setString(2, pass); rs=pstat.executeQuery(); if(rs.next()){ return true;
}
} } } catch (SQLException e) {// TODO Auto-generated catch block e.printStackTrace(); }finally{ } return false; closeAll(conn, pstat, rs);
BaseDao.java
package dao;
import java.sql.*;
public class BaseDao {
public Connection conn=null; public PreparedStatement pstat=null; public ResultSet rs=null; public String driver="oracle.jdbc.driver.OracleDriver"; public String url="jdbc:oracle:thin:@localhost:1522:accp11g"; public String name="yinzhangrui"; public String pass="123"; //连接数据库 public Connection getConn(){try { } Class.forName(driver); conn=DriverManager.getConnection(url,name,pass); // TODO Auto-generated catch block e.printStackTrace(); // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { } catch (SQLException e) {
}
}return conn; //关闭数据库 public void closeAll(Connection conn,PreparedStatement pstat,ResultSet rs){ } if(rs!=null){ } if(pstat!=null){ } if(conn!=null){ } try { } conn.close(); // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { try { } pstat.close(); // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { try { } rs.close(); // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) {
StudentDao.java
package dao;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import entity.Student;
public class StudentDao extends BaseDao {
//查询所有学员信息 public List<Student> selectAll(){List<Student> stuList=new ArrayList<Student>(); Student stu=null; try {conn=getConn(); pstat=conn.prepareStatement("select * from student"); rs=pstat.executeQuery(); while(rs.next()){ stu=new
Student(rs.getInt("student_id"),rs.getString("student_name"),rs.getString("student_pass"),rs.getString("student_phone"),rs.getString("student_address"));
}//根据id删除学员信息 try { conn=getConn(); pstat=conn.prepareStatement("delete from student where student_id=?"); pstat.setInt(1, Integer.parseInt(id)); int result=pstat.executeUpdate(); if(result>0){ } // TODO Auto-generated catch block e.printStackTrace(); return true;} // TODO Auto-generated catch block e.printStackTrace(); stuList.add(stu); } catch (SQLException e) { }finally{ } return stuList; closeAll(conn, pstat, rs); public boolean removeStu(String id) { } catch (SQLException e) { }finally{ } return false; closeAll(conn, pstat, rs);
//添加学员信息 public boolean createStu(Student stu) {} //根据id查询学员信息 public Student selectStuById(String id){ Student stu=null; try { conn=getConn(); pstat=conn.prepareStatement("select pstat.setInt(1, Integer.parseInt(id)); rs=pstat.executeQuery(); if(rs.next()){ stu=new * from student where try {conn=getConn(); pstat=conn.prepareStatement("insert into student values(?,?,?,?,?)"); pstat.setInt(1, stu.getStudent_id()); pstat.setString(2, stu.getStudent_name()); pstat.setString(3, stu.getStudent_pass()); pstat.setString(4, stu.getStudent_phone()); pstat.setString(5, stu.getStudent_address()); int result=pstat.executeUpdate(); if(result>0){ } return true; } catch (SQLException e) {// TODO Auto-generated catch block e.printStackTrace(); }finally{ } return false; closeAll(conn, pstat, rs); student_id=?");
Student(rs.getInt("student_id"),rs.getString("student_name"),rs.getString("student_pass"),rs.getString("student_phone"),rs.getString("student_address"));
} } catch (SQLException e) {// TODO Auto-generated catch block e.printStackTrace(); }finally{
篇三:增删改查思路及步骤
1.建数据库 表
主键 自增或者varchar
自增 选择自增
uuid() 36位字符串 例如 :25cd098d-3a53-11e4-ad40-0021cc6fa865
替换 “-” REPLACE(UUID() ,'-','')
2.javaBean
根据数据库表 建立 javaBean
--------------------------------------------------------查询开始-----------------------------------------------------
3.listServlet >> 查询数据>>业务逻辑层 (service , imp) >> 数据持久层(dao,imp)>>传输数据>>跳转
listServlet 继承 httpServlet >> 覆盖service()>>调用service>>dao
protected void service(HttpServletRequest req, HttpServletResponse resp)
注意:web.xml 要配置好
业务逻辑层service.query
数据持久层dao.query
传输数据:req.setAttribute(xxx,xxx);
跳转:req.getRequestDispatcher("地址").forward(req, resp);
4.jsp 查询(list/query/xxx)
表格 显示字段 显示出来
注意: <c:forEach> <c:if> <c:url> <c:choose>
--------------------------------------------------------查询完毕
-----------------------------------------------------
--------------------------------------------------------增加开始-----------------------------------------------------
1.先在查询的jsp里 写一个增加入口(add.jsp)
点击增加>>add.jsp>>填写内容>>提交表单>>进入AddServlet >>数据操作 >>跳转
点击增加:1.js跳转 2.超链接<a href="xxx">;
add.jsp : 写表单 做验证 提交到正确的servlet
AddServlet 1.获取表单提交的数据
2.将数据封装成javaBean对象
3.调用service 并将javaBean传入
4.调用dao并将javaBean传入
5.做数据插入操作
1 ) sql =“insert into tableName (字段1,字段2,字段......) values(值1,值2,值...... )”
2) 获取数据库连接Connection
3) 编译sql 使用: ps=Connection. prepareStatement(sql)
4) 绑定数据???? 执行sql 使用: ps. executeUpdate();
5) 关闭 rs ps conn;返回service>> AddServlet
跳转 同上
--------------------------------------------------------增加完毕-----------------------------------------------------
1.先在查询的jsp里 写一个删除入口
步骤:.进入servlet>>获取id>>数据操作(删除)
.进入servlet
1.String id =req.getParameter("id");
2.service.delete(id);
3.dao.delete(id)
4. 做数据删除操作
1 ) sql =delete from tableName where id ='id' ; sql =delete from tableName where id =? ;
2) 获取数据库连接Connection
3) 编译sql 使用: ps=Connection. prepareStatement(sql)
4) 绑定数据 ps.setString(1,id);
5 执行sql 使用: ps. execute ();
6) 关闭 rs ps conn;返回service>> DeleteServlet
跳转列表 (req.getRequestDispatcher("地址listServlet").forward(req, resp))
--------------------------------------------------------删除完毕-----------------------------------------------------
1.先在查询的jsp里 写一个修改入口
进入回显
一.
进入showServert>>数据查询操作>>跳转至update.jsp
1.String id =req.getParameter("id");
2.service.findOne(id);
3. 对象2= dao. findOne (id)
4. 传递数据 req.setAttriBute("对象",对象2);
跳转至update.jsp
req.getRequestDispatcher("/update.jsp").forward(req, resp);
二.类似与添加 区别(回显数据)
三 执行修改操作
四 跳转 list
《增删改查》
由:免费论文网互联网用户整理提供,链接地址:
http://m.csmayi.cn/show/171024.html
转载请保留,谢谢!
- 上一篇:善心作文
- 下一篇:社区服务活动记录