Quero me concentrar em uma das especificações da linguagem SQL para fins de aprendizado e referência. Qual versão do padrão SQL é mais amplamente suportada nos DBMS, para que eu possa concentrar meu tempo e energia nela?
fonte
Quero me concentrar em uma das especificações da linguagem SQL para fins de aprendizado e referência. Qual versão do padrão SQL é mais amplamente suportada nos DBMS, para que eu possa concentrar meu tempo e energia nela?
Eu acho que você está tentando viver no mundo dos sonhos de Joe Celko, onde você só pode usar o SQL padrão e, em qualquer semana, pode ser necessário portar todo o seu código do SQL Server para o Oracle e, em seguida, do Oracle para o DB2 e depois voltar para o SQL Server novamente . Duas vezes.
Embora os aspectos principais e fundamentais do SQL padrão o ajudem em qualquer lugar, tentar limitar-se a esse conjunto de idiomas por medo de futuras portagens (ou apenas por princípio) não é um caminho que eu recomendaria. Pessoalmente, eu adiro ao padrão ANSI quando posso (por exemplo, <> vs.! =, COALESCE vs. ISNULL, CURRENT_TIMESTAMP vs. GETDATE () etc.), mas também não tenho medo de usar o SQL Server específico coisas que facilitam meu trabalho.
É importante entender como o SQL funciona em geral; é igualmente importante entender como o idioma funciona no (s) seu (s) RDBMS (s) - incluindo desvios do padrão, desvios da maneira como outro RDBMS pode ter implementado o mesmo conceito e extensões proprietárias que não existem em outros lugares.
O SQL Server, por exemplo, cobre uma boa parte do padrão e fica mais próximo da total conformidade com cada nova versão. Será que nunca vai cobrir 100%? Altamente duvidoso. Continuará a adicionar extensões proprietárias que não estão no padrão? Certamente. Se todo mundo cobrisse o padrão e ninguém saísse dele, não haveria vantagens em escolher uma plataforma em vez de outra, e todos estaríamos usando a mesma coisa.
Nenhum deles. Você pode aprender SQL (-ish) padrão para qualquer RDBMS.
O SQL padrão não é usado no mundo real para pagar trabalhos em projetos de sucesso ...
Dizendo isso, o MySQL é um bom lugar para começar e aqui está um tutorial
fonte
constructive guidance
incrivelmente hipócrita. Onde está sua orientação construtiva aqui para o gbn melhorar sua resposta?Todos os principais RDBMSs suportam as diferentes versões da especificação SQL em diferentes graus, com as versões mais antigas da especificação mais totalmente suportadas. Nem todos levam a conformidade igualmente a sério (por exemplo, a Oracle começou a oferecer suporte a 'ansi joins' em 2001, quase uma década após o SQL-92 ) e, como o @gbn já disse, na prática, você precisa conhecer o sabor do SQL usado por cada produto você usa.
O Postgres é uma exceção, pois "se orgulha da conformidade com os padrões" . Para "fins de aprendizado e referência", você precisa de prática prática com um banco de dados, não apenas conhecimento de um livro ou padrão, e o postgres é uma plataforma ideal para aprender as cordas porque:
fonte
Concordado com Jack e gbn, não há um padrão e você precisa fazer uma escolha. Para fazer essa escolha, você precisa selecionar o RDBMS primeiro. Eu recomendo pensar nas seguintes coisas: 1) você quer ser desenvolvedor de banco de dados ou DBA? 2) Com quais sistemas operacionais você deseja trabalhar? Eu concordo, essa pergunta é um pouco estranha, mas quando falo com os alunos, eles dizem que é importante.
Por exemplo (apenas exemplo, talvez eu esteja errado) se você quer ser um DBA e não quer trabalhar com o Windows, não precisa pensar no MSSQL. E se você quer ser DBA e gosta de trabalhar com cadeia de comando e arquivos de configuração - talvez o Oracle seja o que você precisa. Se você quer ser desenvolvedor, quer usar seu conhecimento em projetos freelancers, talvez precise do MySQL?
fonte