Vamos para o começo de tudo e relembrar o que é Banco de Dados Relacionais.

Agora, vamos criar um banco de dados para iniciarmos:

/* CRIANDO UMA DATABASE */
CREATE DATABASE [WILLDEGLAN]
GO

/* CONECTANDO A UM BANCO */
USE [WILLDEGLAN]
GO

Acima, foi criado o banco de dados [WILLDEGLAN] e foi dado o comando para selecioná-lo. Com a base criada e selecionada, vamos criar as tabelas [ALUNO], [ENDERECO] e [TELEFONE]:

/*CRIACAO DE TABELAS */
CREATE TABLE ALUNO(
	  IDALUNO INT IDENTITY
	, NOME VARCHAR(30) NOT NULL
	, SEXO CHAR(1) NOT NULL
	, NASCIMENTO DATE NOT NULL
	, EMAIL VARCHAR(30)

	  CONSTRAINT PK_IDALUNO PRIMARY KEY (IDALUNO)
	, CONSTRAINT UNK_EMAIL UNIQUE (EMAIL)
);
GO

/* CRIANDO A TABELA ENDERECO 1 X 1 */
CREATE TABLE ENDERECO(
	  IDENDERECO INT IDENTITY(10,1)
	, BAIRRO VARCHAR(30)
	, UF CHAR(2) NOT NULL CHECK (UF IN('RJ','SP','MG','DF'))
	, ID_ALUNO INT 

	  CONSTRAINT PK_IDENDERECO PRIMARY KEY (IDENDERECO)
	, CONSTRAINT UNK_ID_ALUNO UNIQUE (ID_ALUNO)
);
GO

/* CRIANDO A TABELA TELEFONES 1 X N */
CREATE TABLE TELEFONE(
	  IDTELEFONE INT IDENTITY
	, TIPO CHAR(3) NOT NULL
	, NUMERO VARCHAR(10) NOT NULL
	, ID_ALUNO INT

	  CONSTRAINT PK_IDTELEFONE PRIMARY KEY (IDTELEFONE)
	, CHECK (TIPO IN ('RES','COM','CEL'))
);
GO

Percebam que foram criadas algumas CONSTRAINTs juntamente com as tabelas. Agora vamos ver como criar as CONSTRAINTs em tabelas já criadas e formar as relações entre as duas tabelas:

/*CONSTRAINTS */
ALTER TABLE ALUNO
	ADD CONSTRAINT CK_SEXO CHECK (SEXO IN('M','F'))
GO

Foi criada uma CONSTRAINT CHECK para não ser inserido nenhum dado no campo SEXO diferente de ‘M’ ou ‘F’, abaixo será criada um Chave Estrangeira (FK) para montar o relacionamento entre as tabelas [ALUNO], [ENDERECO] e [TELEFONE].

/* CRIANDO A FK - RELACIONAMENTO */
ALTER TABLE ENDERECO ADD CONSTRAINT FK_ENDERECO_ALUNO
	FOREIGN KEY(ID_ALUNO) REFERENCES ALUNO(IDALUNO);
GO


ALTER TABLE TELEFONE ADD CONSTRAINT FK_TELEFONE_ALUNO
	FOREIGN KEY(ID_ALUNO) REFERENCES ALUNO(IDALUNO);
GO

Existe alguns procedimentos armazenados (SP) já criado pelo próprio SQL Server para visualizar informações sobre as tabelas ou objetos. Segue abaixo duas SPs como exemplo:

/* PROCEDURES - JA CRIADAS NO SQL SERVER */
SP_COLUMNS ENDERECO;
GO

SP_HELP ALUNO;
GO

Para encerrar essa postagem, vamos popular as tabelas com INSERT INTO:

/* POPULANDO AS TABELAS */ 
/* ALUNO */
INSERT INTO ALUNO VALUES('ANDREA','F','1981/12/09','[email protected]')
INSERT INTO ALUNO VALUES('ANAIR','F','1978/03/09','[email protected]')
INSERT INTO ALUNO VALUES('RUI','M','1951/07/09','[email protected]')
INSERT INTO ALUNO VALUES('JOAO','M','2002/11/09','[email protected]')
GO

/* ENDERECO */
INSERT INTO ENDERECO VALUES('RIO DE JANEIRO','RJ',1)
INSERT INTO ENDERECO VALUES('SAO PAULO','SP',2)
INSERT INTO ENDERECO VALUES('SANTA MARIA','DF',4)
INSERT INTO ENDERECO VALUES('ZONA SUL','SP',3)
GO

/* TELEFONE */
INSERT INTO TELEFONE VALUES('CEL','7899889',1)
INSERT INTO TELEFONE VALUES('RES','4325444',1)
INSERT INTO TELEFONE VALUES('COM','4354354',2)
INSERT INTO TELEFONE VALUES('CEL','2344556',2)
GO

Hoje criamos a database WILLDEGLAN e as tabelas ALUNO, ENDERECO e TELEFONE. Criamos constraints PK, FK, UNIQUE e CHECK. Vimos como realizar alterações na estrutura de tabela já criadas e por fim inserimos dados as tabelas com INSERT INTO.

Como bônus, vou deixar o diagrama da database criada nesse post:

10 comentários

  1. Rosa em 07/04/2021 às 02:55

    I’m truly enjoying the design and layout of your
    website. It’s a very easy on the eyes which makes
    it much more pleasant for me to come here and visit more often.
    Did you hire out a designer to create your theme?
    Excellent work!



  2. Pat em 03/04/2021 às 01:17

    Hello there I am so excited I found your weblog, I really found you by accident, while I was looking on Google for something else, Regardless I am here now and would just like to say kudos for a marvelous post
    and a all round exciting blog (I also love the theme/design), I don’t have time to look over it all at the minute but
    I have book-marked it and also added your RSS feeds, so when I have time I will be back
    to read more, Please do keep up the excellent jo.



  3. Thaan Costa em 20/01/2021 às 15:33

    Parabéns meu caro!
    Muito sucesso nesse novo projeto.



  4. Edson em 20/01/2021 às 11:40

    Muito boa a aula. Parabens.



    • Willdeglan em 20/01/2021 às 15:07

      Obrigado, veja também o vídeo demonstrativo que está incorporado, não esqueça de deixar um like e se inscreva lá no canal 😉



  5. Gilvan Alencar em 17/01/2021 às 13:15

    Parabéns pelo projeto.



    • Willdeglan em 20/01/2021 às 15:07

      Obrigado, veja também o vídeo demonstrativo que está incorporado, não esqueça de deixar um like e se inscreva lá no canal 😉



  6. Maurício Barros em 03/01/2021 às 15:34

    Iniciativa fantástica! Parabéns!



    • Willdeglan em 20/01/2021 às 15:07

      Obrigado, veja também o vídeo demonstrativo que está incorporado, não esqueça de deixar um like e se inscreva lá no canal 😉