数据库的增删改查(精)
Mybatis实现数据的增删改查(CRUD)(精)

Mybatis实现数据的增删改查(CRUD)什么是 MyBatis?MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。
MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索。
MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
MyBatis下载:https:///mybatis/mybatis-3/releasesMybatis实例对一个User表的CRUD操作:User表:-- ------------------------------ Table structure for `user`-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (`id` int(11NOT NULL AUTO_INCREMENT,`userName` varchar(50 DEFAULT NULL,`userAge` int(11 DEFAULT NULL,`userAddress` varchar(200 DEFAULT NULL,PRIMARY KEY (`id`ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;-- ------------------------------ Records of user-- ----------------------------INSERT INTO `user` VALUES ('1', 'summer', '30', 'shanghai';INSERT INTO `user` VALUES ('2', 'test2', '22', 'suzhou';INSERT INTO `user` VALUES ('3', 'test1', '29', 'some place';INSERT INTO `user` VALUES ('4', 'lu', '28', 'some place';INSERT INTO `user` VALUES ('5', 'xiaoxun', '27', 'nanjing';在Src目录下建一个mybatis的xml配置文件Configuration.xmlxml version="1.0" encoding="UTF-8" ?>DOCTYPE configuration PUBLIC "-////DTD Config 3.0//EN" "/dtd/mybatis-3-config.dtd"><configuration><typeAliases><typeAlias alias="User" type="er"/>typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/><property name="username" value="root"/><property name="password" value="admin"/>dataSource>environment>environments><mappers><mapper resource="com/mybatis/test/User.xml"/>mappers>configuration>定义User mappers的User.xml配置文件xml version="1.0" encoding="UTF-8" ?>DOCTYPE mapper PUBLIC "-////DTD Mapper 3.0//EN""/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.mybatis.test.IUserOperation"><select id="selectUserByID" parameterType="int" resultType="User">select * from `user` where user.id = #{id}select><select id="selectUsersByName" parameterType="string" resultType="User">select * from user where erName = #{userName}select><insert id="addUser" parameterType="User"useGeneratedKeys="true" keyProperty="id">insert into user(userName,userAge,userAddressvalues(#{userName},#{userAge},#{userAddress}insert><update id="updateUser" parameterType="User">update user setuserName=#{userName},userAge=#{userAge},userAddress=#{userAddress} where id=#{id}update><delete id="deleteUser" parameterType="int">delete from user where id=#{id}delete>mapper>配置文件实现了接口和SQL语句的映射关系。
数据库增删改查操作(2)(精)

