2. Linguagem SQL StructQueryLanguageLinguagem de consulta estruturada para base de dados relacionais É baseada essencialmente na álgebra relacional (Teoria dos conjuntos) A linguagem SQL têm como entrada e saída tabelas
3. Linguagem SQL Pode-se dividir a linguagem em três grupos distintos DDL – Data DefinitionLanguage(CREATE, ALTER, DROP ) DML – Data ManipulationLanguage(INSERT, UPDATE, DELETE, SELECT) DCL – Data ControlLanguage(GRANT, REVOKE) DTL – Data TransationLanguage(BEGIN WORK, COMMIT, ROLLBACK)
4. DDL – CREATE DATABASE Cria base de dados, Tabelas, Indices, Views. CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... create_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name http://dev.mysql.com/doc/refman/5.0/en/create-database.html
5. DDL –CREATE TABLE CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_options] http://dev.mysql.com/doc/refman/5.0/en/create-table.htm l
6. DDL – CREATE INDEX CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [index_type] ON tbl_name (index_col_name,...) [index_type] index_col_name: col_name [(length)] [ASC | DESC] index_type: USING {BTREE | HASH} http://dev.mysql.com/doc/refman/5.0/en/create-index.html
8. DDL – Comando DROP DROP {DATABASE | SCHEMA} [IF EXISTS] db_name DROP INDEX index_name ON tbl_name DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... [RESTRICT | CASCADE] DROP VIEW [IF EXISTS] view_name [, view_name] ... [RESTRICT | CASCADE] http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-data-definition.html
9. DDL – ALTER DATABASE ALTER {DATABASE | SCHEMA} [db_name] alter_specification ... ALTER {DATABASE | SCHEMA} db_name UPGRADE DATA DIRECTORY NAME alter_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name http://dev.mysql.com/doc/refman/5.1/en/alter-database.html
10. DDL – ALTER TABLE ALTER [IGNORE] TABLE nome_tblespecificação_alter [, especificação_alter ...] Adicionando camposADD [COLUMN] definição_create [FIRST | AFTER nome_coluna ]
11. DDL – ALTER TABLE (Cont.) Adicionando indexADD INDEX [nome_indice] (index_nome_col,...) Modificando campo (Inclui nome)CHANGE [COLUMN] nome_col_antigodefinição_create [FIRST | AFTER nome_coluna]
12. DDL – ALTER TABLE (Cont.) Modificando atributos do campoMODIFY [COLUMN] definição_create [FIRST | AFTER nome_coluna] Apagando campoDROP [COLUMN] nome_col Apagando chave primária ou indiceDROP PRIMARY KEY ouDROP INDEX nome_indice
13. DDL – ALTER TABLE (Cont.) Renomeando tabelaRENAME [TO] nome_nova_tbl Alterando o conunto de caracteres CHARACTER SET character_set_name [COLLATE collation_name] | table_options http://dev.mysql.com/doc/refman/4.1/pt/alter-table.html
14. DDL – ALTER VIEW ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] [DEFINER = { user | CURRENT_USER }] [SQL SECURITY { DEFINER | INVOKER }] VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL] CHECK OPTION] http://dev.mysql.com/doc/refman/5.1/en/alter-view.html
15. DDL -RENAME RENAME {DATABASE | SCHEMA} db_name TO new_db_name; RENAME TABLE tbl_name TO new_tbl_name [, tbl_name2 TO new_tbl_name2] ...
16. DDL – Atributos campos (create) NOT NULL | NULL AUTO_INCREMENT DEFAULT valor KEY PRIMARY KEY COMMENTS ‘comentário até 60 char’ CHECK (expr) sexo in (‘F’,’M’)numero >= 0
17. DDL – Integridade referencial REFERENCES tbl_name (index_col_name,...) [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE] [ON DELETE reference_option] [ON UPDATE reference_option] reference_option: RESTRICT | CASCADE | SET NULL | NO ACTION
18. DDL – Tipo de dados (+ usados) INT[(length)] [UNSIGNED] [ZEROFILL] INTEGER[(length)] [UNSIGNED] [ZEROFILL] | REAL[(length,decimals)] [UNSIGNED] [ZEROFILL] DECIMAL[(length[,decimals])] [UNSIGNED] [ZEROFILL] | DATE TIME DATETIME CHAR[(length)] [ VARCHAR(length) [CHARACTER SET charset_name] [COLLATE collation_name] TEXT [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name] ENUM(value1,value2,value3,...)