Banco de Dados de execução no Sybase - Parte 5 Divisão 4 Introdução Esta é a parte 5 da minha série, implementando banco de dados no Sybase. Esta série faz parte da quarta divisão das minhas séries maiores, Banco de Dados. Eu suponho que você leu todas as diferentes partes do grande série (ou tutoriais equivalentes de outros lugares) até este ponto. Nesta parte da série, nós olhamos pontos importantes no Sybase SQL Anywhere 12 Instrução CREATE TABLE. Vamos também criar as tabelas do exemplo.
Nota: Se você não pode ver o código ou se você acha que alguma coisa está faltando (link quebrado, imagem ausente), apenas contacte-me em [email protected]. Ou seja, contacte-me para o menor problema que você tem sobre o que você está lendo. Sintaxe CREATE TABLE Statement SQL Primeiro vou dar-lhe a sintaxe completa. Quando você lê-lo você provavelmente não vai entender. Vou explicar os pontos importantes a seguir. A sintaxe começa com: [. Proprietário] CREATE [GLOBAL TEMPORARY] TABLE [SE NÃO EXISTE] table-name ({column-definição | mesa-restrição | pctfree}, ...
) [{IN | ON} dbspace-name] [ENCRIPTADA] [ON COMMIT {APAGAR | PRESERVE ROWS} | NÃO TRANSACTIONAL] [AT location-string] [SHARE BY ALL] Na sintaxe, qualquer coisa que está em um colchete é opcional. Na sintaxe, | meios e /ou, que é que você pode digitar o que está em sua esquerda e ou o que é a sua direita. Os parênteses na sintaxe deve ser digitado.
A sintaxe para a coluna de definição é: nome da coluna tipo de dados [COMPRIMIDA] [INLINE {inline-comprimento | Use default}] [PREFIX {prefixo de comprimento | Use default}] [[NO] INDEX] [[NOT] NULL] [valor-default PADRÃO | IDENTIDADE] [coluna restrição ...] A sintaxe para o valor-default na coluna da definição é: o valor especial | corda | variável global | [-] Número | (Constant-expression) | built-in-função (constant-expression) | AUTOINCREMENT | Banco de dados atual | Usuário remoto CORRENTE | TIMESTAMP UTC CORRENTE | GLOBAL AUTOINCREMENT [(partição-size)] | NULL | TIMESTAMP | UTC TIMESTAMP | Último utilizador A sintaxe para o valor especial no valor padrão é: CURRENT {DATE | TEMPO | TIMESTAMP | USUÁRIO | EDITOR | Banco de dados | Usuário remoto | UTC TIMESTAMP} | USUÁRIO A sintaxe para coluna da restrição na coluna de definição é: [CONSTRAINT restrição-name] {UNIQUE [CLUSTERED] | CHAVE PRIMÁRIA [CLUSTERED] [ASC | DESC] | Referências nome da tabela [(nome da coluna)] [JOGO [ORIGINAL] {SIMPLE | CHEIA}] [-list ação] [CLUSTERED] | CHECK (condição)} | COMPUTE (expressão) A-restrição de tabela na sintaxe principal é: [CONSTRAINT restrição-name] {UNIQUE [CLUSTERED] (nome da coluna [ASC | DESC], .
..) | CHAVE PRIMÁRIA [CLUSTERED] (nome da coluna [ASC | DESC], ...) | CHECK (condição) | -key-restrição estrangeira} A sintaxe da-key-restrição estrangeira na tabela-restrição é: [NOT NULL] FOREIGN KEY [role-name] [(nome da coluna [ASC | DESC], ...)] Referências table-name [(nome da coluna, ...)] [JOGO [ORIGINAL] {SIMPLE | CHEIA}] [-list ação] [CONFIRA ON COMMIT] [CLUSTERED] [PARA OLAP WORKLOAD] A sintaxe da lista de ação do-key-restrição estrangeira é: [ON UPDATE ação] [ON DELETE ação] A sintaxe a ação na lista de ações é: CASCADE | SET NULL | SET DEFAULT | RESTRINGIR A sintaxe da-corda localização na sintaxe principal é: nome-servidor-remoto [db-name] [proprietário] Object-name |.
. remote-server-name; [db-name], [proprietário]; object-name O sintaxe de pctfree na sintaxe principal é: PCTFREE livre por cento do espaço a sintaxe por cento livre de espaço em pctfree é: Integer Temos acabado de ver a sintaxe completa. Você provavelmente não ter entendido isso. Vou explicar apenas os pontos importantes. Consulte algum outro documento para os outros pontos. Integridade referencial A integridade referencial é imposta pela linha de chave externa completa na instrução SQL ao criar a tabela.
A coluna da chave estrangeira é referência na outra tabela tem que ser uma chave primária ou uma coluna exclusiva. A restrição de verificação da restrição CHECK cuja sintaxe é: CHECK (condição) é usado para restringir valores em uma coluna dentro de um conjunto particular. Por exemplo, você pode usá-lo para insistir que nenhuma entrada de preço na coluna preço deve ser menor que zero. A restrição CHECK é codificado dentro da instrução SQL. Na próxima parte da série vamos aprender a escrever a condição na sintaxe, "CHECK (condição)".
A restrição CHECK pode ser implementado na coluna da definição ou na seção de mesa restrição da sintaxe SQL completa. Comentário Você pode digitar um comentário na instrução SQL. Um comentário é usado para ajudá-lo a lembrar o que você codificada. Ela começa com dois traços consecutivos, ou seja -, até que você pressione a tecla Enter.
Aqui está um exemplo que eu tenho do manual: criar ordens de mesa (order_num INTEGER NOT NULL PRIMARY KEY, DATA date_ordered, nome CHAR (80)); CREATE TABLE Order_item (INTEGER order_num NOT NULL, item_num NÃO SMALLINT NULL, PRIMARY KEY (order_num, item_num), - Quando um pedido é excluído, excluir todos os seus -. Itens CHAVE ESTRANGEIRA (order_num) REFERÊNCIAS Ordens (order_num) ON DELETE CASCATA ); Há duas instruções SQL aqui. A segunda instrução SQL tem duas linhas de comentário, onde uma sentença começa em uma linha de comentário e termina na outra linha de comentário.
Índices as diretrizes para a criação de índices em uma tabela são: - Definir um índice exclusivo em uma chave primária. - Índice de todas as chaves estrangeiras. - Quer insistir em valores exclusivos para a coluna, índice dessa coluna. - Índice freqüentemente pesquisados colunas. - Colunas de índice que freqüentemente determinam a ordem de classificação. - Quanto mais tempo a tabela, a probabilidade de que ele deve ter índices.
Da maneira Sybase SQL Anywhere 12 é projetado, os dois primeiros pontos acima são tomadas de cuidados para você como segue: Quando você declarar colunas como chaves primárias na instrução SQL CREATE TABLE, os índices são criados automaticamente para as colunas de chave primária, eo unicidade da chave primária for feita. Quando você imposta a integridade referencial, os índices são aplicados para as chaves estrangeiras. As chaves primárias e chaves estrangeiras são freqüentemente pesquisados colunas. Assim, muitos dos colunas para o ponto 4 acima são tomadas de cuidados.
No entanto, se você acredita que uma coluna em uma tabela que não é uma chave primária ou uma chave estrangeira será freqüentemente pesquisados, em seguida, índice da coluna. Os últimos três pontos não são atendidos pela Sybase SQL Anywhere 12, enquanto os três primeiros pontos são tomadas de cuidados. Com Sybase SQL Anywhere 12, se você quer uma coluna para ser único, você tem que usar a restrição exclusiva da coluna de definição. Em seguida, pode indexar a coluna, se você acha que vai ser freqüentemente pesquisados. Eu expliquei o resto dos pontos importantes na parte anterior da série.
Criando tabelas do exemplo que continuar com o exemplo de atacado. Realizar as seguintes instruções: - Abra a janela do prompt de comando. - Digite o seguinte e pressione Enter para ir para o diretório root: cd c: \\ - Digite o seguinte comando e pressione Enter. Se ele diz que o banco de dados (arquivo) já existem, permitir que coisas como essa. Se o caminho "c: \\ atacado" não existe, criá-lo primeiro. dbinit c: \\\\ \\\\ atacado wholesale.db - Inicie o servidor eo banco de dados com o seguinte comando e pressione Enter após digitar. dbeng12 -n wholesalesrv c: \\\\ \\\\ atacado wholesale.
db - Inicie a ferramenta janela, SQL Interativo e se conectar ao banco de dados digitando o seguinte comando e pressionando a tecla Enter. dbisql -c "server = wholesalesrv; DBF = c: \\\\ \\\\ sholesale wholesale.db; UID = DBA; PWD = sql" - Há 8 mesas cuja criação SQL declarações estão na parte anterior da série. Digite cada uma das declarações completas nas instruções SQL painel na janela do SQL Interactive. Depois de digitar clique SQL >>