Java笔记oracle--SQL基础篇(二)
来源:互联网 发布:皮带机功率计算软件 编辑:程序博客网 时间:2024/05/07 15:45
Oracle笔记-SQL基础篇(二)
一、DDL操作–创建表,修改表,删除表
①创建表employees,表中default 的作用是给列指定默认值
create table employees( id number(10), name varchar2(20) , gender char(2) default 'm', job varchar2(30), salary number(7,2), deptno number(5))
以上这种是白手起家式建表,可以利用已经存在的表建立新的表,如下所示 emp表的建立,
create table empasselect id,name,salary,jobfrom employees;
②修改表,指在未添加数据前对于字段的操作(字段就是列)
1.增加新的字段–
--增加comm列 alter table employees add( comm number(6,2));
查看数据表结构 desc table_name
desc employees;
查询结果为:
从表中可以看出增加的字段comm操作成功
2.修改字段的数据类型、长度、默认值
alter table employeesmodify( salary number(9,2)):
表中的salary的长度改变
3.修改表名
rename old_name to new_name :将表名employees改为emp
rename employees to emp;
4.删除字段:
--删除genderalter table employeesdrop gender;
运行结果:
表中没有了gender这个字段
③删除表
drop table employees;
二、DML操作–插入、删除、修改一条记录
①insert语句:插入一条记录
insert into employeesvalues(200919,'chaoge','java',8500,10,650.00);
以上这种方法必须按照字段建立的顺序依次插入,若不知道字段顺序,采用下面这种方法
insert into employees(id,name,job,salary,deptno,comm)values(201009,'chaoge','c++',6000,20,350)
②update语句:更新表中的记录
update employeesset job = 'c#' where id = 201009;
没有where字句,则表中的数据全部会被更新!
③delete语句:删除表中的记录
delete from employees where id = '201009';
**注意**DML 和DDL,区别在于DDL是针对字段的操作,DML是针对记录的操作,DML操作后要进行commit操作–提交,也可以进行rollback操作–回滚,取消操作。才能真正的实现DML操作。
三、DQL –查询语句
--1 *:表示查询所有的列; select * from emp;--2 指定列查询 ;distinct 去除重复的行select distinct deptno from emp;--3 可以给 列名起别名;select ename,sal as salary,job work from emp;--4 where字句使用比较操作符限制查询结果 select ename,job from emp where deptno = 10;
第三个查询语句的运行结果:(标题的显示样式是别名)
第四个查询语句的运行结果:部门号都是10的员工信息
②查询条件
1.使用<、 >、 <=、 >=、 <>(<>就是不等于!=)
--查询工资低于5000的员工信息select ename,id,sal from emp where sal<=5000;
2.使用and 或or
--查询工资大于2000且职位是SALES的员工信息select ename,sal from emp where sal>2000 and job ='SALES'--查询工资低于2000或者高于5000的员工姓名和职位select ename,job from emp where sal<2000 or sal >5000;
3.使用 in
--查询部门号在10或者20的员工姓名,工资。select ename,sal,deptno from emp where deptno in (10,20);
4.使用between..and…
--查询工资在2500到4500之间的员工的姓名和所在部门select ename,deptno from emp where sal between 2500 and 4500;
5.使用like–模糊查询
--查询名字中有字母C的员工select ename from emp where ename like '%C%';--查询名字中第三个字母是C的员工select ename from emp where ename like '__C%;--查询名字中倒数第二个字母是C的员工select ename from emp where ename like '%C_';--查询名字中含有_(下划线)的员工名字--用escape转义select ename from emp where ename like '%A\_B%'escape '\';
6.使用 null:注意用法:is null 和 is not null
--查询没有奖金的员工的姓名和职位select ename,job from emp where comm is null;
7.排序:order by (默认是从小到大)
asc:升序 , desc :降序
--按照工资的由高到低查询员工姓名
select ename ,sal from emp order by sal desc;
运行结果是:
8 .聚合函数(也叫分组函数)
avg:平均数
max:最大值
min:最小值
sum:综合
count:数量和
stddey:标准差
①查询工资的平均值,最大值和员工人数select avg(sal),count(*),max(sal) from emp;
运行结果:
②利用通用函数nvl将null替换成0select count(nvl(comm,0)) from emp;
9.分组查询:group by
凡是不是组函数的列,都应该出现在group by 中。意思是:group by在使用时,在select中所有未包含在分组函数中的列,都应该包含在group by子句中。
having子句:用来过滤对分组后的结果,必须跟在group by 的后面
where子句中不能出现分组函数,用having子句代替
查询10号和20号部门的平均工资select deptno,avg(sal) from emp group by deptno having deptno in(10,20);
运行结果:
- Java笔记oracle--SQL基础篇(二)
- Java笔记oracle--SQL基础篇(一)
- Oracle学习笔记二:SQL*PLUS基础
- java基础篇笔记<二>
- Oracle基础笔记之二
- SQL基础笔记(二)
- ORACLE SQL 优化笔记二
- Java学习笔记基础篇(二)
- 《java语言程序设计基础篇》笔记二
- Oracle PL/SQL语言基础之二
- SQL语言基础考核(二)(oracle)
- 二十、oracle pl/sql基础
- 二十、oracle pl/sql基础
- Oracle 11g PL/SQL(基础二)
- 二十、oracle pl/sql基础
- 二十、oracle pl/sql基础
- Oracle的SQL语言基础(二)
- Oracle数据库PL/SQL学习笔记二——基础控制语句
- hdoj 1227 Fast Food 【dp】
- 使用springSite构建j2ee项目
- 【Android UI设计与开发】8.顶部标题栏(一)ActionBar 奥义·详解
- 1010. 一元多项式求导 (25)
- Android进阶-自定义控件一
- Java笔记oracle--SQL基础篇(二)
- Android EditText监听小数点让用户只能输入小数点后两位
- Linux下获取线程TID的方法——gettid() 获取进程 getpid()
- JsonMapper工具类(基于jackson2)
- 2-SAT问题(LA3713)
- maven项目出现web.xml is missing and <failOnMissingWebXml> is set to true错误的解决办法
- 关于.getClass()和.class的区别
- java Socket(套接字)及其应用
- 验证码生成源码