sexta-feira, 29 de maio de 2015

SQL Expert Português - Parte 1




Este capítulo começa a examinar os blocos de construção de um banco de dados SQL, que são os objetos dentro do banco de dados que os programadores criam para armazenar os dados que preenchem a base de dados.


Categorizar os principais objetos de banco de dados


Objetos de banco de dados são a base de qualquer aplicação de banco de dados. Objetos de banco de dados apoiam tudo e quaisquer necessidades de aplicações de banco de dados, a fim de formar um aplicativo de trabalho. Esta seção tem um olhar de alto nível para os objetos de banco de dados que pode ser criado em um RDBMS Oracle, concentrando-se nos objetos que são testados no exame. Aqui vamos separar objetos de banco de dados em categorias e discutir a relação entre os objetos e esquemas. O resto do livro irá mergulhar em maiores detalhes sobre cada objeto de banco de dados que está incluído no exame.






O que são objetos de banco de dados?


Há muitos tipos diferentes de objetos de banco de dados que podem ser criados no Oracle RDBMS. O exame analisa oito desses objetos em grande detalhe.


A lista completa


Um banco de dados é constituído por um ou mais objetos de dados. A lista a seguir mostra os objetos que um desenvolvedor de banco de dados pode criar na 11g RDBMS Oracle. Os que estão marcados com um asterisco são incluídos no exame. (Fonte: Linguagem SQL Reference Manual).


Clusters
Constraints*
Contexts
Database links
Database triggers
Dimensions
Directories
External procedure libraries
Indexes*
Index-organized tables
Indextypes
Java classes, etc.
Materialized view logs
Materialized views
Mining models
Object tables
Object types
Object views
Operators
Packages


Date datatypes as vezes se referem dentro da documentação ORACLE com “datetimes”, Date Datatupes consiste em “campos“ e cada campo (FIELD) é um componente da data ou do tempo,hora,minutos, etc.


Veja na tabela 2- 3 a lista de fields e as varias combinações para formar a datatype.


DATE - Aceita data e informações do tempo (horas), os campos incluem ano,mês,date,minute and second. O valor da data Os valores podem ser armazenados como literais, ou o uso de funções de conversão que você verá mais adiante no Capítulo 6. Data literais são colocados entre aspas simples e podem ser especificados. O Default Oracle contem um calendário que é definido no parâmetro NLS_DATE_FORMAT o valor para NLS_DATE_FORMAT para o seu banco de dados pode ser implementado usando o SQL*plus com o comando SHOW PARAMETER NLS_DATE_FORMAT. ( nota: parâmetro NLS_TERRITORY também pode mudar as configurações de NLS_DATE_FORMAT este valor aparece com o SQL*Plus no comando SHOW PARAMETER NLS_TERRITORY) o parametro NLS_DATE_FORMAT pode também mudar com ALTER SESSION ou ALTER SYSTEM que são instruções SQL que não estão incluídos no exame. Por padrão, as instalações do U.S e U.K no NLS_DATE_FORMAT de DD-MON-RR onde DD são os dois digiotos do dia,MON são três letras que abreviam o mês e RR são os dois dígitos do ano,outro valor para RR RR é o ano de dois dígitos, onde os valoresde RR variando 00-49 estão a ser assumida no século 21 (2000 2049), enquanto que os valores de RR que variam de 50 a 99 são considerados no século 20 (1950 a 1999). Por exemplo, '10 -NOV-10 "é o primeiro de novembro de 2010( nota: algumas datas no formato ANSI é 2010-11-01 ANSI format é YYYY-MM-DD onde YYYY são os quatro digitos do ano,MM são ios dois dias do mês e DD são os dois dígitos do dia) Temos muito a falar sobre datas,formatos e conversão,quando discutirmos funções no capitulo 6.


· TIMESTAMP(n) - é a extensão da data segundo fracionada.TIMESTAMP monstra ano,mês,dia,horas,minutos e segundos e segundos fracionais.O valor de n especifica a precisão do segundo fracional. N esta entre 1- 9 se n não for declarado fica o valor default de 6


· TIMESTAMP(n) WITH TIME ZONE – uma variação do TIMESTAMP onde adiciona também a “time zone” o nome da região.TIMESTAMP WITH TIME ZONE é usado em informações de data de rastreamento em diferentes fusos horários e áreas geográficas. O intervalo para o símbolo n representa 1-9. Se n for omitido, o padrão é um valor de 6.


· TIMESTAMP(n) WITH LOCAL TIME ZONE – uma variação de TIMESTAMP e TIMESTAMP WITH LOCAL TIME ZONE é diferente de TIMESTAMP WITH TIME ZONE em que a diferença de fuso horário é não armazenada com o valor de coluna, e o valor recuperado é enviado no fuso horário de sessão local do usuário. O deslocamento é calculado automaticamente. Se n for omitidos, o padrão é um valor de 6.


· INTEVAL YEAR(n) TO MONTH – Armazena um extensão de tempo definida apenas com os valors de ano e mês,onde n é o numero de dígitos usados para definir o valor do ano, o valor aceitável de N é 0-9;por default N é 2,esta datatype é usada para armazenar a diferença entre duas datas.


· INTERVAL DAY (n1) TO SECOND (n2) - Armazena a extensão do tempo definida em dia,horas,minutos e segundos,onde n1 é o valor declarado para dias e n2 para segundos. Os valores para n1 são de 0-9 e default é 2. O valor n1 especifica quantos dígitos são aceitaves na declaração do tamanho do numero para dia, o valor para n2 é a fração de segundos o valor aceitável é de 0-9 e o default é 6. Útil para armazenar a diferença entre dois valores de data.







