Oracle表创建,表连接,及解题思路
数据类型
数字:number、number(n)、number(n,p) 字符:char(n)--存储定长字符串,最多2000个字节;varchar2(n)--存储变长字符串,最多4000个字节 日期:date--精确到秒;timestamp--精确到毫秒
表:table,
表是由列组成,一张表至少包含一个列
表创建
create table 表名 ( 列名 数据类型, 列2 数据类型 )
表名和列名最多为30个字节,只能由数字字母下划线$#等组成,字母下划线开始,通常t_开始
用户表(姓名、性别、出生日期、电话) create table t_user ( name varchar2(20), gender char(2), birth_date date, tel number )
往表中写入数据
insert into 表名(列名,列名2………) values(值1,值2……);
-
值的个数与列的个数一致(逗号的个数一样),且对应值与列的类型一致
-
insert into语句必须要commit后才能被其他的会话可见,否则只能当前会话可见
-
commit--提交
-
rollback--回滚
更新数据
update 表名 set 列名=值,列名2=值2 where 条件;--where条件限制更新的行数
删除数据
delete from 表名 where 条件;--where条件下限制删除的行数
drop table 表名; 删除表
表关联
N表关联,需要N-1个关联条件
select *
from emp t1 inner join salgrade on t1.sal>=t2.losal and t1.sal>=t2,hisal
将工资与工资等级关联
commit--提交
rollback--回滚,撤销之前操作
表连接
表的连接方式:
通过连接条件将多张表拼成一张大宽表
-
inner join:内连接,基于连接条件仅显示匹配的记录,匹配几条显示几条
-
left join:左外连接,inner join部分+左表未匹配的记录
-
right join:右外连接,inner join部分+右表未匹配的记录
-
full join:全外连接,inner join部分+左表未匹配的记录+右表未匹配的记录
-
on后的条件仅用于表的连接
-
where后的条件是对连接后的结果进行过滤
-
使用not in的时候如果子查询有null值出现,则一行记录都不会查出来,子查询需要添加is not null的过滤条件
解体思路
1、确定列:查询列、过滤列 2、确定表:筛选步骤1的列至少来源于哪些表 a 3、如果多张表,首先确定表的连接条件(字段)b

浙公网安备 33010602011771号