数据库增删改查操作(2)一、案例描述程序运行的时候加载的界面如图1,包括添加、删除、修改和查询所有数据按钮,并实现相应功能。
图1 图2单击“添加”按钮,插入一条记录,效果如图2;单击“查询全部”按钮,查询得到全部记录,并将结果打印出来,如图3;单击“删除”按钮,删除指定记录,如图4;单击“修改”按钮,修改指定记录,如图5。
图3图4 图5二、知识链接(4)ContentValues类● ContentValues类和Hashtable类较为相似,它用于存储一些键值对,可以被ContentResolver类处理,但是它存储的键值对当中的键是一个String类型,而值都是基本类型。
ContentValues类作为一个重要的参数在SQLiteDatabase中的insert,update等方法中使用。
● ContentValues类有3种构造方法,格式分别如下:√ ContentValues(:使用默认的初始大小来创建一个空集。
√ ContentValues(int size):使用指定的初始大小size值来创建一个空集。
√ ContentValues(ContentValues from):复制给定的集合from,用于创建一组集合数值。
● ContentValues类的常用方法介绍如下:√ void clear(:清空集合中的所有数值。
√ boolean containsKey(String key):如果集合中包含了指定的关键字key,则返回true,否则返回false。
√ Object get(String key):返回关键字key对应的数值,返回数值类型为Object,通常还需要进行强制类型转换。
√ void put(String key,Integer value):将一个值加入到集合中,其中参数key表示集合中的关键字;参数value表示要添加的数据。
ContentValues类还有很多put方法,主要的区别是第二个参数为其他数据类型,例如:put(String key,Byte value)、put(String key,Float value)、put(String key,Short value)、put(String key,byte[] value)√ void remove(String key):将某个关键字key的数值从集合中删除。
使用JSPSERVLETJDBC实现对数据库的增删改查(详细)(精)

public void setCurrentRecord(int currentRecord{
this.currentRecord=currentRecord;
}
//获得和设置每页记录数量
public int getPageSize({
return pageSize;
}
public void setPageSize(int pageSize{
private int totalRecord;
private int currentRecord;
private int pageSize=8;
//获得和设置当前页
public int getCurrentPage({
return currentPage;
}
public void setCurrentPage(int currentRecord,int pageSize{
String major=request.getParameter("major";
conn=connect(;
stat=conn.createStatement(;
stat.execute("insert into student(id,name,age,gender,major values("+id+",'"+name+"',"+age+",'"+gender+"','"+major+"'";
// TODO Auto-generated catch block
Java连接MySql数据库,并且实现增删改查功能(精)

Java连接MySql数据库,并且实现增删改查功能!这是我最近写的一个连接MySql数据库的一个例子,主要实现了插入,删除,更新,选择操作,用的环境是 j2sdk1.4.2_08,Eclipse3.1。
下面我把在Eclipse3.1下怎样配置数据库连接信息简单说一下。
1.启动Eclipse3.1。
2.建立一个Java project就叫DbConnect 吧,再在该Project下建立一个新类也叫DbConnect 吧。
3.右击DbConnect.java文件点import,选择Archive file然后选择你的mysql-connector-java-3.1.8-bin.jar文件,点Finish。
你会看到有好些文件被加载进来,OK这就是连接MySql所需的驱动信息。
如果到了这里你都成功的话那么恭喜你,你已经成功一半了!:)4.接下来把我下面的代码copy到你的Java文件中,修改相关的数据库连接信息运行一下。
OK?我说一下那个mysql-connector-java-3.1.8-bin.jar文件,其实这就是一个MySql的驱动,各数据库厂商提供了不同的适用于JDBC的驱动使得在Java中连接数据库非常简单。
这里我就不多说了,以后我会写篇专门介绍数据库驱动的文章。
关于MySql的驱动还有更新版本的,你需要到MySql的网站上去下载,这个网上到处都是,我就不多说了。
下面看程序,有些地方我写了详细的注释应该能看懂。
这个类是非常有特色的,在每个方法的传人参数和返回值不变的情况下,希望高手能提出改进意见。
多指教,谢谢!/*** 数据库连接、选择、更新、删除演示*///import java.sql.*;import java.sql.Connection;import java.sql.Statement;import java.sql.ResultSet;import java.sql.DriverManager;import java.util.*;public class DbConnect{/////////////////////////////////////////———–>>>数据成员 and 构造函数private Connection dbconn;private Statement dbstate;private ResultSet dbresult;DbConnect({dbconn = null;dbstate = null;dbresult = null;}/////////////////////////////////////////———–>>>类方法public void print(String str//简化输出{System.out.println(str;}//end print(…/*** 连接MySql数据库* @param host* @param port* @param dbaName* @param usName* @param psw* @return bool值,连接成功返回真,失败返回假*/public boolean dbConnection(String host, String port, String dbaName, String usName, String psw{String driverName = "com.mysql.jdbc.Driver";//"org.gjt.mm.mysql.Driver"两个驱动都可以用String dbHost = host;//数据库的一些信息String dbPort = port;String dbName = dbaName;String enCoding = "?useUnicode=true&characterEncoding=gb2312"; //解决MySql中文问题,要连续写不能空格String userName = usName;String Psw = psw;String url = "jdbc:mysql://" + dbHost + ":" + dbPort + "/" + dbName + enCoding;try{Class.forName(driverName.newInstance(;dbconn = DriverManager.getConnection(url, userName, Psw;//getConnection(url, userName, Psw从给的driver中选择合适的去连接数据库//return a connection to the URL}catch(Exception e{print("url = " + url; //发生错误时,将连接数据库信息打印出来print("userName = " + userName;print("Psw" + Psw;print("Exception: " + e.getMessage(;//得到出错信息}if (dbconn != null//dbconn != null 表示连接数据库成功,由异常保证!?return true;elsereturn false;}// end boolean dbConnection(…/*** 对数据库表进行选择操作!* @param tableName 数据库表名* @param fieles 字段名* @param selCondition 选择条件* @return 一个含有map的List(列表)*/public ArrayList dbSelect(String tableName, ArrayList fields, String selCondition{ArrayList mapInList = new ArrayList(;String selFields = "";for (int i = 0; iselFields += fields.get(i + ", ";String selFieldsTem = selFields.substring(0, selFields.length( – 2;//根据String的索引提取子串try{dbstate = dbconn.createStatement(;String sql = "select " + selFieldsTem + " from " + tableName + selCondition;print("sql = " + sql;try{dbresult = dbstate.executeQuery(sql;}catch(Exception err{print("Sql = " + sql;print("Exception: " + err.getMessage(;}pspan while(dbresult.next({ pspan Map selResult = new HashMap(;selResult.put("message_type", dbresult.getString("message_type"; selResult.put("message_content", dbresult.getString("message_content"; mapInList.add(selResult;}}catch(Exception e{print("Exception: " + e.getMessage(;}return mapInList;}//end String dbSelect(…/*** 对数据库表中的记录进行删除操作* @param tableName* @param condition* @return bool值,表示删除成功或者失败。
增删改查简单-解释说明

增删改查简单-概述说明以及解释1.引言1.1 概述在现代信息时代,数据的管理和处理变得越来越重要。
无论是个人用户还是企业组织,都需要对数据进行增加、删除、修改以及查询等操作。
这些操作合称为增删改查(CRUD)操作,是数据管理中最基本、最常见的操作。
增删改查操作是数据管理的核心,它们在各个领域都得到广泛应用。
在个人数据管理方面,人们通过增加数据来记录生活中的重要事件、保存联系人信息等;删除数据可以清理不再需要的内容、释放存储空间;修改数据使其与当前状态保持一致;查询数据能够快速找到所需的信息。
而在企业层面,增删改查操作更是不可或缺的。
企业需要通过增加数据来记录各项业务活动,包括客户信息、订单记录、销售数据等,为后续的决策和分析提供基础;删除数据可以清理过时的、无效的或违规的内容;修改数据可以纠正错误或更新信息;查询数据则是企业分析和决策的重要依据。
在进行增删改查操作时,不仅需要掌握相应的方法和技术,还需要注意一些注意事项。
例如,在增加数据时,应确保数据的完整性和准确性,避免重复或错误的录入;在删除数据时,要谨慎操作,避免误删重要数据;在修改数据时,需要考虑影响范围和相关性,并确保相应的审批和权限控制;在查询数据时,要充分利用相关的搜索、过滤和排序功能,以提高查询效率。
评估增删改查操作的效果也是很重要的。
通过对增删改查操作的效果进行评估,可以不断改进和优化数据管理的流程和方法,提高工作效率和数据质量。
综上所述,增删改查操作是数据管理中不可或缺的基本操作,无论是个人用户还是企业组织,都需要掌握和运用这些操作技巧。
正确地进行增删改查操作,能够更好地管理和利用数据,提高工作效率和决策能力。
1.2 文章结构文章结构部分的内容如下:2. 正文2.1 增2.1.1 增加数据的重要性2.1.2 增加数据的方法2.1.3 增加数据的注意事项2.1.4 增加数据的效果评估2.2 删2.2.1 删除数据的重要性2.2.2 删除数据的方法2.2.3 删除数据的注意事项2.2.4 删除数据的效果评估2.3 改2.3.1 修改数据的重要性2.3.2 修改数据的方法2.3.3 修改数据的注意事项2.3.4 修改数据的效果评估2.4 查2.4.1 查询数据的重要性2.4.2 查询数据的方法2.4.3 查询数据的注意事项2.4.4 查询数据的效果评估以上是本文的文章结构。
oracle数据库增删改查基本语句举例

oracle数据库增删改查基本语句举例Oracle数据库是一种关系型数据库管理系统,具备强大的数据处理和查询功能。
以下是10个基本的Oracle数据库的增删改查语句示例:1. 插入数据:INSERT INTO 表名 (列1, 列2, 列3) VALUES (值1, 值2, 值3);示例:INSERT INTO employees (id, name, age) VALUES (1, '张三', 25);2. 查询数据:SELECT 列1, 列2, 列3 FROM 表名;示例:SELECT id, name, age FROM employees;3. 更新数据:UPDATE 表名 SET 列1 = 值1, 列2 = 值2 WHERE 条件;示例:UPDATE employees SET age = 26 WHERE id = 1;4. 删除数据:DELETE FROM 表名 WHERE 条件;示例:DELETE FROM employees WHERE id = 1;5. 创建表:CREATE TABLE 表名 (列1 数据类型,列2 数据类型,列3 数据类型);示例:CREATE TABLE employees (id NUMBER,name VARCHAR2(50),age NUMBER);6. 修改表:ALTER TABLE 表名ADD 列数据类型;示例:ALTER TABLE employees ADD salary NUMBER;7. 删除表:DROP TABLE 表名;示例:DROP TABLE employees;8. 创建索引:CREATE INDEX 索引名 ON 表名 (列1, 列2);示例:CREATE INDEX idx_name ON employees (name);9. 修改索引:ALTER INDEX 索引名 RENAME TO 新索引名;示例:ALTER INDEX idx_name RENAME TO idx_employee_name;10. 删除索引:DROP INDEX 索引名;示例:DROP INDEX idx_name;以上是一些基本的Oracle数据库的增删改查语句示例。
UC编程中的数据库操作学习UC编程中对数据库的增删改查操作

UC编程中的数据库操作学习UC编程中对数据库的增删改查操作在UC编程中,数据库操作是非常重要的一部分。
通过对数据库的增删改查操作,我们可以实现对数据的有效管理和利用。
本文将深入探讨UC编程中的数据库操作,包括增加数据、删除数据、修改数据和查询数据四个方面。
一、增加数据在UC编程中,我们可以通过特定的语句来实现对数据库的增加数据操作。
常用的语句包括INSERT INTO和VALUES。
INSERT INTO 语句用于指定要插入数据的表名,VALUES语句用于指定要插入的数据。
例如,在一个名为"users"的表中插入一条记录,可以使用如下语句:```INSERT INTO users (id, name, age) VALUES (1, 'John', 20);```上述语句表示在"users"表中插入一条id为1,名称为"John",年龄为20的记录。
通过这样的语句,我们可以实现向数据库中增加数据的功能。
二、删除数据据操作。
常用的语句包括DELETE FROM和WHERE。
DELETEFROM语句用于指定要删除数据的表名,WHERE语句用于指定删除的条件。
例如,删除名为"users"表中id为1的记录,可以使用如下语句:```DELETE FROM users WHERE id = 1;```上述语句表示删除"users"表中id为1的记录。
通过这样的语句,我们可以实现对数据库中数据的删除功能。
三、修改数据在UC编程中,我们可以通过特定的语句来实现对数据库的修改数据操作。
常用的语句包括UPDATE和SET。
UPDATE语句用于指定要修改数据的表名,SET语句用于指定修改的内容和条件。
例如,修改名为"users"表中id为1的记录的姓名为"Mike",可以使用如下语句:```UPDATE users SET name = 'Mike' WHERE id = 1;```上述语句表示将"users"表中id为1的记录的姓名修改为"Mike"。
oracle数据库增删改查练习50例-答案(精)

oracle 数据库增删改查练习50例-答案一、建表--学生表drop table student;create table student (sno varchar2(10,sname varchar2(10,sage date,ssex varchar2(10;insert into student values('01','赵雷',to_date('1990/01/01','yyyy/mm/dd','男';insert into student values('02','钱电',to_date('1990/12/21','yyyy/mm/dd','男';insert into student values('03','孙风',to_date('1990/05/20','yyyy/mm/dd','男';insert into student values('04','李云',to_date('1990/08/06','yyyy/mm/dd','男';insert into student values('05','周梅',to_date('1991/12/01','yyyy/mm/dd','女';insert into student values('06','吴兰',to_date('1992/03/01','yyyy/mm/dd','女';insert into student values('07','郑竹',to_date('1989/07/01','yyyy/mm/dd','女';insert into student values('08','王菊',to_date('1990/01/20','yyyy/mm/dd','女';--课程表drop table course;create table course (cno varchar2(10,cname varchar2(10,tno varchar2(10;insert into course values ('01','语文','02';insert into course values ('02','数学','01';insert into course values ('03','英语','03';--教师表drop table teacher;create table teacher (tno varchar2(10,tnamevarchar2(10;insert into teacher values('01','张三';insert into teacher values('02','李四';insert into teacher values('03','王五';--成绩表drop table sc;create table sc (sno varchar2(10,cno varchar2(10,score number(18,1;insert into sc values('01','01',80.0;insert into sc values('01','02',90.0;insert into sc values('01','03',99.0;insert into sc values('02','01',70.0;insert into scvalues('02','02',60.0;insert into sc values('02','03',80.0;insert into scvalues('03','01',80.0;insert into sc values('03','02',80.0;insert into scvalues('03','03',80.0;insert into sc values('04','01',50.0;insert into scvalues('04','02',30.0;insert into sc values('04','03',20.0;insert into scvalues('05','01',76.0;insert into sc values('05','02',87.0;insert into scvalues('06','01',31.0;insert into sc values('06','03',34.0;insert into scvalues('07','02',89.0;insert into sc values('07','03',98.0;commit;二、查询1.1、查询同时存在"01"课程和"02"课程的情况select s.sno, s.sname, s.sage, s.ssex, sc1.score, sc2.score from student s, sc sc1, sc sc2 where s.sno = sc1.sno and s.sno = sc2.sno and o = '01' and o = '02';1.2、查询必须存在"01"课程,"02"课程可以没有的情况select t.*, s.score_01, s.score_02 from student t inner join (select a.sno, a.score score_01, b.score score_02 from sc a left join (select * from sc where cno = '02' b on (a.sno = b.sno where o = '01' s on (t.sno = s.sno;2.1、查询同时'01'课程比'02'课程分数低的数据select s.sno, s.sname, s.sage, s.ssex, sc1.score, sc2.score from student s, sc sc1, sc sc2 where s.sno = sc1.sno and s.sno = sc2.sno and o = '01' and o = '02' and sc1.score < sc2.score;2.2、查询同时'01'课程比'02'课程分数低或'01'缺考的数据select s.sno, s.sname, s.sage, s.ssex, t.score_01, t.score_02 from student s, (select b.sno, a.score score_01,b.score score_02 from (select * from sc where cno = '01' a, (select * from sc where cno = '02' b where a.sno(+ = b.sno t where s.sno = t.sno and (t.score_01 < t.score_02 ort.score_01 is null;3、查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩select s.sno, s.sname, t.avg_score avg_score from student s, (select sno, round(avg(score, 2 avg_score from sc group by sno having avg(score >= 60 order by sno t where s.sno = t.sno;4、查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩4.1、有考试成绩,且小于60分select s.sno, s.sname, t.avg_score avg_score from student s,(select sno, round(avg(score, 2 avg_score from sc group by sno having avg(score < 60 order by sno t where s.sno = t.sno;4.2、包括没有考试成绩的数据select g.* from (select s.sno, s.sname,nvl(t.avg_score, 0 avg_score from student s, (select sno, round(avg(score, 2 avg_score from sc group by sno order by sno t where s.sno = t.sno(+ g where g.avg_score < 60;5、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩5.1、查询所有成绩的(不含缺考的)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学习收藏数据库增删改查
--查询信息系和计算机系的学生,并按学生所在系和学号排序。
select sno,sname,Sdept from Student
where Sdept='CS'OR Sdept='IS'
order by Sdept,sno ASC
--查询学生表中最小的年龄。
select MIN(sage from student
--查询课程名中包含“数据”的课程名。
select cno,cname from course
where Cname like'%数据%'
--查询先行课程为空值的课程号、课程名及学分
select cno,cname,ccredit from Course
where Cpno is null
--查询李勇选修的数据库课程的成绩
select grade from SC
where Sno=(select Sno from Student
where Sname='李勇'and Cno=(select Cno from Course where cname='数据库'
--查询平均成绩分以上的学生的学号
select distinct sno from SC scx
where (select AVG(Grade from SC scy
where scy.sno=scx.Sno>85
--求计算机系没有选修数据库课程的学生姓名
select sname from Student
where Sno not in(select Sno from SC
where Cno in(select Cno from Course
where Sname='数据库'and Sdept='IS'
--求至少选修了学号为S1所选修的全部课程的学生学号
select distinct sno from SC scx
where not exists(select*from SC scy
where scy.Sno='20021522'and not exists(select* from sc scz
where scz.sno=scx.sno and o=o
--求各系的系的学生人数的,并将结果按学生人数的降序排序
select Sdept,COUNT(sno from Student
group by Sdept
order by Sdept ASC
--查询选修了数学课程并且成绩高于该门课程平均分的学生学号和成绩
select sno,grade from SC scx
where Grade>=(select AVG(Grade from SC scy
where Cno=(select Cno from Course
where Cname='数学'and Cno=(select Cno from Course
where Cname='数学'
/* 将学习了数据库课程的学生成绩加分。
*/
update SC
set grade=grade+5
where Cno in(select Cno from SC where Cno=(select Cno from Course
where Cname='数据库'
select*from SC
/* 将计算机系学习了号课程的学生成绩置。
*/
update SC
set Grade=0
where Sno in(select sc.Sno from Student,SC
where Cno='2'and Sdept='CS'
select*from SC
/* 将李勇的数据库成绩改为。
*/
update SC
set Grade=85
where Sno=(select Sno from Student where Sname='李勇'
and Cno=(select Cno from Course where Cname='数据库' select*from SC
/* 将选修了号课程且成绩为空的选课记录删除。
*/
delete from SC
where Cno='2'and Grade is null
select*from SC
/* 从课程表中删除在选课表中没有选课记录的课程记录。
*/ delete from Course
where Cno not in(select cno from SC
select*from Course
/* 删除计算机系学生选修了数据库课程的选课记录。
*/
delete from SC
where Sno in(select Sno from Student where
Sdept='CS'and
Cno=(select Cno from Course where Cname='数据库' select*from SC
/* 求各系的系名及男女生人数并将结果保存到另一个表中。
*/ create table Dept_ssex_count
(Sdept char(15,
Ssex char(2,
Count1smallint
insert into Dept_ssex_count(Sdept,Ssex,Count1 select Sdept,Ssex,count(Sno from student
group by Sdept,Ssex;
select*from Dept_ssex_count
select*from student
/* 将平均成绩分以上的学生的学号,选学的课程数和平均成绩
保存到另一个表中。
*/
create table abc
(
Sno char(10,
Course_count smallint,
avge float
insert into abc(Sno,course_count,avge
select Sno,count(cno,avg(grade from sc scx
group by sno
having avg(grade>=80;
select*from abc
select*from sc
/* 创建一个视图,查询没有选修课程的学生学号、姓名和所在系,并利用该视图查询所有没有选修课程的学生信息。
*/
create view No_sc_student
as
select sno,sname,ssex,sage,sdept from student where sno not in(select distinct Sno from SC
select*from No_sc_student
/* 创建一个给出学生的姓名、课程名和成绩的视图,并利用该
视图查询某个学生学习的课程名和成绩。
*/
create view sname_cname_grade
as
select sname,cname,grade from Student,Course,SC where Student.Sno=SC.Sno and o=o select*from sname_cname_grade
/*创建一个视图,求各门课程的课程号、选课人数、平均分、最高分,并利用该视图查询号课程的选课人数、平均分、最高分。
*/
create view CCAM
as
select cno,COUNT(sno count1,AVG(grade
avge,MAX(grade max1from SC
group by Cno
select*from ccam
select count1,avge,max1from ccam
where cno='1'
/* 创建一个视图,求选修了号课程且成绩高于该门课程平均分的学生学号和成绩。
*/
create view Cno_2(sno,Grade
as
select Sno,Grade from SC
where Cno='2'and grade>(select AVG(Grade from SC where Cno='2'
select*from Cno_2
/*将学生表的select权限赋给用户user1,然后以user1登录,检查权限情况。
*/
create role use1/*创建角色use1*/
grant select on Student to use1
/*收回用户user1的对学生表的select权限,然后以user1登录,检查权限情况。
*/
revoke select on student from use1;。