搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 二次猿 > 常用数据库语句

常用数据库语句

二次猿 2017-11-28

常用数据库语句

统计分析:analyze table table_name compute statistics;
ORACLE查询当前数据库的默认日期格式:SELECT SYSDATE FROM dual;
ORACLE修改当前数据库的默认日期格式(使用dba权限的用户):
ALTER SYSTEM SET nls_date_format='YYYY-MM-DD hh24:mi:ss' scope=spfile;
SHUTDOWN IMMEDIATE;
startup;
SELECT SYSDATE FROM dual;
SHOW PARAMETERS NLS;
查询当前用户下,有哪些表:SELECT * FROM user_tables; 
查询当前用户下, 可以访问哪些表 [也就是访问自己 和 其他用户的]:SELECT * FROM all_tables; 
查询当前数据库所有的表, 需要你有 DBA 的权限:SELECT * FROM dba_tables; 
查询当前用户下的所有对象:SELECT * FROM tab;
创建用户和密码:CREATE USER user_name IDENTIFIED BY pass_word;
授予连接,资源和dba权限:GRANT CONNECT,RESOURCE,DBA TO user_name;
用户需要查询数据库中所有数据:GRANT SELECT ANY TABLE TO user_name;
该用户需要读取数据字典、使用OEM工具等:GRANT SELECT ANY DICTIONARY TO huyingzhao;
给表或存储过程赋权限:(with grant option权限会被回收,with admin option会永久保留)
GRANT CREATE TABLESPACE TO a;
GRANT SELECT ON tabelname TO a;
GRANT UPDATE ON tablename TO a;
GRANT EXECUTE ON procedurename TO a;
授权存储过程:grant update on tablename to A with grant option;
给所有用户向表 tablename 插入记录的权限:GRANT ALL ON tablename TO PUBLIC;
赋予权限SQL语句(给普通用户user赋所有权限):GRANT ALL TO user_name;
如果只要赋予部分权限,则:GRANT CREATE SESSION, SELECT ANY TABLE, DBA TO user_name;
清空数据:TRUNCATE TABLE table_name;
查看表:select * from user_tables;
查看视图:SELECT view_name FROM user_views;
查询包体:
SELECT s.name, s.text,s.line
  FROM all_source s
 WHERE TYPE = 'PACKAGE BODY'
   AND owner = 'user_name'
 GROUP BY s.name, s.text,s.line;
删除用户:DROP USER user_name CASCADE;
创建用户表空间:
create tablespace ods datafile'D:\app\huyingzhao\oradata\huyingzhao\ods.dbf' size 100m autoextend on next 100m maxsize 1024m extent
management local autoallocate;
无需用户修改sys密码:
sqlplus/nolog;
CONNECT SYS AS SYSDBA ALTER USER SYS IDENTIFIED BY password;
查询某字段是否有重复的数据:
SELECT s.comment, COUNT(*)
  FROM table_name s
 GROUP BY s.comment
HAVING COUNT(*) > 1;
查询指定数据库的表创建语句(但是不能超过100条, rownum <= 100条件不能去除):
SELECT dbms_metadata.get_ddl('TABLE', table_name, USER)
  FROM user_tables s
 WHERE s.tablespace_name = 'tablespace_name'
   AND rownum <= 100
最高效率分页查询:
SELECT * FROM  
(  SELECT A.*, ROWNUM RN  
FROM (SELECT * FROM TABLE_NAME) A  
WHERE ROWNUM <= end ) 
WHERE RN >= star
查看密码到期时间:SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'
去除密码到期:ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED 
鹏华基金获得当年实际天数:SELECT ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), 12) - TRUNC(SYSDATE, 'YYYY') days FROM DUAL
创建新用户需要的语句:
CREATE TABLESPACE YSSUCO DATAFILE 'D:\app\huyingzhao\oradata\huyingzhao\YSSUCO01.dbf' SIZE 1024M 
AUTOEXTEND  ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
ALTER TABLESPACE YSSUCO ADD DATAFILE 'D:\app\huyingzhao\oradata\huyingzhao\YSSUCO02.dbf' SIZE 1024M;
ALTER DATABASE DATAFILE 'D:\app\huyingzhao\oradata\huyingzhao\YSSUCO02.dbf' AUTOEXTEND ON NEXT 100M MAXSIZE unlimited;
CREATE USER phfund IDENTIFIED BY 1 DEFAULT TABLESPACE YSSUCO  TEMPORARY TABLESPACE TEMP;
GRANT CONNECT TO phfund;
GRANT RESOURCE TO phfund;
GRANT DBA TO phfund;
GRANT UNLIMITED TABLESPACE TO phfund;
GRANT create any table TO phfund;
--1、查看表空间的名称及大小
SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size
FROM dba_tablespaces t, dba_data_files d
WHERE t.tablespace_name = d.tablespace_name
GROUP BY t.tablespace_name;
--2、查看表空间物理文件的名称及大小
SELECT tablespace_name,
file_id,
file_name,
round(bytes / (1024 * 1024), 0) total_space
FROM dba_data_files
ORDER BY tablespace_name;
--3、查看回滚段名称及大小
SELECT segment_name,
tablespace_name,
r.status,
(initial_extent / 1024) initialextent,
(next_extent / 1024) nextextent,
max_extents,
v.curext curextent
FROM dba_rollback_segs r, v$rollstat v
WHERE r.segment_id = v.usn(+)
ORDER BY segment_name;
--4、查看控制文件
SELECT NAME FROM v$controlfile;
--5、查看日志文件
SELECT MEMBER FROM v$logfile;
--6、查看表空间的使用情况
SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name
FROM dba_free_space
GROUP BY tablespace_name;
SELECT a.tablespace_name,
a.bytes total,
b.bytes used,
c.bytes free,
(b.bytes * 100) / a.bytes "% USED ",
(c.bytes * 100) / a.bytes "% FREE "
FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c
WHERE a.tablespace_name = b.tablespace_name
AND a.tablespace_name = c.tablespace_name;
--7、查看数据库库对象
SELECT owner, object_type, status, COUNT(*) count#
FROM all_objects
GROUP BY owner, object_type, status;
--8、查看数据库的版本 
SELECT version
FROM product_component_version
WHERE substr(product, 1, 6) = 'Oracle';
--9、查看数据库的创建日期和归档方式
SELECT created, log_mode, log_mode FROM v$database;

