demais
• Linguagem comercial para BD relacional
– padrão ISO desde a década de 80
• SQL-1 (86); SQL-2 (92); SQL-3 (99)
– não é apenas uma linguagem de consulta!
• como o nome sugere...
• Base Formal
– álgebra relacional e cálculo relacional
• Funcionalidades principais
– definição (DDL) e manipulação (DML) de dados
– definição de visões e autorizações de acesso
– definição de restrições de integridade
– definição de transações
– comandos para embutimento em LPs
SQL - DDL
• Criação de um BD
– SQL padrão não oferece tal comando
• BDs são criados via ferramentas do SGBD
– alguns SGBDs (SQL Server, DB2, MySQL) oferecem este comando
• create database nome_BD
• drop database nome_BD
SQL - DDL
• Comandos para definição de esquemas
– create table
• define a estrutura da tabela, suas restrições de integridade e cria uma tabela vazia
– alter table
• modifica a definição de uma tabela (I / E / A atributos; I / E
RIs)
– drop table
• remove uma tabela com todas as suas tuplas
SQL – Create Table
CREATE TABLE nome_tabela ( nome_atributo_1 tipo_1 [[NOT]NULL][UNIQUE]
[{, nome_atributo_n tipo_n}] [, PRIMARY KEY (nome(s)_atributo(s))]
[{, FOREIGN KEY (nome_atributo)
REFERENCES nome_tabela}]
)
• Principais tipos de dados do MySQL
– integer, smallint, numeric(tamanho[,nro_casas_decimais]), char(tamanho), varchar(tamanho), date, time, datetime, ...
– formato para data e hora
• “DD-MM-YYYY”
Exemplos de Criação de Tabela
CREATE TABLE Ambulatorios ( nroa integer, andar numeric(3) NOT NULL, capacidade smallint,
PRIMARY KEY(nroa)
)
CREATE TABLE Medicos ( codm integer, nome varchar(40) NOT NULL, idade smallint
NOT NULL, especialidade char(20),
CPF
numeric(11) UNIQUE, cidade varchar(30), nroa integer,
PRIMARY KEY(codm),
FOREIGN KEY(nroa) REFERENCES Ambulatorios
)
SQL – Alter Table
ALTER TABLE nome_tabela
ADD [COLUMN] nome_atributo_1 tipo_1 [{RIs}]
[{,