create database db_petshop_auquimia; use db_petshop_auquimia; create table tb_tipo_funcionario ( cd_tipo_funcionario int primary key auto_increment, nm_tipo_funcionario varchar(45) not null ); create table tb_tipo_produto ( cd_tipo_produto int primary key auto_increment, nm_tipo_produto varchar(45) not null ); alter table tb_tipo_produto change nm_tipo_produto nm_tipo_produto varchar(45); create table tb_tipo_servico ( cd_tipo_servico int primary key auto_increment, nm_tipo_servico varchar(45) not null ); create table tb_especie ( cd_especie int primary key auto_increment, nm_especie varchar(45) not null ); create table tb_cliente ( cd_cliente int primary key auto_increment, nm_cliente varchar(60) not null, dt_nascimento date not null, nm_email varchar(45) not null unique, cd_senha varchar(64) not null, st_cliente char(1) not null default "1", dt_registro_cliente datetime not null default current_timestamp ); alter table tb_cliente add constraint email_unico_cliente unique(nm_email); -- alter table tb_cliente drop index email_unico_cliente; create table tb_carrinho ( cd_carrinho int primary key auto_increment, dt_carrinho datetime not null default current_timestamp, id_cliente int, st_carrinho char(1) not null default '1', foreign key (id_cliente) references tb_cliente (cd_cliente) ); create table tb_produto ( cd_produto int primary key auto_increment, nm_produto varchar(45) not null, ds_produto text not null, vl_produto decimal(6,2) not null, id_tipo_produto int not null, foreign key (id_tipo_produto) references tb_tipo_produto (cd_tipo_produto) ); create table tb_servico( cd_servico int auto_increment, nm_servico varchar(45) not null, ds_servico text not null, id_tipo_servico int not null, primary key (cd_servico), foreign key (id_tipo_servico) references tb_tipo_servico (cd_tipo_servico) ); create table tb_funcionario ( cd_funcionario int primary key auto_increment, nm_funcionario varchar(60) not null, dt_nascimento date not null, nm_email varchar(45) not null unique, cd_senha varchar(64) not null, st_funcionario char(1) not null default "1", dt_registro_funcionario datetime not null default current_timestamp, id_tipo_funcionario int not null, foreign key (id_tipo_funcionario) references tb_tipo_funcionario (cd_tipo_funcionario) ); create table tb_produto_carrinho ( cd_item int auto_increment, id_produto int not null, id_carrinho int not null, qt_produto int not null, vl_produto decimal(6,2), primary key (cd_item), foreign key (id_produto) references tb_produto (cd_produto), foreign key (id_carrinho) references tb_carrinho (cd_carrinho) ); alter table tb_produto_carrinho change vl_produto vl_produto decimal(6,2) not null; create table tb_animal ( cd_animal int primary key auto_increment, nm_animal varchar(45), nm_porte char(1) not null, qt_peso decimal (6,3), ds_animal text, id_especie int not null, id_cliente int not null, foreign key (id_especie) references tb_especie (cd_especie), foreign key (id_cliente) references tb_cliente (cd_cliente) ); create table tb_agenda ( cd_agenda int primary key auto_increment, dt_agenda date not null, hr_agenda time not null, id_servico int not null, foreign key (id_servico) references tb_servico (cd_servico), id_funcionario int, foreign key (id_funcionario) references tb_funcionario (cd_funcionario), id_animal int not null, foreign key (id_animal) references tb_animal (cd_animal), st_agenda char(1) not null default "1", dt_registro_agenda datetime not null default current_timestamp );