Heads up: os tipos de dados que lidam com diferenças de fuso horário são muito importante para o exame, eles são especificamente referenciados numa das certificação objetivos. Nós vamos olhar para funções no Capítulo 6, que lidam com esses tipos de dados.




Large Objects (LOBs)


Grandes Objetos DATATYPES, também são conhecidos com LOBs, incluindo os abaixo;
· BLOB – O nome “BLOB” é a abreviação de Binary Large Object como imagens e arquivos de vídeo. Declaração é feita sem precisão ou escala. O tamanho máximo é calculado por meio de uma fórmula que inclui vários itens, incluindo um tamanho inicial de 4GB. o parâmetro CHUNK, é a configuração para o tamanho do bloco de banco de dados, o que é uma configuração que afeta todo o armazenamento no banco de dados. Nada disso é uma questão sobre a o exame. O exame irá se concentrar em como usar tipos de dados LOB em SQL sintaxe da linguagem. LOBs podem geralmente ser usados como outros tipos de dados. tabelas podem tem várias colunas com tipos de dados LOB. No entanto, não pode ser LOB primário chaves, nem usado com DISTINCT, GROUP BY, ORDER BY, ou JOINS.


· CLOB – o nome “CLOB” é a abreviação de Character Large Object. CLOB aceita texto extensos. A declaração é fora de uma escala precisa. O tamanho Maximo é calculado da mesam maneira que em BLOB.


· NCLOB - Aceita dados CLOB em Unicode. O tamanho máximo é calculado em da mesma forma que é para o tipo de dados BLOB. Quanto Unicode-it é um conjunto de caracteres que serve como uma alternativa para ASCII e representa um padrão mais universal que suporta todos os principais idiomas mais facilmente do que as outras implementações em uso hoje. Oracle e mais outro grande fornecedores adotaram Unicode em seus produtos, e comum web tecnologias já apoiá-lo. Dado o papel crescente de globalização e suporte a vários idiomas, qualquer aplicativo legado implantado sem Unicode pode inevitavelmente exigir um esforço de conversão. oracle Corporation está recomendando oficialmente o uso de Unicode como o banco de dados nacional definido para todo o desenvolvimento de novo sistema de caracter






Abaixo segue um exemplo de tabela que inclue a coluna CLOB datatype:






CREATE TABLE CRUISE_NOTES


(CRUISE_NOTES_ID NUMBER,


CRUISE_NOTES CLOB);






No procedimento do exemplo criado a tabela com duas colunas sendo que a segunda é CLOB, esta coluna pode receber dados extremamentes longos.ORACLE Corporation desencoraja o uso do antigo LONG datatype e encoraja você converter LOB datatypes. Por exemplo você tem mais uma coluna LOB na tabela, vocÊ seleciona, você pode inserir Oracle Corporation desencoraja o uso do antigo e tipo de dados LON incentiva você a convertê-los em LOB tipos de dados, que têm menos restrições. Por exemplo, você pode adicionar mais de uma coluna LOB a uma tabela, você pode selecionar -los, você pode inserir em tabelas com colunas LOB, e excluir linhas com LOB


valores. No entanto, você não pode usar LOBs em GROUP BY ou ORDER BY.






Todos esses DATATYPES você viu ate agora e são contruidos pelo Oracle e incluem SQL. Todos esses DATATYPES são conhecidos por “built-in” datatypes e também é possível para os usuários criar uma “user-defined datatypes. User-defined datatypes é a criação usada no SQL no comando CREATE TYPE, nós usamos o PL/SQL código e não é informado no exame.






Explicando como as CONSTRAINS são criadas em uma tabela






Você pode criar uma CONSTRAINT para suportar outros objetos especificado na Tabela


Como tal não é um CREATE CONSTRAINT declaração por si só. em vez você cria uma restrição como parte de uma outra declaração, como CREATE TABLE ou ALTER TABLE. Aqui está um exemplo de uma instrução CREATE TABLE, que inclui a sintaxe necessária para criar uma restrição:






CREATE TABLE positions


( position_id NUMBER


, position VARCHAR2(20)


, exempt CHAR(1)


, CONSTRAINT positions_pk PRIMARY KEY (position_id)


);


No exemplo acima, você criou uma tabela POSITIONS, que consiste em três colunas, POSITION_ID,POSITION and EXEPT depois do código onde EXEPT é definido,podemos ver adicionada a linhas com o código criar a CONSTRAINT. Essa não é a única maneira de criar uma restrição,


mas é como este exemplo optar por fazê-lo. Também neste exemplo, estamos a escolher


para citar a restrição, algo que não necessariamente tem que fazer.


A restrição é chamado POSITIONS_PK. Nós estamos especificando que este


Restrição é do tipo PRIMARY KEY, e estamos aplicando a restrição para a coluna na tabela que é chamado POSITION_ID, que definimos em primeiro lugar.






Criando CONSTRAINS junto com CREATE TABLE






Temos duas formas de criar a CONSTRAINS podemos criar junto com a criação da tabela “in line” e “ out of line”






CREATE TABLE “in line” Constraints






Aqui temos um exemplo de linhas criadas como a PRIMARY KEY “in Line”






CREATE TABLE PORTS


(PORT_ID NUMBER PRIMARY KEY,


PORT_NAME VARCHAR2(20));






Neste exemplo, criamos uma PRIMARY KEY constraint dentro da coluna PORT_ID.




Nenhum comentário:

Postar um comentário