Galera estou postando o que e uma restricao em SGBD(Sistema Gerenciador de Banco de Dados) e quais restricoes existentes .Esta materia e super interessante porque no ultimo concurso do tribunal de justica do Para uma das questoes foi a respeito de Restricoes no SGBD.RestricoesOs tipos de dado sao uma forma de limitar os dados que podem ser armazenados na tabela. Entretanto, para muitos aplicativos a restricao obtida nao possui o refinamento necessario. Por exemplo, uma coluna contendo precos de produtos provavelmente so pode aceitar valores positivos, mas nao existe nenhum tipo de dado que aceite apenas numeros positivos. Um outro problema e que pode ser necessario restringir os dados de uma coluna com relacao a outras colunas ou linhas. Por exemplo, em uma tabela contendo informacoes sobre produtos deve haver apenas uma linha para cada codigo de produto.Para esta finalidade, a linguagem SQL permite definir restricoes em colunas e tabelas. As restricoes permitem o nivel de controle sobre os dados da tabela que for desejado. Se o usuario tentar armazenar dados em uma coluna da tabela violando a restricao, ocorrera um erro. Isto se aplica ate quando o erro e originado pela definicao do valor padrao.Restricoes de verificacaoUma restricao de verificacao e o tipo mais generico de restricao. Permite especificar que os valores de uma determinada coluna devem estar de acordo com uma expressao booleana (valor-verdade). Por exemplo, para permitir apenas precos com valores positivos utiliza-se:CREATE TABLE produtos ( cod_prod integer, nome text, preco numeric CHECK (preco > 0));Como pode ser observado, a definicao da restricao vem apos o tipo de dado, assim como a definicao do valor padrao. O valor padrao e a restricao podem estar em qualquer ordem. A restricao de verificacao e formada pela palavra chave CHECK seguida por uma expressao entre parenteses. A expressao da restricao de verificacao deve envolver a coluna sendo restringida, senao nao fara muito sentido.Tambem pode ser atribuido um nome individual para a restricao. Isto torna mais clara a mensagem de erro, e permite fazer referencia a restricao quando se desejar altera-la. A sintaxe e:CREATE TABLE produtos ( cod_prod integer, nome text, preco numeric CONSTRAINT chk_preco_positivo CHECK (preco > 0));Portanto, para especificar o nome da restricao deve ser utilizada a palavra chave CONSTRAINT, seguida por um identificador, seguido por sua vez pela definicao da restricao (Se nao for escolhido o nome da restricao desta maneira, o sistema escolhera um nome para a restricao).Uma restricao de verificacao tambem pode referenciar varias colunas. Supondo que serao armazenados o preco normal e o preco com desconto, e que se deseje garantir que o preco com desconto seja menor que o preco normal:CREATE TABLE produtos ( cod_prod integer, nome text, preco numeric CHECK (preco > 0), preco_com_desconto numeric CHECK (preco_com_desconto > 0), CHECK (preco > preco_com_desconto));As duas primeiras formas de restricao ja devem ser familiares. A terceira utiliza uma nova sintaxe, e nao esta anexada a uma coluna em particular. Em vez disso, aparece como um item a parte na lista de colunas separadas por virgula. As definicoes das colunas e as definicoes destas restricoes podem estar em