Ali nuvem maxcompute Código SQL codificação de princípios e normas


Este artigo apresenta os princípios básicos e detalhados padrões de codificação de codificação SQL.

coding Guidelines

código SQL codificação princípio da seguinte forma:

  • Código é totalmente funcional e robusto.
  • Limpar linha de código, puro, pode ter certeza ornamental.
  • O código escrito para ter plenamente em conta o princípio da velocidade de execução ideal.
  • Linhas de código como um todo, estruturado, forte estruturado.
  • Código deve ter as observações necessárias para melhorar a legibilidade do código.
  • código de código compatível com não-obrigatória do desenvolvedor restrição de conduta escrito, desvio compreensível permitido em sem violar os requisitos gerais para a aplicação prática desta especificação também será ao mesmo tempo desempenhar um papel orientador no trabalho diário do desenvolvimento de código melhoria e adições contínua.
  • código SQL aplicam-se a todas as palavras-chave, palavras reservadas são minúsculas, como selecionar, a partir de onde, e, ou, união, insert, delete, o grupo, tendo, contar e assim por diante.
  • código SQL, além de palavras-chave aplicadas para manter a palavra de código de fora, também usam minúsculas, como nomes de campo, aliases de tabela.
  • Recuar uma quatro espaços, todos travessão são todos os múltiplos inteiros de um valor de retracção, nível alinhadas de acordo com o código. Proibir o uso de operação de seleção *, todas as operações devem especificar explicitamente o nome da coluna.
  • Parêntese requisitos na mesma posição da coluna correspondente.

SQL padrões de codificação

Codificação código SQL padrão é a seguinte:

  1. Código Chefe
    Código Chefe adicionar um assunto, descrição funcional, autor e data, e reserve modificar o registro ea barra de título, de modo que modificações subseqüentes aos estudantes para adicionar registros modificar. Note que cada linha não exceda 80 caracteres. modelo abaixo
    Aqui Insert Picture Descrição
-- MaxCompute(ODPS) SQL
--**************************************************************************
-- ** 所属主题: 交易
-- ** 功能描述: 交易退款分析
-- ** 创建者 : 有码
-- ** 创建日期: 20170616 
-- ** 修改日志:
-- ** 修改日期 修改人 修改内容
-- yyyymmdd name comment 
-- 20170831 无码 增加对biz_type=1234交易的判断 
--**************************************************************************

arranjo campo requer

  • Campo layout para cada linha um seleto modo de campo declaração selecionado.
  • Depois de selecionar uma palavra para trás travessão diretamente com a primeira seleção de campos, ou seja, a partir do campo desde que os dois primeiro travessão.
  • Outros campos de dois líder travessão, em seguida, coloque uma vírgula após o nome do campo.
  • Delimitado por vírgulas entre os dois campos é definido imediatamente em frente do segundo campo.
  • como declarações devem ser tratados com os campos apropriados na mesma. como recomendado para uma pluralidade de campos alinhadas na mesma coluna.
    Aqui Insert Picture Descrição
  1. arranjo cláusula INSERIR requer
    cláusula de inserção na mesma linha, não enrole.
  2. arranjo cláusula SELECT exige
    de instrução select é usado, onde, pelo grupo, tendo, a fim de, se juntar, união , etc. cláusula, necessidade de seguir os seguintes requisitos:
  • Escrever uma nova linha.
  • layout com a instrução select correspondente alinhado à esquerda.
  • cláusula de código subseqüente ion Sentença dois travessões da gravação volume.
  • Analisando o operador lógico e o onde cláusula, ou o arranjo em que o alinhamento à esquerda como.
  • Após a preparação do comprimento de código sucessiva de mais do que duas cláusulas para recuar um espaço, tal como a ordem por, por grupo semelhantes.
    Aqui Insert Picture Descrição
  1. Operadoras de todo os requisitos de espaçamento operadores aritméticos, operadores lógicos querer manter em torno de um espaço, a menos que o limite de comprimento de 80 caracteres por linha do que, ou estão na mesma linha.
  • Aqui Insert Picture Descrição
  1. instrução CASE preparado por
    operar a instrução SELECT para valores de campo será usado para determinar o valor da exposição do caso, a declaração caso redação coreografia correta para fortalecer linhas de legibilidade do código também é uma parte fundamental.

