select * from user_tables;
//查看当前用户拥有的对象权限
select * from user_tab_privs_recd;
//查看当前用户拥有的系统权限
select * from user_sys_privs;
//查看表结构
desc 表名
select * from user_tab_columns where TABLE_NAME='大写表名';
//清空表中数据,保留表结构
truncate table 表名;
//删除表
drop table 表名;
//修改表名
alter table 老表名 rename to 新表名;
//新增字段
alter table 表名 add 字段名 字段类型;
//修改表字段类型
alter table 表名 modify 表字段 新类型 [default '默认填充的值'];
//修改字段名
alter table 表名 rename column 原字段名 to 新字段名;
//修改字段长度
alter table 表名 modify 字段名 类型及长度;
//删除字段
alter table 表名 drop column 字段名;
//更新表中数据
update 表名 set 字段名=新值 where 条件;
//删除数据
delete from 表名 where 字段=值;
多表查询
INNER JOIN连接
select 字段名1,字段名2,...,字段n
from 表名1
INNER JOIN 表名2
ON 连接规则
INNER JOIN 表名3
ON 连接规则
...
INNER JOIN 表名N
ON 连接规则
[where 查询条件]
左连接/右连接(LEFT OUTER JOIN/RIGHT OUTER JOIN)
select 字段名1,字段名2,...,字段名3
from 表名1
LEFT OUTER JOIN 表名2
ON 连接规则
LEFT OUTER JOIN 表名3
ON 连接规则
[where 查询条件]
组合查询(UNION)
select 语句1
UNION
select 语句2
UNION
select 语句3
存储过程
create [or replace] proceduce name
(声明输入和输出参数)
AS
(变量声明)
BEGIN
(SQL语句)
EXCEPTION
(异常处理语句)
END;
例:
create proceduce delstu
(st_name IN varchar2)
AS
BEGIN
delete from student
where name=stu_name;
END;
intersect --交集
union --并集,去重
union all --并集,不去重。性能最好
minus --补集
DQL通用
select 要返回的信息
from 表
join...on...
where 过滤条件
group by 分组字段
having 分组后的过滤条件
order by 排序字段
连接查询格式
--内连接
select...
from 表1,表2,...
where 关联条件1/过滤条件 [and/or 关联条件2 and/or ....]
--左外连接
select...
from 表1,表2,...
where 表1的某个字段 运算符 表2的某个字段(+) --表1是主表,表2是从表
--右外连接
select...
from 表1,表2,...
where 表1的某个字段(+) 运算符 表2的某个字段 --表2是主表,表1是从表
表的约束
primary key --主键约束
foreign key --外键约束
check --检查约束
unique --唯一约束
not null --非空约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY(列名1[,列名2...]); --添加主键约束
ALTER TABLE 主表名 ADD CONSTRAINT 约束名 FOREIGN KEY(列名1[,列名2...]) REFERENCES 从表名(列名1[,列名2...]);
--添加外键约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 CHECK(条件);--添加check约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(列名);--添加唯一约束
ALTER TABLE 表名 MODIFY 列名 NOT NULL; --添加非空约束
ALTER TABLE 表名 DROP CONSTRAINT 约束名; --删除约束
对用户的操作
--语法结构:创建用户
CREATE USER 用户名 IDENTIFIED BY password [ACCOUNT LOCK|UNLOCK];
--语法结构:给用户授权
GRANT CONNECT,RESOURCE TO 用户名;
--- 直接将connect角色,--resource角色授予用户。
--- CONNECT角色:连接数据库。RESOURCE:正常使用数据库
GRANT CREATE TABLE TO 用户名; --- 给用户创建表的权限
GRANT CREATE VIEW TO 用户名; --- 给用户创建视图的权限
--语法结构:收回用户权限
REVOKE 角色|权限 FROM 用户(角色)
--语法结构:修改用户的密码
ALTER USER 用户名 IDENTIFIED BY 新密码;
--语法结构:给用户加锁/解锁
ALTER USER 用户名 ACCOUNT LOCK/UNLOCK;
条件判断(if/else)
declare
--声明部分
begin
--逻辑/操作部分
select...
if 条件1 and/or 条件2 then
操作1;
elsif 条件3 and/OR 条件4 then
操作2;
...
else
其他操作;
end if;
end;
条件判断(case…when…)
declare
--声明部分
begin
--逻辑/操作部分
case
when 条件1 and/or 条件2 then
操作1;
when 条件3 and/OR 条件4 then
操作2;
...
else
其他操作;
end case;
end;
循环控制(loop)
declare
--声明部分
begin
--逻辑部分
loop
--循环体
if 退出循环的条件 then
exit;
end if;
--退出循环的简写
exit when 退出循环的条件;
end loop;
end;
循环控制(while)
declare
--声明部分
begin
while 进入循环的条件 loop
--循环体
end loop;
end;
循环控制(for)
declare
--声明部分
begin
--逻辑部分
for 循环变量 in 循环下限 .. 循环上限 loop
--循环体
end loop;
end;