-- Tabela - criar		CREATE TABLE
-- Tabela - alterar 		ALTER TABLE
-- Dados - inserir		INSERT INTO tabela(atributo, atributo,...) VALUES ('valor',999, ...)
-- Dados - mostrar		SELEC * FROM tabela


/*
-- Definindo campos nas tabelas

int 		- numero inteiro
char		- usa todos os caracteres reservados
varchar		- usa somente os caracteres usados, idenpendente dos caracteres reservados
nvarchar	- pode ser armazenados at 2TB de informao
text		- podemos escrever qualquer tipo de texto at 256 caracteres
datetime	- defime campo formatado como data
float		- numero flutuante com definies de casas depois da vrgula

*/

-- Aula - 27/02/2008
-- CRIANDO TABELAS E CHAVES PRIMARIAS

use FMU

go
create table
FORNECEDOR
	(
	cod_fornecedor		integer 	not null	Identity(1,1),
	fornecedor		varchar(250)	not null,
	cgc			bigint		not null,
	endereco		varchar(500)	not null,
	endereco_complemento	varchar(250)	null	
	primary key(cod_fornecedor)
	)
go

go
create table
PRODUTO
	(
	nr_produto		varchar(30)	not null,
	nome			varchar(250)	not null
	primary key (nr_produto)
	)
go

go
create table
PEDIDO
	(
	nr_pedido		integer		not null,
	data_emissao		datetime	not null,
	cod_fornecedor		integer		not null
	primary key (nr_pedido)
	)
go


go
create table
ITEM
	(
	cod_item		integer		not null	Identity(1,1),
	nr_pedido		integer		not null,
	nr_produto		varchar(30)	not null,
	quantidade		integer		not null,
	preco_unitario		float(2)	not null
	primary key (cod_item)
	)
go

-- Aula - 05/03/2008
-- CRIANDO CHAVER ESTRANGEIRAS ( FK )

alter table		
ITEM		add
 constraint	[fk_produto_item] 		-- Nome padro: [ FK_TabelaPai_TabelaFilha ]
 foreign key 	(nr_produto)
 references	PRODUTO(nr_produto),

 constraint	[fk_pedido_item]		-- Insero da segunda referncia usando o mesmo ALTER TABLE
 foreign key	(nr_pedido)
 references	PEDIDO(nr_pedido)
GO

alter table
PEDIDO		add
 constraint	[fk_fornecedor_pedido]
 foreign key	(cod_fornecedor)
 references	FORNECEDOR(cod_fornecedor)
GO

-- INSERINDO DADOS NA TABELA PRODUTO
insert into 	PRODUTO	( nr_produto,nome ) values 	( '033A', 'PHOTOPAINT' )
insert into 	PRODUTO	( nr_produto,nome ) values 	( '002M', 'COREL' )
insert into 	PRODUTO	( nr_produto,nome ) values 	( '145J', 'WORD' )
insert into 	PRODUTO	( nr_produto,nome ) values 	( '083P', 'ESTOQUE' )
insert into 	PRODUTO	( nr_produto,nome ) values 	( '029K', 'EXCEL' )

-- INSERINDO DADOS NA TABELA FORNECEDOR
insert into 	FORNECEDOR ( fornecedor, cgc, endereco, endereco_complemento )	VALUES ('CASA SOFTWARE', '824288880', 'LAPA', '777')
insert into 	FORNECEDOR ( fornecedor, cgc, endereco, endereco_complemento )	VALUES ('BRASILSOFTWARE', '804799970', 'ITU', '49')
insert into 	FORNECEDOR ( fornecedor, cgc, endereco, endereco_complemento )	VALUES ('COMPUTERLAND', '793225323', 'FEIJ', '122')

-- INSERINDO DADOS NA TABELA PEDIDO
insert into 	PEDIDO ( nr_pedido, data_emissao, cod_fornecedor ) values 	( 3, '01/20/2008', 1 )
insert into 	PEDIDO ( nr_pedido, data_emissao, cod_fornecedor ) values 	( 4, '01/27/2008', 2 )
insert into 	PEDIDO ( nr_pedido, data_emissao, cod_fornecedor ) values 	( 5, '01/27/2008', 3 )
insert into 	PEDIDO ( nr_pedido, data_emissao, cod_fornecedor ) values 	( 6, '02/14/2008', 2 )

-- INSERINDO DADOS NA TABELA ITEM
insert into 	ITEM ( nr_pedido, nr_produto, quantidade, preco_unitario )	VALUES ( 3, '033A',  4,  130 )
insert into 	ITEM ( nr_pedido, nr_produto, quantidade, preco_unitario )	VALUES ( 3, '002M',  1,  499 )
insert into 	ITEM ( nr_pedido, nr_produto, quantidade, preco_unitario )	VALUES ( 3, '145J', 13,  256 )
insert into 	ITEM ( nr_pedido, nr_produto, quantidade, preco_unitario )	VALUES ( 4, '002M',  2,  450 )
insert into 	ITEM ( nr_pedido, nr_produto, quantidade, preco_unitario )	VALUES ( 4, '083P', 10,   85 )
insert into 	ITEM ( nr_pedido, nr_produto, quantidade, preco_unitario )	VALUES ( 5, '033A', 50,  110 )
insert into 	ITEM ( nr_pedido, nr_produto, quantidade, preco_unitario )	VALUES ( 5, '145J', 50,  110 )
insert into 	ITEM ( nr_pedido, nr_produto, quantidade, preco_unitario )	VALUES ( 6, '029K', 15, 2000 )
insert into 	ITEM ( nr_pedido, nr_produto, quantidade, preco_unitario )	VALUES ( 6, '083P', 10,   87 ) 


/* ADENDO - COMEANDO A DESCREVER A SELEO DE DADOS

SELECT 	PEDIDO.nr_pedido,
	PRODUTO.nr_produto,
	PEDIDO.data_emissao,
	FORNECEDOR.fornecedor,
	FORNECEDOR.cgc,
	FORNECEDOR.endereco,
	FORNECEDOR.endereco_complemento,
	PRODUTO.nome,
	ITEM.quantidade,
	ITEM.preco_unitario
where	
*/