SQL2:
代码如下:
--1G=1024MB
--1M=1024KB
--1K=1024Bytes
--1M=11048576Bytes
--1G=1024*11048576Bytes=11313741824Bytes
SELECT a.tablespace_name "表空间名",
total "表空间大小",
free "表空间剩余大小",
(total - free) "表空间使用大小",
total / (1024 * 1024 * 1024) "表空间大小(G)",
free / (1024 * 1024 * 1024) "表空间剩余大小(G)",
(total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)",
round((total - free) / total, 4) * 100 "使用率 %"
FROM (SELECT tablespace_name, SUM(bytes) free
FROM dba_free_space
GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM(bytes) total
FROM dba_data_files
GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name
--查看主键外键,索引等
SELECT t.table_name  AS 表名,
       t.column_name AS 表字段,
       co.comments   AS 表备注,
       t.data_type   AS 字段类型,
       t.data_length AS 字段长度,
       c.comments    AS 字段备注
  FROM user_tab_columns t
  JOIN user_col_comments c
    ON t.table_name = c.table_name
  JOIN user_tab_comments co
    ON co.table_name = t.table_name;
SELECT au.table_name AS 表名,
       cu.column_name AS 字段名,
       au.owner AS 用户,
       cu.constraint_name AS 约束名称,
       decode(au.constraint_type,
              'C',
              '普通字段',
              'P',
              '主键',
              'U',
              '唯一约束',
              'R',
              '外键') AS 约束类型
  FROM user_constraints au
  JOIN user_cons_columns cu
    ON au.table_name = cu.table_name;
--综合查询
SELECT 用户,
       索引名称,
       字段名称,
       字段类型,
       字段长度,
       字段备注,
       约束名称,
       约束对应的字段名,
       约束类型,
       表名,
       表备注,
       所属表空间
  FROM (
        --所有非约束表
        SELECT NULL               AS 用户,
                NULL               AS 索引名称,
                t.column_name      AS 字段名称,
                t.data_type        AS 字段类型,
                t.data_length      AS 字段长度,
                c.comments         AS 字段备注,
                NULL               AS 约束名称,
                NULL               AS 约束对应的字段名,
                NULL               AS 约束类型,
                t.table_name       AS 表名,
                co.comments        AS 表备注,
                ut.tablespace_name AS 所属表空间
          FROM user_tab_columns t
          JOIN user_col_comments c
            ON t.table_name = c.table_name
           AND t.column_name = c.column_name
          JOIN user_tab_comments co
            ON co.table_name = t.table_name
          JOIN user_tables ut
            ON ut.table_name = t.table_name
        UNION
        --所有约束表
        SELECT au.owner AS 用户,
                au.index_name AS 索引名称,
                t.column_name AS 字段名称,
                t.data_type AS 字段类型,
                t.data_length AS 字段长度,
                c.comments AS 字段备注,
                au.constraint_name AS 约束名称,
                cu.column_name AS 约束对应的字段名,
                decode(au.constraint_type,
                       'C',
                       '普通字段',
                       'P',
                       '主键',
                       'U',
                       '唯一约束',
                       'R',
                       '外键') AS 约束类型,
                t.table_name AS 表名,
                co.comments AS 表备注,
                ut.tablespace_name AS 所属表空间
          FROM user_tab_columns t
          JOIN user_col_comments c
            ON t.table_name = c.table_name
           AND t.column_name = c.column_name
          JOIN user_tab_comments co
            ON co.table_name = t.table_name
          JOIN user_constraints au
            ON au.table_name = t.table_name
          JOIN user_cons_columns cu
            ON cu.constraint_name = au.constraint_name
          JOIN user_tables ut
            ON ut.table_name = t.table_name) k;
创建序列:
CREATE SEQUENCE seq_huyingzhao
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXvalue -- 不设置最大值
NOCYCLE -- 一直累加,不循环
NOCACHE; --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE







让程序猿能共同成长起来

让程序猿传播和共享技术

让程序猿养成做笔记习惯

让程序猿持续的增长知识

让程序猿写代码更加规范

让程序猿职场上学会低调


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《常用数据库语句》的版权归原作者「二次猿」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注二次猿微信公众号

二次猿微信公众号:HuyingzhaoProMonkey

二次猿

手机扫描上方二维码即可关注二次猿微信公众号

二次猿最新文章

精品公众号随机推荐