Visualizando Objetos e dados com a descrever e instruções SELECT no Oracle 12c
Talvez as afirmações mais comuns que serão executados no seu banco de dados 12c Oracle como um administrador de base (DBA) são os comandos descrever e selecionar. Afinal, uma grande parte do seu trabalho será investigar o que está no banco de dados e analisar as condições atuais.
Digamos que você queira obter algumas informações sobre os postos de trabalho na sua empresa.
Abra um terminal para o seu sistema operacional como o proprietário do software Oracle.
Defina o seu ambiente com oraenv.
Digitar
e pressione Enter. Digitar
e pressione Enter.Digitar
e pressione Enter. Digitar
e pressione Enter. A saída a seguir será exibida:
SQL> describe jobsName nulo? Digitar----------------------------- -------- ------------ -------- JOB_IDNOT NULL VARCHAR2 (10) JOB_TITLE NOT NULL VARCHAR2 (35) MIN_SALARY NÚMERO (6) MAX_SALARY NÚMERO (6)
Para ver o job_id e job_title, tipo
e pressione Enter.
Você deverá ver o seguinte resultado:
SQL> selecione job_id, job_title de empregos de JOB_ID JOB_TITLE ---------- ----------------------------- ------ linhas AD_PRES PresidentAD_VP Administração vice PresidentAD_ASST Administração AssistantFI_MGR Finanças ManagerFI_ACCOUNT AccountantAC_MGR Contabilidade ManagerAC_ACCOUNT AccountantSA_MAN Pública Vendas ManagerSA_REP Vendas RepresentativePU_MAN Compras ManagerPU_CLERK Compras ClerkST_MAN da ManagerST_CLERK da ClerkSH_CLERK envio ClerkIT_PROG ProgrammerMK_MAN de marketing ManagerMK_REP marketing RepresentativeHR_REP Recursos Humanos RepresentativePR_REP Representative19 Relações públicas seleccionado.
O comando DESCRIBE permite que você veja a estrutura da tabela. Isso inclui os nomes das colunas, os tipos de dados, e se as colunas estão autorizados a estar vazio (nulo). Esta informação pode ser muito importante na construção de várias instruções SQL. Por exemplo, se você fosse inserir uma linha, você precisa fornecer valores para job_id e job_title porque eles não são NULL.
A instrução SELECT é muito simples. Note-se que ele foi digitado em uma única linha. SQL não se importa como você quebrar a linha declarações por linha, contanto que você não quebrar palavras pela metade.
Quebra-se instruções SQL por cláusula. Para instruções mais longas e mais complexas, você pode usar muitas quebras de linha. Estas pausas podem ajudar a fazer declarações mais fácil de ler.
Aqui estão duas instruções SELECT e sua produção:
SQL> SELECT * 2 de jobs3 onde '= job_title President'-JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY ---------- ---------------------- ------------- ---------- ---------- AD_PRES President20080 40000SQL> SELECT * 2 de jobs3 onde job_title como 'P%' - JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY ---------- ----------------------------------- - --------- ---------- AD_PRES President20080 40000AC_ACCOUNT contador público 42009000PU_MAN Compras Manager8000 15000PU_CLERK Compras Clerk 25005500IT_PROG Programmer4000 10000PR_REP Representante de Relações públicas 4500 105006 linhas selecionadas.
Note-se que em vez de usar uma lista de colunas, utilizou-se um asterisco (*). Que conta a cláusula SELECT é retornar todas as colunas, ao contrário do que foi mostrado anteriormente, onde foram selecionados apenas duas colunas.
Observe o uso da cláusula WHERE. A cláusula WHERE restringe o que os dados são retornados. Neste exemplo, a cláusula WHERE é usada de duas maneiras:
Como uma igualdade (=): Você procurar exatamente o que você deseja encontrar.
Como uma pesquisa difusa (como): Você pode usar wild cards para completar termos de pesquisa. Oracle usa o sinal de porcentagem como um símbolo wild card.
O uso do símbolo% especifica que você deseja selecionar todas as linhas que começam com P maiúsculo e depois têm nada depois deles. Muitas vezes, em sistemas operacionais, você vê um asterisco usado como um cartão selvagem. Isso não é o caso dentro de uma instrução SQL, though- vez disso, use um sinal de porcentagem (%).
Somando-se a instrução SELECT, você vê
SQL> selecione inferior (job_id), superior (job_title) título, max_salary2 de jobs3 onde job_title como 'P%' 4 e max_salary lt; 140005 fim de max_salary ASC-INFERIOR (JOB_ TITLEMAX_SALARY ---------- ------------------------------ ----- ---------- pu_clerk COMPRAS ATENDENTE 5500ac_account contador público 9000it_prog PROGRAMMER10000pr_rep RELAÇÕES PÚBLICAS REPRESENTANTE 10500
Algumas funções foram adicionadas às colunas na cláusula SELECT. Funções tomar e entrada para produzir uma saída: neste caso, job_id eo job_title. Foram utilizadas as funções de caracteres superiores e inferiores. Você consegue adivinhar o que eles fazem? Neste caso, é bastante óbvio. A Oracle tem dezenas de funções para você usar a agir em seus dados em todos os tipos de formas.
Neste caso, é demonstrado como ele não é necessariamente importante como seus dados é stored- você pode exibi-lo como quiser. Observe os nomes das colunas para job_id e job_title na saída. job_id parece ser uma mistura de nossa função eo column_name.
Isso é porque a Oracle usa automaticamente tudo o que você digita na cláusula SELECT para o seu título da coluna. Na segunda coluna, job_title, usar um # 147-alias # 148- para fazer a saída é um pouco mais bonito.
Um alias vem após a construção coluna, mas antes da vírgula. Neste exemplo, título é o alias. O alias será sempre padrão para maiúsculas, a menos que você colocar aspas duplas (# 147- # 148-) em torno dele. Você também precisa usar aspas duplas se o alias é mais do que uma palavra. Por exemplo
SQL> selecione superior (job_title) "Cargo" 2 de jobs3 onde job_title como 'P%' - Cargo -------------------------- --------- REPRESENTANTE PRESIDENTPUBLIC ACCOUNTANTPURCHASING MANAGERPURCHASING CLERKPROGRAMMERPUBLIC RELAÇÕES
O uso da instrução E é uma construção da cláusula WHERE. A declaração e permite a utilização de várias condições para restringir nossos dados.
Por último, a cláusula ORDER BY ordena a saída na coluna especificada, numericamente ou alfabeticamente, dependendo do tipo de dados. Por padrão, ele classifica na ordem crescente. A palavra-chave ASC (ascendente) foi adicionado para o esclarecimento. Você poderia ter usado DESC em vez de ordenar os resultados em ordem decrescente numérica do max_salary.