Somente para lembrar os itens de DDL, DML e TCL que fazem parte do Exame:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”RERMOiBDUkVBVEUsIEFMVEVSLCBEUk9QLCBSRU5BTUUsIFRSVU5DQVRFLCBHUkFOVCwgUkVWT0tFLCBGTEFTSEJBQ0ssIFBVUkdFLCBDT01NRU5UOwpETUw6IFNFTEVDVCwgSU5TRVJULCBVUERBVEUsIE1FUkdFOwpUTEM6IENPTU1JVCwgUk9MTEJBQ0ssIFNBVkVQT0lOVDs=” hover_enabled=”0″]RERMOiBDUkVBVEUsIEFMVEVSLCBEUk9QLCBSRU5BTUUsIFRSVU5DQVRFLCBHUkFOVCwgUkVWT0tFLCBGTEFTSEJBQ0ssIFBVUkdFLCBDT01NRU5UOwpETUw6IFNFTEVDVCwgSU5TRVJULCBVUERBVEUsIE1FUkdFOwpUTEM6IENPTU1JVCwgUk9MTEJBQ0ssIFNBVkVQT0lOVDs=[/et_pb_dmb_code_snippet]

Os TCL estão sempre ligados aos DML.
Se alguém tiver alguma dúvida sobre a definição de qualquer um dos itens acima somente questionar por comentário que respondo.

Curiosidades:

  • Tanto no INSERT e UPDATE temos a conversão implicita, se o DATATYPE for VARCHAR ou CHAR pode ser inserido ‘1’ ou 1, por exemplo;
  • INSERT INTO é sempre seguido da TABELA e depois da palavra reservada VALUES;
  • UPDATE não faz inserção de um novo registro, somente altera existentes, quem insere é o INSERT;
  • UPDATE é sempre seguido da TABELA e depois da palavra reservada SET;
  • DELETE não precisa ser seguido por mais nenhuma palavra reservada (FROM é opcional);
  • Para UPDATE e DELETE a clausula WHERE não é obrigatório (cuidado com o resultado disso na vida real);

TCL:

  • O COMMIT e o ROLLBACK podem ser seguidos ou não da palavra WORK (COMMIT WORK; ROLLBACK WORK;);
  • O COMMIT pode ser implicito, quando após uma ação DML (ou não) é executado uma ação DDL, o COMMIT é realizado automaticamente;
  • O SAVEPOINT marcar um lugar até aonde pode ser feito um ROLLBACK pre-definido;
  • O ROLLBACK vai retornar até o ultimo COMMIT executado, explicito ou implicito; 

Vejam o exemplo abaixo:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”Y3JlYXRlIHRhYmxlIHRlc3RlIChhIGNoYXIpOwppbnNlcnQgaW50byB0ZXN0ZSB2YWx1ZXMgKDEpOwpjb21taXQ7CnNlbGVjdCAqIGZyb20gdGVzdGU7Cmluc2VydCBpbnRvIHRlc3RlIHZhbHVlcyAoMik7CnNlbGVjdCAqIGZyb20gdGVzdGU7CnNhdmVwb2ludCBhMTsKaW5zZXJ0IGludG8gdGVzdGUgdmFsdWVzICgzKTsKc2VsZWN0ICogZnJvbSB0ZXN0ZTsKcm9sbGJhY2sgd29yayB0byBhMTsKc2VsZWN0ICogZnJvbSB0ZXN0ZTsKaW5zZXJ0IGludG8gdGVzdGUgdmFsdWVzICg0KTsKY29tbWl0OwpzZWxlY3QgKiBmcm9tIHRlc3RlOwppbnNlcnQgaW50byB0ZXN0ZSB2YWx1ZXMgKDUpOwpzZWxlY3QgKiBmcm9tIHRlc3RlOwpzYXZlcG9pbnQgYTE7Cmluc2VydCBpbnRvIHRlc3RlIHZhbHVlcyAoNik7CnNlbGVjdCAqIGZyb20gdGVzdGU7CnJvbGxiYWNrIHdvcms7CnNlbGVjdCAqIGZyb20gdGVzdGU7″ hover_enabled=”0″]Y3JlYXRlIHRhYmxlIHRlc3RlIChhIGNoYXIpOwppbnNlcnQgaW50byB0ZXN0ZSB2YWx1ZXMgKDEpOwpjb21taXQ7CnNlbGVjdCAqIGZyb20gdGVzdGU7Cmluc2VydCBpbnRvIHRlc3RlIHZhbHVlcyAoMik7CnNlbGVjdCAqIGZyb20gdGVzdGU7CnNhdmVwb2ludCBhMTsKaW5zZXJ0IGludG8gdGVzdGUgdmFsdWVzICgzKTsKc2VsZWN0ICogZnJvbSB0ZXN0ZTsKcm9sbGJhY2sgd29yayB0byBhMTsKc2VsZWN0ICogZnJvbSB0ZXN0ZTsKaW5zZXJ0IGludG8gdGVzdGUgdmFsdWVzICg0KTsKY29tbWl0OwpzZWxlY3QgKiBmcm9tIHRlc3RlOwppbnNlcnQgaW50byB0ZXN0ZSB2YWx1ZXMgKDUpOwpzZWxlY3QgKiBmcm9tIHRlc3RlOwpzYXZlcG9pbnQgYTE7Cmluc2VydCBpbnRvIHRlc3RlIHZhbHVlcyAoNik7CnNlbGVjdCAqIGZyb20gdGVzdGU7CnJvbGxiYWNrIHdvcms7CnNlbGVjdCAqIGZyb20gdGVzdGU7[/et_pb_dmb_code_snippet]

Esse capitulo é bem simples, por isso sem muitos detalhes fora do meu dia a dia.

Book: SQL Certified Expert Exam Guide, Steve O’Hearn pela Oracle Press
Link Book na Amazon

Respondendo as perguntas do post anterior:
1 –

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”Q3JlYXRlIFRhYmxlIFRFU1RFIzEgKApURVNURV9JRCBOVU1CRVIsClRFU1RFX05NIFZBUkNIQVIyKDEwKSwKUFJJTUFSWSBLRVkgKFRFU1RFX0lEKSk7″ hover_enabled=”0″]Q3JlYXRlIFRhYmxlIFRFU1RFIzEgKApURVNURV9JRCBOVU1CRVIsClRFU1RFX05NIFZBUkNIQVIyKDEwKSwKUFJJTUFSWSBLRVkgKFRFU1RFX0lEKSk7[/et_pb_dmb_code_snippet]

Esse CREATE TABLE acima vai dar ERRO por causa do “#”?
SIM
NAO

2 – O usuário CAPIN pode criar uma tabela com nome de CAPIN? Se SIM pode criar uma VIEW com esse nome?
SIM SIM
NAO NAO
SIM NAO (porque já criou um objeto TABLE com esse nome
NAO SIM

3 – Posso criar uma tabela e ter o mesmo nome dela em uma constraint?
SIM
NAO

Att,
capin