
本文共 3267 字,大约阅读时间需要 10 分钟。
数据库操作指南
了解如何高效管理和操作数据库是技术工作者不可或缺的能力。本文将提供一系列数据库操作的技巧和实用案例。
查询数据库表信息
要查询数据库中所有表名,可以使用以下命令:
select * from user_tables;
此命令会返回数据库中所有的表名。
查询表中的字段信息
想知道指定表的所有字段名,可以使用以下查询:
select column_name from user_tab_columns where table_name = 'table_name';--表名要全大写
该命令会为你返回指定表格的所有字段名。
查询字段信息和字段注释
查询表中所有列名及相应注释,可以使用以下命令:
select * from user_col_comments where table_name = 'table_name';--表名要全大写
此命令会返回包含字段注释的详细结果。
修改字段注释
要为表中的特定字段添加注释,可以使用以下命令:
comment on column table_name.column_name is '注释';
需要注意,注释字符串需用单引号包裹。
查询表和表注释
想要了解表格及其注释信息,可以使用以下命令:
select * from user_tab_comments;
去重查询
如果需要筛选重复数据只返回一行,可以使用以下命令:
select distinct job from emp where deptno = 20;
插入数据
向数据库中插入数据有两种方式。一种是按字段插入:
insert into table_name(column1, column2, column3) values (value1, value2, value3);
另一种是批量插入数据:
insert into table_name values (value1, value2, value3), (value1, value2, value3), ... ;
时间条件查询
进行时间条件查询时,可以使用 vesselize 运算符(&)来比较日期字段:
select * from table_name where time_field > to_date('20210414 16:00:00', 'yyyy/mm/dd hh24:mi:ss');
查询系统当前时间
使用 SysDate
获取当前系统时间:
select TO_Char(SysDate, 'YYYY-MM-DD HH24:MI:SS') from Dual;
此命令会返回当前系统日期和时间。
系统日期和日期截取
查询系统日期和时间的不同截取方式:
select sysdate from Dual; -- 当前日期和时间select trunc(sysdate) from Dual; -- 今天日期select trunc(sysdate, 'DD') from Dual; -- 今日日期select trunc(sysdate, 'dy') + 7 from Dual; -- 本周星期日select trunc(sysdate, 'day') + 7 from Dual; -- 本周星期日select trunc(sysdate, 'q') from Dual; -- 本季度开始日期select trunc(sysdate, 'month') from Dual; -- 本月开始日期select trunc(sysdate, 'mm') from Dual; -- 本月开始日期select trunc(sysdate, 'year') from Dual; -- 本年开始日期select trunc(sysdate, 'yyyy') from Dual; -- 本年开始日期select trunc(sysdate, 'HH24') from Dual; -- 本小时开始时间select trunc(sysdate, 'MI') from Dual; -- 本分钟开始时间select trunc(sysdate, 'CC') from Dual; -- 本世纪开始日期select last_day(sysdate, 'dd') from Dual; -- 本月的最后一天
删除数据库记录
数据库记录的删除操作会作为事务记录保存在日志中:
delete from table_name where column_name = value;
清空数据库表
要清空表中的所有数据,但不记录删除操作,可以使用以下命令:
truncate table table_name;
删除数据库表
永久删除表及其数据,可以使用以下命令:
drop table table_name;
按多个字段排序查询
按照 cno
升序、degree
降序查询成绩表:
select * from score order by cno, degree desc;
查询表中特定字段的数量
想知道表中某字段的记录数量,可以使用以下命令:
select count(NAME) from QTY where NAME = 'LOVE';
查询表中最高QTY_D记录
查询表中最高 QTY_D
的记录,主要关注 QTY_D
、SEQ_ID
和 NAME
:
select NAME, SEQ_ID, QTY_D from QTY where QTY_D in (select max(QTY_D) from QTY);
查询表中某字段的平均值
计算表中某字段的平均值:
select avg(QTY_D), NAME from QTY group by NAME;
查询满足特定条件的记录数量
统计满足特定条件的记录数量和平均值:
select avg(QTY_D), NAME, count(NAME) from QTY where NAME like '冰%' group by NAME having count(NAME) > 5;
查询多个字段的平均值
对多个字段进行平均值计算:
select QTY_D, QTY_D_TQ, QTY_M, QTY_M_TQ, (QTY_D + QTY_D_TQ + QTY_M + QTY_M_TQ) / 4 as average from QTY;
综合评价字段值
对字段进行综合评价:
select QTY_D, (case when QTY_D < 20 then '低' when QTY_D >= 20 and QTY_D <= 50 then '中' when QTY_D > 50 then '高' else '低' end) as evaluation from QTY;
CASE WHEN Condition
使用 CASE WHEN
查看字段值对应的评价结果:
condition 是一个返回布尔值的表达式。如果条件为 `true`,则返回相应的结果。如果条件为 `false`,则返回 `ELSE` 后的结果。若省略 `ELSE` 子句,则返回 `NULL`。
快速数据检查
需要快速检查某字段是否有数据,可以使用以下命令:
select max(field_name), min(field_name) from table_name;
计算百分比
计算某字段达成率的百分比:
select NAME, sum(M), sum(PBP), round(sum(M)/sum(PBP), 3) * 100 || '%' as pcp from table_name group by NAME;
这些技术指南希望能为您提供实用的数据库操作参考。无论是查询表信息、数据插入、时间处理,还是字段操作,这些命令都能帮助您完成数据库管理任务。
发表评论
最新留言
关于作者