Demonstrações do programa de remessas caso da seguinte forma:

  • quando o idioma secundário na mesma linha recuar uma instrução case e começar a escrever depois do travessão.
  • Cada linguagem infantil ao escrever uma linha, é claro, se a instrução é mais longo pode envolver coreografia.
  • caso declaração deve conter sub-idioma mais, cláusula else ea cláusula quando alinhados.
  • Aqui Insert Picture Descrição
  1. Elaboração de especificações aninhado consulta
    subconsulta aninhados no desenvolvimento ETL sistema de data warehouse é frequentemente utilizado, arranjo de modo hierárquico de código é muito importante. Exemplos são como se segue:
    Aqui Insert Picture Descrição
  2. Tabela convenção definições de alias
  • Todas as tabelas além de um alias. Porque uma vez que a mesa de operação em uma instrução SELECT define um alias em todo o declaração sobre esta tabela deve ser usada para fazer referência o alias em vez. Tendo em conta a conveniência de escrever código, concordou alias como simples, concisa, evitando o uso de palavras-chave.
  • Simples nome de alias tabela de caracteres, com o nome recomendado por a, b, c, da ordem de D .......
  • Multi-nível sub consultas aninhados para reflectir antes hierarquia aliás, instruções SQL, nome alternativo, nomeação hierárquica, a partir do primeiro nível para o quarto nível, respectivamente, P, S, L, D representa, destina-se à parte, Segmento unidade, Detail. Ele também pode ser a, b, c, d para representar um primeiro nível para o quarto nível, o mesmo nível de uma pluralidade de cláusulas, após a adição de 1,2,3,4 ...... distinguir as letras. Acrescentar um comentário a um alias de tabela quando necessário circunstâncias.
  • Aqui Insert Picture Descrição
  1. comentário SQL
  • Cada instrução SQL deve adicionar notas explicativas.
  • Nota linha separada para cada instrução SQL, a declaração na frente.
  • Notas de campo imediatamente após o campo.
  • Para lidar com difícil entender ramo de expressões condicionais adicionar comentários.
  • Para cálculos importantes devem indicar a sua função.
  • Funções para muito tempo, ele deve ser implementado segmentado por instrução de função a ser descrição geral.
  • Quando a constante e comentário variável, o comentário deve ser significado (must), intervalo legal de valores (opcional) salvo valores.
--**************************************************************************
-- step1 清理当天的数据分区
--**************************************************************************

Código de exemplo


insert  overwrite table dw_ckd_ocr_data
select  coalesce(a.record_id,b.record_id)   as record_id
        ,coalesce(a.type,b.type)             as type
        ,coalesce(a.name,b.name)             as name
        ,coalesce(a.createtime,b.createtime) as createtime
        ,coalesce(a.updatetime,b.updatetime) as updatetime
        ,a.`入院日期`
        ,a.`出院日期`
        ,a.`出院记录/出院小结`
        ,b.`氯吡格雷用药信息` 
from    (
            select      record_id
                        ,type
                        ,name
                        ,to_char(updatetime, 'yyyy-mm-dd HH:MM') as updatetime
                        ,to_char(createtime, 'yyyy-mm-dd HH:MM') as createtime
                        ,WM_CONCAT(',',get_json_object(ocr_data,'$.data[0].入院日期')) as `入院日期`
                        ,WM_CONCAT(',',get_json_object(ocr_data,'$.data[0].出院日期')) as `出院日期`
                        ,WM_CONCAT('',get_json_object(ocr_data,'$.data[0].出院记录/出院小结')) as `出院记录/出院小结`
            from        ods_ocr_imgs
            where       name = '上传出院小结'
            and         status=2
            and         uid in  (
                                    select  trans_array(0,",",replace(replace(ocr_imgs,'[',''),']','')) as (ocr_imgs)
                                    from    ods_ocr_records 
                                    where   project_id = '580f7eb5-7462-4755-80d9-70d25ac8be23' 
                                    and     valid = true 
                                    and     ocr_imgs != "[]"
                                )
            group by    record_id
                        ,type,name
                        ,status
                        ,to_char(updatetime, 'yyyy-mm-dd HH:MM')
                        ,to_char(createtime, 'yyyy-mm-dd HH:MM')
        ) a
full outer join (   
                    select  record_id
                            ,type
                            ,name
                            ,to_char(updatetime, 'yyyy-mm-dd HH:MM')                as updatetime
                            ,to_char(createtime, 'yyyy-mm-dd HH:MM')                as createtime
                            ,get_json_object(ocr_data,'$.data[0].氯吡格雷用药信息')    as `氯吡格雷用药信息`
                    from    ods_ocr_imgs
                    where   name = '上传处方'
                    and     status=2
                    and     uid in  (
                                        select  trans_array(0,",",replace(replace(ocr_imgs,'[',''),']','')) as (ocr_imgs)
                                        from    ods_ocr_records 
                                        where   project_id = '580f7eb5-7462-4755-80d9-70d25ac8be23' 
                                        and     valid = true 
                                        and     ocr_imgs != "[]"
                                    )
                ) b 
on a.record_id=b.record_id;

descrição do link

código SQL princípios e normas codificação

Publicado 34 artigos originais · ganhou elogios 13 · vê 50000 +

Acho que você gosta

Origin blog.csdn.net/frone/article/details/85336105
Recomendado
Clasificación