创建表
create table 表名(
id number primary key,
name varchar(20) not null,
age number
)
创建表的时候可能用到select关键字
复制旧表部分字段
create table 新表名 as select 字段名,字段名 from 旧表名;
复制旧表
create table 新表名 as select * from 旧表名;
查看表结构
desc +表名
删除表
drop table 表名
插入数据
insert into 表名(字段们) VALUES(对应字段类型值)
删除数据
delete from 表名 where 某字段=某字段值
修改数据
update 表名 set 字段=新字段值 where 字段=原字段值
修改表结构,删除列,增加列
alter table 表名 drop 字段
alter table 表名 add 字段 字段类型
删除主键、设置主键
alter table 表名 drop primary key
alter table 表名 add primary key(字段)
修改了表结构,内部刷新只能刷新行,关闭表再打开才能看见表结构的变化,sqldeveloper
查找某个字段最大值、最小值、平均值、和
select max(AGE) AS MAXVALUE FROM SHANGXIA
select min(AGE) AS MINVALUE FROM SHANGXIA
select avg(AGE) AS AVGVALUE FROM SHANGXIA
select sum(AGE) AS SUMVALUE FROM SHANGXIA
where or 条件查询
select * from emp where ename = 'KING' or ename ='SCOTT';
like 模糊查询
select * from emp where ename like '_L%';
order by 排序 ASC:升序, 缺省,DESC: 降序
select 字段们 from 表名 order by 字段, 字段 desc/esc;
Group by 分组
Select 字段1,sum(字段2) from 表名 group by 字段1;
Having
select 字段1,sum(字段2) from 表名 group by 字段1 HAVING sum(字段2)<某值
distinct 消除冗余
select distinct 字段 from 表名
IS NULL/is not null
select 字段们 from 表名 where 字段 IS NULL; //用 IS NULL操作符来检查有无空值
ROWNUM 分页查询 控制查询出来的数据个数
SELECT * FROM (SELECT 别名.*, ROWNUM RN FROM 表名 别名) WHERE RN > 0 AND RN <= 2//查前两行数据
SELECT * FROM (SELECT 别名.*, ROWNUM RN FROM (SELECT * FROM 表名 ORDER BY 字段 desc) 别名) WHERE RN > 0 AND RN <= 2 //先按字段排序 之后查询行数据
case when then end
SELECT 字段, COUNT (CASE WHEN sex= 1 THEN 1 /*sex 1为男生,2位女生 */
ELSE NULL
END) 男生数,
COUNT (CASE WHEN sex = 2 THEN 1
ELSE NULL
END) 女生数
FROM 表名 GROUP BY 字段; //按部门分组 看某部门男生多少 女生多少
PL/SQL(过程化SQL语言)
可以编写具有很多高级功能的程序
⒈、能够使一组SQL语句的功能更具模块化程序特点;
⒉、采用了过程性语言控制程序的结构;
⒊、可以对程序中的错误进行自动处理,使程序能够在遇到错误的时候不会被中断;
⒋、具有较好的可移植性,可以移植到另一个Oracle数据库中;
⒌、集成在数据库中,调用更快;
⒍、减少了网络的交互,有助于提高程序性能。