oracle数据库
一、查询命令
-
查询表中全部数据
语法: select * from 表名; #实际项目中,尽量避免使用 * 对表进行全表扫描
-
查询部分列
语法: select 列1,列2.. from 表名;
-
where条件查询
语法: select 列 from 表名 [where 查询条件]
-
排序
语法: select 列 from 表名 [where 查询条件] [order by 排序的列 asc | desc] # asc:升序(默认不写) # desc:降序
-
分组查询
语法: select 列 from 表名 [where 查询条件] [group by 分组的列] # 分组查询只可以查询被分组的列和函数
-
对分组后的数据进行过滤筛选
语法: select 列 from 表名 [where 查询条件] [group by 分组的列] [having 筛选过滤条件] # having只能用在分组之后
-
in查询
语法: select 列 from 表名 [where 列 in (值1,值2..)]
-
between and 筛选数据
语法: select 列 from 表名 [where 列 between 值1 and 值2] # 值1~值2 只能从小到大,反之则查询不出任何结果
-
Like模糊查询(通常和通配符配合使用)
语法: select 列 from 表名 [where 列 like '表达式'] # %:匹配任意多个字符 # _:匹配单个字符
-
查询为null 或者 不为null
语法: select 列 from 表名 [where 列 is null] select 列 from 表名 [where 列 is not null]
-
五个常用的聚合函数
count():统计数量 avg():统计平均值 sum():求和 max():最大值 min():最小值
-
表连接(四种)
语法: select 列 from A inner join B on A.列 = B.列; #内连接 select 列 from A left join B on A.列 = B.列; #左外连接 select 列 from A right join B on A.列 = B.列; #右外连接 select 列 from A,B where A.列 = B.列 #等值连接 # 内连接:匹配两张表中相关联匹配的数据 # 左外连接:主表的数据全部匹配,子表只会匹配跟主表关联的数据,没有关联的数据显示null
-
查询去除重复记录
语法: select distinct 列 from 表名
-
创建同义词
语法:公有同义词 CREATE PUBLIC SYNONYM 同义词名 FOR 表名; 语法:私有同义词 CREATE OR REPLACE SYNONYM 同义词名 FOR 表名;
-
使用同义词查询
select * from 同义词名;
-
删除同义词
drop SYNONYM 同义词名; #删除私有同义词 drop public SYNONYM 同义词名;#删除公有同义词
-
创建索引
create index 索引名 on 表名(列名); CREATE BITMAP INDEX index_bit_job ON emp(job);#位图索引 #位图索引可以减少响应时间,节省空间占用