oracle数据库的增删改查
文章目录
1 插入数据
1.1 使用insert 关键字
格式: INSERT INTO 表名(列名列表) VALUES(值列表);
注意:
当对表中所有的列进行赋值,那么列名列表可以省略,小括号也随之省略必须对表中的非空字段进行赋值具有默认值的字段可以不提供值,此时列名列表中的相应的列名也要省略。
2 修改数据(更新数据)
2.1 update 更新的数据
格式:
- 更新一列数据
UPDATE 表名 SET 字段=值 WHERE 字段=值
- 更新多列数据
UPDATE 表名 SET PRICE=PRICE*0.8, NAME=‘值’ WHERE 字段=值
- 使用默认值修改数据
UPDATE EMP SET JOB=DEFAULT WHERE ENAME=‘SCOTT’
注意:
ORACLE中日期列不能直接插入字符串,需使用日期函数转换 TO_DATE(数 据,’YYYY-MM-DD’
3 删除数据
3.1 使用delete 关键字
- 删除符合条件数据
DELETE FROM EMP WHERE ENAME= ‘SMITH’
- 删除所有EMP 所有数据
DELETE FROM EMP
- 截断表
TRUNCATE TABLE EMP;
注意:
当使用DELETE语句删除表数据时,不会释放表所占用的空间,如果用户确定要删除表的所有数据,那么使用截断表更快,并释放表段所占用的空间,注意,DELETE语句可回滚数据,截断表不可回滚数据
4 查询数据
4.1 使用select 关键字
SELECT 列名 FROM 表名;
SELECT * FROM 表名 WHERE 字段>数值;
SELECT * FROM 表名 WHERE PRICE>50;
--显示工资在2000到2500工资
SELECT * FROM 表名 WHERE 字段>=2000 AND 字段<=2500;
SELECT * FROM 表明 WHERE 字段 BETWEEN 2000 AND 2500;
4.2 模糊查询
模糊查询 使用关键 like
%:表示任意0到多个字符 ;
_ : 表示任意单个字符
--如何显示首字母为S的员工姓名及工资
SELECT EANAME, SAL FROM 表名 WHERE EANAME LIKE 'S%' ;
--如何显示第三个字母为O的所有员工姓名及工资
SELECT EANAME, SAL FROM 表名 WHERE EANAME LIKE '_ _O%';
4.3 对查询数据排序
使用 order by 关键字
ASC:正序
DESC:倒序
格式:
select emame,sal from emp where sal is not null order by sal desc;
4.4 分组查询
使用关键字group by
查询每个部门员工的数量
select deptno, count(*) 数量 from emp group by deptno;
4.5 Having 查询
having 查询是对分组之后的结果进行查询
查询平均工资大于两千的部门及部门人数
SELECT DEPTNO,COUNT(*) 数量 FROM EMP GROUP BY DEPTNO HAVING AVG(SAL)>2000