0% acharam este documento útil (0 voto)
22 visualizações28 páginas

Linguagem SQL

Enviado por

dinisrato07
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
22 visualizações28 páginas

Linguagem SQL

Enviado por

dinisrato07
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 28

Módulo 15

Linguagem de Definição de Dados

Índice
SQL .........................................................................................................................................................2
Comandos sql: ...................................................................................................................................2
DDL - Data Definition Language:......................................................................................................2
DML - Data Manipulation Language: ...............................................................................................2
DCL - Data Control Language: ..........................................................................................................2
DQL - Data Query Language:............................................................................................................2
Desenvolver Base de dados ...................................................................................................................3
Sintaxe ...............................................................................................................................................3
Tipos de dados ...................................................................................................................................4
Criar Base de dados ...........................................................................................................................7
Eliminar Base de dados ......................................................................................................................7
Criar tabelas .......................................................................................................................................7
Restrições (Constraints) SQL..............................................................................................................8
Foreign Key - Propagação de Update e Delete de registos .............................................................10
Excluir registos na tabela mãe .....................................................................................................10
Atualizar registos na tabela mãe ................................................................................................11
Criar tabela usando outra tabela .....................................................................................................11
Eliminar Tabela ................................................................................................................................11
Adicionar colunas a uma tabela ......................................................................................................12
Remover uma coluna de uma tabela ..............................................................................................12
Alterar uma coluna de uma tabela ..................................................................................................12
Inserir dados na tabela ....................................................................................................................13
Inserir dados a partir de outra tabela .........................................................................................13
Atualizar dados da tabela ................................................................................................................13
Apagar dados de uma tabela ...........................................................................................................14
Índices ..............................................................................................................................................19
Transações ...........................................................................................................................................20
O comando ROLLBACK.................................................................................................................21
Privilégios e controlo de acessos .........................................................................................................22
Revoke .............................................................................................................................................22
Criar logins .......................................................................................................................................23
Criar utilizadores ..............................................................................................................................25
Resumo Sintaxe: ..............................................................................................................................26
SQL
SQL significa Structured Query Language, e é uma linguagem que permite armazenar,
manipular e retirar dados guardados em base de dados relacionais.

SQL é a linguagem standard para sistemas de base de dados relacionais.


Todos os sistemas de gestão de base de dados como MySQL, MS Access, Oracle,
Sybase, Informix, postgres e SQL Server utilizam o SQL como linguagem.

No entanto, cada um utiliza um dialeto diferente : o MS SQL Server usa o T-SQL, o Oracle
usa PL/SQL, o MS Access é chamado de JET SQL (native format) etc.

Comandos sql:

DDL - Data Definition Language:

Comando Descrição

CREATE Cria uma nova tabela, uma vista de uma tabela ou outro objeto na base de dados

ALTER Modifica um objeto da base de dados existente, como uma tabela.

DROP Elimina uma tabela inteira, uma vista de uma tabela ou outro objeto na base de
dados

DML - Data Manipulation Language:

Comando Descrição

INSERT Criar registos

UPDATE Modifica registos

DELETE Eliminar registos

DCL - Data Control Language:

Comando Descrição

GRANT Atribui privilégios ao utilizador

REVOKE Retira privilégios ao utilizador

DQL - Data Query Language:

Comando Descrição
SELECT Retorna determinados registos de uma ou mais tabelas

Desenvolver Base de dados


Tabelas
As bases de dados são constituídas por objetos chamados de tabelas. As tabelas são
coleções de dados organizadas em linhas e colunas.

Campo
Cada tabelas é dividida em entidades ou campos. Cada coluna de uma tabela representa
um campo.

Registo
Cada linha de uma tabela composta de dados é chamada de registo.

NULL Value
Um valor NULL numa tabela é um valor num campo que parece estar em branco, o que
significa que um campo com um valor NULL é um campo sem valor.
É muito importante entender que um valor NULL é diferente de um valor zero ou um
campo que contém espaços.
Um campo com um valor NULL é um campo que foi deixado em branco quando se gravou
a base de dados

Sintaxe
O SQL é regido de um conjunto exclusivo de regras e diretrizes denominadas Sintaxe.
Todas as instruções SQL começam com qualquer uma das palavras-chave como
SELECT, INSERT, UPDATE, DELETE, ALTER, DROP, CREATE, USE, SHOW e todas as
instruções terminam com um ponto-e-vírgula (;).

O ponto importante a ser observado é que o SQL é insensível a maiúsculas e minúsculas,


o que significa que SELECT e select tem o mesmo significado em instruções SQL, mas o
MySQL faz diferença nos nomes das tabelas.
Tipos de dados
O SQL Server oferece 6 categorias de dados:
● Inteiro : bigint, int, smallint, tinyint
● Numérico exato : numeric, decimal
● Numérico aproximado : float, real
● Data e Hora : datetime, smalldatetime
● Caracter
○ string : char, varchar, text
○ Unicode : nchar, nvarchar, ntext
● Binário : binary, varbinary
● Outros.

Exact Numeric Data Types:

Variable Numeric Data Types:

Date and Time Data Types:


Character Strings Data Types:

Binary Data Types:

Misc Data Types:


O Mysql tem como categorias de dados:
Criar Base de dados
CREATE DATABASE DatabaseName;
As bases de dados devem ser únicas, sem nome repetido no seu SGBD.

Eliminar Base de dados


DROP DATABASE DatabaseName;
Irá eliminar todo o conteúdo da base de dados.

Criar tabelas
Para trabalharmos com BD, precisamos das tabelas que armazenam os dados. Para isso,
precisamos criá-las, de acordo com a estrutura abaixo:

CREATE TABLE tabela (


coluna1 tipo_dado opções,
... ... ...,
coluna x tipo_dado opções
PRIMARY KEY(uma ou mais colunas )
);

Exemplo:
create table Cliente(
nome varchar(30) Not Null,
morada varchar(50)
);

As colunas de uma Tabela podem ser campos calculados:


CREATE TABLE Tb_Stock (
cd_produto int,
qt_produto int,
vl_unitario numeric(15,2),
vl_estoque AS (qt_produto * vl_unitario)
);
As colunas de uma Tabela podem possuir a propriedade auto incremento.
Só é permitido nos tipos de dados: bigint, int, smallint, tinyint, e os tipos decimal e numeric
com escala 0. Para isso devemos colocar:
IDENTITY(valor inicial, incremento) no SQL SERVER e AUTO_INCREMENT no
MYSQL

Exemplo SQL SERVER:


Create Table Tb_Categoria (
cd_categoria int identity(1,1) NOT NULL );

Exemplo MYSQL:

Create Table Tb_Categoria (


cd_categoria int AUTO_INCREMENT,
PRIMARY KEY (cd_categoria));

Restrições (Constraints) SQL


As restrições são as regras aplicadas nas colunas de dados na tabela. Estas são usados
para limitar o tipo de dados que uma tabela pode conter, garantindo a precisão e a
confiabilidade dos dados na base de dados.
As restrições podem ser a nível da coluna ou a nível da tabela. As restrições a nível de
coluna são aplicadas apenas a uma coluna, enquanto que as restrições de nível de tabela
são aplicadas a toda a tabela.

Seguem-se as restrições mais utilizadas no SQL:


● NOT NULL: garante que uma coluna não pode ter valor NULL.
● DEFAULT : fornece um valor padrão para uma coluna quando nenhum é
especificado.
● UNIQUE: garante que todos os valores numa coluna sejam diferentes.
● PRIMARY Key: identifica exclusivamente cada linha / registro em uma tabela da
base de dados.
● FOREIGN Key: Campo que é chave noutra tabela da base de dados. Necessária
para ligar duas tabelas.
● CHECK: a restrição CHECK garante que todos os valores em uma coluna
satisfaçam certas condições. ex: AGE INT NOT NULL CHECK (AGE >= 18)
● INDEX: Usado para criar e recuperar dados da base de dados muito rapidamente.

Exemplo de NULL
CREATE TABLE FUNCIONARIOS(
ID INT NOT NULL,
NOME VARCHAR (20) NOT NULL,
IDADE INT NOT NULL,
MORADA CHAR (25) ,
SALARIO DECIMAL (18, 2),
);
Exemplo de DEFAULT:
create table produtos (
produto_no integer,
descricao text,
preco numeric default 9.99
);

Exemplo de Check:
CREATE TABLE produtos3 (
produto_no integer,
descricao text, preco
numeric CONSTRAINT preco_positivo CHECK (preco > 0)
);

exemplo de check 2:
CREATE TABLE pessoa(
codigo int PRIMARY KEY,
modelo varchar(255) NOT NULL,
check (modelo IN (‘A1’, ‘A2’, ‘A3’))
);

Exemplo de UNIQUE
SQL SERVER
CREATE TABLE produtos6 (
cod_prod integer UNIQUE,
nome text,
preco numeric
);
MYSQL
CREATE TABLE produtos7(
cod_prod integer,
nome text,
preco numeric,
UNIQUE (cod_prod)
);

Exemplo de primary key:


SQL SERVER
CREATE TABLE FUNCIONARIOS(
ID INT NOT NULL PRIMARY KEY,
NOME VARCHAR (20) NOT NULL,
IDADE INT NOT NULL,
MORADA CHAR (25) ,
SALARIO DECIMAL (18, 2)
);

MYSQL
CREATE TABLE FUNCIONARIOS(
ID INT NOT NULL,
NOME VARCHAR (20) NOT NULL,
IDADE INT NOT NULL,
MORADA CHAR (25) ,
SALARIO DECIMAL (18, 2),
PRIMARY KEY (ID)
);

Chaves compostas:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT PK_Person PRIMARY KEY (ID,LastName)
)

Exemplo de foreignkey:
SQL SERVER

CREATE TABLE pedidos (


cod_pedido integer PRIMARY KEY,
cod_prod integer, quantidade integer,
CONSTRAINT pedidos_fk FOREIGN KEY (cod_prod) REFERENCES produtos
(cod_prod)
);

MYSQL:
CREATE TABLE pedidos (
cod_pedido integer PRIMARY KEY,
cod_prod integer, quantidade integer,
PRIMARY KEY (cod_pedido),
FOREIGN KEY (cod_prod) REFERENCES Produtos(cod_prod)

Foreign Key - Propagação de Update e Delete de registos


ON UPDATE e ON DELETE especificam qual ação será executada quando uma linha na
tabela mãe for atualizada e excluída. As seguintes ações são permitidas: NO ACTION,
CASCADE, SET NULL e SET DEFAULT

Excluir registos na tabela mãe


Se excluir uma ou mais linhas da tabela mãe, poderá definir uma das seguintes ações:

ON DELETE NO ACTION: O SQL Server gera um erro e reverte a ação de exclusão na


linha da tabela mãe.
ON DELETE CASCADE: O SQL Server exclui as linhas da tabela filho que correspondem
à linha excluída da tabela mãe.
ON DELETE SET NULL: o SQL Server define as linhas da tabela filho como NULL se as
linhas correspondentes na tabela mãe forem excluídas. Para executar esta ação, as
colunas de chave estrangeira devem ser anuláveis.
ON DELETE SET DEFAULT O SQL Server definirá as linhas da tabela filho com seus
valores padrão se as linhas correspondentes na tabela pai forem excluídas. Para executar
esta ação, as colunas de chave estrangeira devem ter definições padrão. Observe que
uma coluna anulável terá um valor padrão NULL se nenhum valor padrão for especificado.
Por padrão, o SQL Server aplica o ON DELETE NO ACTION.

Atualizar registos na tabela mãe


Poderá definir uma das seguintes ações:

ON UPDATE NO ACTION: O SQL Server gera um erro e reverte a ação de atualização na


linha da tabela mãe.
ON UPDATE CASCADE: O SQL Server atualiza as linhas correspondentes na tabela filho
quando as linhas na tabela pai são atualizadas.
ON UPDATE SET NULL: o SQL Server define as linhas da tabela filho como NULL quando
a linha correspondente na tabela mãe é atualizada. Observe que as colunas de chave
estrangeira devem ser anuláveis para que esta ação seja executada.
ON UPDATE SET DEFAULT: o SQL Server define os valores padrão para as linhas na
tabela filho que têm as linhas correspondentes na tabela mãe atualizadas.

Criar tabela usando outra tabela

É possível realizar uma cópia de uma tabela. A nova tabela tem a mesma definição de
colunas. Todas as colunas ou determinadas colunas podem ser selecionadas. Quando se
cria uma nova tabela com base noutra, a nova tabela fica com os dados da antiga tabela.

Syntax:

select * into tabela_nova from tabela_velha;

Exemplo:
select * into copia_produtos from produtos;

Podemos ainda herdar os campos de outra tabela:


Exemplo:
CREATE TABLE capitais ( capital char(2) ) INHERITS (paises);

Eliminar Tabela
O comando drop permite eliminar a tabelas, as definições, os índices e todos os dados
existentes na tabela.

sintaxe:
DROP TABLE table_name;

Adicionar colunas a uma tabela


Podemos adicionar uma coluna com o Alter Table.

Exemplo para uma coluna:


ALTER TABLE TB_STOCK ADD NM_PRODUTO VARCHAR(40) NULL;

Exemplo para duas colunas:


ALTER TABLE TB_STOCK ADD NM_PRODUTO VARCHAR(40) NULL,
QT_MINIMA_TB_STOCK NUMERIC(5) NOT NULL;

Remover uma coluna de uma tabela


Podemos remover uma coluna conjugando o alter table com drop column.
ALTER TABLE TB_STOCK DROP COLUMN NM_PRODUTO;

Alterar uma coluna de uma tabela


Depois de criar uma tabela é possível alterar os campos da tabela.

Alterar o tipo de dados de uma coluna:


SQL SERVER
ALTER TABLE table_name ALTER COLUMN column_name datatype;

MYSQL:
ALTER TABLE table_name MODIFY COLUMN column_name datatype;

Alterar se uma coluna pode conter ou não valores nulos:

ALTER TABLE table_name ALTER/MODIFY column_name datatype NOT NULL;

Alterar a constraint Unique:


ALTER TABLE table_name ADD CONSTRAINT MyUniqueConstraint UNIQUE(column1,
column2...);

Alterar a constraint Default:


ALTER TABLE table_name ADD CONSTRAINT df_Constr DEFAULT 'value' FOR
column1;

Alterar a constraint CHECK:


ALTER TABLE table_name ADD CONSTRAINT MyUniqueConstraint CHECK
(CONDITION);

Alterar a tabela para adicionar uma chave primária


ALTER TABLE table_name ADD CONSTRAINT MyPrimaryKey PRIMARY KEY (column1,
column2...);

Alterar a tabela para eliminar uma restrição:


ALTER TABLE table_name DROP CONSTRAINT MyUniqueConstraint;

Alterar a tabela para eliminar uma chave primária:


ALTER TABLE table_name DROP CONSTRAINT MyPrimaryKey;

Alterar a tabela - renomear coluna


ALTER TABLE table_name RENAME COLUMN old_name to new_name;

Inserir dados na tabela


Permite inserir linhas com dados na tabela.
Sintaxe:
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)] VALUES (value1,
value2, value3,...valueN)

Se formos inserir valores em todas as colunas não precisamos especificar as colunas, mas
devemos colocar os valores pela ordem dos campos da tabela.
Sintaxe:
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

Exemplo:
INSERT INTO FUNCIONARIOS (ID,NOME,IDADE,MORADA,SALARIO) VALUES (6,
'Ana', 22, 'MP', 1500.00 );

Inserir dados a partir de outra tabela


Podemos inserir dados de outra tabela através do código:

INSERT INTO first_table_name [(column1, column2, ... columnN)] SELECT column1,


column2, ...columnN FROM second_table_name [WHERE condition];

Atualizar dados da tabela


SQL UPDATE Query é usado para modificar os registos existentes na tabela.
Pode usar a cláusula WHERE com consulta UPDATE para atualizar as linhas
selecionadas, caso contrário, todas as linhas serão afetadas.
Sintaxe:
UPDATE table_name SET
column1 = value1,
column2 = value2....,
columnN = valueN
WHERE [condition];

Exemplo:
UPDATE FUNCIONARIOS SET IDADE = 25 WHERE ID = 6;

Para modificar todas as moradas e todos os salários faríamos:


UPDATE FUNCIONARIOS SET MORADA= 'Torres Vedras', SALARIO = 1000.00;

Apagar dados de uma tabela


Para eliminar registos de uma tabela usamos a sintaxe:
DELETE FROM table_name WHERE [condition];

Se não utilizar a cláusula where para identificar a linha, todos os dados serão removidos.

Exemplo:
DELETE FROM FUNCIONARIO WHERE ID = 6;

Se quiser eliminar todos os registos da tabela funcionário então o código seria:


DELETE FROM FUNCIONARIO;
ou
DELETE FUNCIONARIO;

No entanto o comando mais utilizado para limpar a tabela seria:

TRUNCATE TABLE FUNCIONARIO;


Funcões

SQL Server String Functions

Function Description

ASCII Returns the ASCII value for the specific character

CHAR Returns the character based on the ASCII code

CHARINDEX Returns the position of a substring in a string

CONCAT Adds two or more strings together

Concat with Adds two or more strings together


+

CONCAT_WS Adds two or more strings together with a separator

DATALENGTH Returns the number of bytes used to represent an


expression

DIFFERENCE Compares two SOUNDEX values, and returns an integer


value

FORMAT Formats a value with the specified format

LEFT Extracts a number of characters from a string (starting from


left)

LEN Returns the length of a string

LOWER Converts a string to lower-case

LTRIM Removes leading spaces from a string

NCHAR Returns the Unicode character based on the number code

PATINDEX Returns the position of a pattern in a string

QUOTENAME Returns a Unicode string with delimiters added to make the


string a valid SQL Server delimited identifier

REPLACE Replaces all occurrences of a substring within a string, with


a new substring

REPLICATE Repeats a string a specified number of times


REVERSE Reverses a string and returns the result

RIGHT Extracts a number of characters from a string (starting from


right)

RTRIM Removes trailing spaces from a string

SOUNDEX Returns a four-character code to evaluate the similarity of


two strings

SPACE Returns a string of the specified number of space characters

STR Returns a number as string

STUFF Deletes a part of a string and then inserts another part into
the string, starting at a specified position

SUBSTRING Extracts some characters from a string

TRANSLATE Returns the string from the first argument after the
characters specified in the second argument are translated
into the characters specified in the third argument.

TRIM Removes leading and trailing spaces (or other specified


characters) from a string

UNICODE Returns the Unicode value for the first character of the input
expression

UPPER Converts a string to upper-case

SQL Server Math/Numeric Functions

Function Description

ABS Returns the absolute value of a number

ACOS Returns the arc cosine of a number

ASIN Returns the arc sine of a number

ATAN Returns the arc tangent of a number

ATN2 Returns the arc tangent of two numbers

AVG Returns the average value of an expression

CEILING Returns the smallest integer value that is >= a number


COUNT Returns the number of records returned by a select query

COS Returns the cosine of a number

COT Returns the cotangent of a number

DEGREES Converts a value in radians to degrees

EXP Returns e raised to the power of a specified number

FLOOR Returns the largest integer value that is <= to a number

LOG Returns the natural logarithm of a number, or the logarithm


of a number to a specified base

LOG10 Returns the natural logarithm of a number to base 10

MAX Returns the maximum value in a set of values

MIN Returns the minimum value in a set of values

PI Returns the value of PI

POWER Returns the value of a number raised to the power of


another number

RADIANS Converts a degree value into radians

RAND Returns a random number

ROUND Rounds a number to a specified number of decimal places

SIGN Returns the sign of a number

SIN Returns the sine of a number

SQRT Returns the square root of a number

SQUARE Returns the square of a number

SUM Calculates the sum of a set of values

TAN Returns the tangent of a number

SQL Server Date Functions

Function Description

CURRENT_TI Returns the current date and time


MESTAMP

DATEADD Adds a time/date interval to a date and then returns the


date

DATEDIFF Returns the difference between two dates

DATEFROMP Returns a date from the specified parts (year, month, and
ARTS day values)

DATENAME Returns a specified part of a date (as string)

DATEPART Returns a specified part of a date (as integer)

DAY Returns the day of the month for a specified date

GETDATE Returns the current database system date and time

GETUTCDATE Returns the current database system UTC date and time

ISDATE Checks an expression and returns 1 if it is a valid date,


otherwise 0

MONTH Returns the month part for a specified date (a number from
1 to 12)

SYSDATETIM Returns the date and time of the SQL Server


E

YEAR Returns the year part for a specified date

SQL Server Advanced Functions

Function Description

CAST Converts a value (of any type) into a specified


datatype

COALESCE Returns the first non-null value in a list

CONVERT Converts a value (of any type) into a specified


datatype

CURRENT_USER Returns the name of the current user in the SQL


Server database

IIF Returns a value if a condition is TRUE, or another value


if a condition is FALSE
ISNULL Return a specified value if the expression is NULL,
otherwise return the expression

ISNUMERIC Tests whether an expression is numeric

NULLIF Returns NULL if two expressions are equal

SESSION_USER Returns the name of the current user in the SQL


Server database

SESSIONPROPERT Returns the session settings for a specified option


Y

SYSTEM_USER Returns the login name for the current user

USER_NAME Returns the database user name based on the


specified id

Índices

O índice ou INDEX é usado para criar tabelas específicas para que os database search
engines retirem a informação de forma muito mais rápida, criando um apontador para os
dados da tabela.
O índice pode ser criado de forma única ou através de um grupo de colunas de uma
tabela. Quando o índice é criado, é atribuído um ROWID para cada linha antes de
manipular os dados.
São especialmente utilizados para manipular base de dados de grandes dimensões.

Por exemplo, se deseja fazer referência a todas as páginas de um livro que falam de um
determinado assunto, cria um índice que lista todos os tópicos por ordem alfabética e
posteriormente é encaminhado para um ou mais números de página específicos.

Um índice ajuda a acelerar consultas SELECT e WHERE, mas retarda a entrada de


dados, como UPDATE e declarações INSERT.
Os índices podem ser criados ou eliminados sem efeito nos dados.
A criação de um índice envolve a declaração CREATE INDEX, que permite que nomeie o
índice, para especificar a tabela e qual a coluna ou colunas para indexar, e para indicar se
o índice está por ordem ascendente ou descendente.
Os índices também podem ser únicos, semelhante à restrição UNIQUE, na medida em que
o índice impede entradas duplicadas na coluna ou combinação de colunas em que há um
índice.

Sintaxe básica:
CREATE INDEX index_name
ON table_name ( column1, column2.....);

Exemplo:
Imaginando que temos a seguinte tabela:
CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25) ,
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
E queremos criar um índice das idades para otimizar uma pesquisa sobre uma
determinada idade faríamos:
CREATE INDEX idx_age
ON CUSTOMERS ( AGE );

Para eliminar um índice:


DROP INDEX index_name ON tab_name;

Transações
Uma transação é uma única unidade de trabalho. Se uma transação tiver êxito,
todas as modificações de dados feitas durante a transação estarão confirmadas e
se tornarão parte permanente do banco de dados. Se uma transação encontrar
erros e precisar ser cancelada ou revertida, todas as modificações de dados serão
apagadas ou seja ou faz tudo ou não faz nada.
É importante controlar as transações para garantir a integridade dos dados e lidar com
erros da base de dados.

Propriedades das Transações:


As transações possuem as seguintes quatro propriedades padrão, geralmente referidas
pelo acrônimo ACID:
● Atomicidade: garante que todas as operações dentro da unidade de trabalho sejam
concluídas com sucesso; caso contrário, a transação é interrompida no ponto de
falha e as operações anteriores são revertidas para o estado anterior.
● Consistência: garante que a base de dados altere adequadamente os estados após
uma transação comprometida com sucesso.
● Isolamento: permite que as transações funcionem independentemente e
transparentes entre si.
● Durabilidade: garante que o resultado ou o efeito de uma transação comprometida
persista em caso de falha do sistema.
O COMMIT TRANSACTION

O Comando COMMIT é o comando usado para salvar as alterações invocadas por uma
transação para a base de dados.

O comando COMMIT salva todas as transações na base de dados desde o último


comando COMMIT ou ROLLBACK.

Estes comandos são usados apenas com os comandos DML INSERT, UPDATE e
DELETE.
Não podem ser usados ao criar ou eliminar tabelas porque essas operações são
automaticamente realizadas na base de dados.

O comando ROLLBACK
O comando ROLLBACK é o comando transacional usado para desfazer transações que
ainda não foram guardadas na base de dados.
O comando ROLLBACK só pode ser usado para desfazer transações desde o último
COMMIT ou ROLLBACK

Exemplo @@ERROR:

BEGIN TRANSACTION

UPDATE FROM TbContas


SET NuSaldo= 10.000
WHERE NuSaldo < 50
IF @@ERROR = 0
COMMIT
ELSE
ROLLBACK
END

As vezes as mensagens de erro não são muito claras para os utilizadores e pensando
nisso, procurando ajudar os desenvolvedores e administradores de sistema foi introduzido
no SQL a função ‘RAISERROR’, que permite personalizar as mensagens de erro
facilitando algum suporte.

Exemplo RAISERROR

BEGIN TRANSACTION
UPDATE FROM TbContas
SET NuSaldo= 10.000
WHERE NuSaldo < 50
IF @@ERROR = 0
COMMIT
ELSE
ROLLBACK
RAISERROR(5001,16,1,’ERRO NA ALTERACAO DO SALDO DA TABELA TBCONTA’) END
Privilégios e controlo de acessos
Os comandos T-sql GRANT e REVOKE são utilizados para atribuir e retirar permissões,
respectivamente, na utilização de recursos de tabelas.

GRANT = utilizado para atribuir permissão ao utilizador, para realizar uma operação;
REVOKE = remove a permissão GRANT.

Sintaxe:
GRANT privilege_name
ON object_name
TO {user_name |PUBLIC |role_name}
[WITH GRANT OPTION];

ou

GRANT { SELECT | EXECUTE } ON system_object TO principal

Exemplos:

USE base_dados_xpto;
GRANT SELECT ON sql_logins TO Ana1;
GRANT VIEW SERVER STATE to Ana1;

GRANT ALL ON empregados TO joao;

GRANT SELECT ON empregrados TO public;

Revoke
Remove uma permissão concedida ou negada anteriormente.

Sintaxe

REVOKE privilege_name
ON object_name
FROM {user_name |PUBLIC |role_name}

Exemplos:
REVOKE DELETE ON empregados FROM anderson;

REVOKE SELECT ON empregados FROM public;


Criar logins

A instrução CREATE LOGIN cria uma identidade usada para se conectar a uma
instância do SQL Server. O Login é então mapeado para um utilizador da base de
dados (antes de criar um utilizador no SQL Server, deve primeiro criar um Login).

Existem quatro tipos de logins que podemos criar no SQL Server:


● usando autenticação do Windows.
● usando a Autenticação do SQL Server.
● um Login de um certificado.
● um Login a partir de uma chave assimétrica.

Sintaxe

A sintaxe da instrução CREATE LOGIN usando a Autenticação do Windows é:

CREATE LOGIN [domain_name\login_name]


FROM WINDOWS
[ WITH DEFAULT_DATABASE = database_name
| DEFAULT_LANGUAGE = language_name ];

A sintaxe da instrução CREATE LOGIN usando SQL Server Authentication é:

CREATE LOGIN login_name


WITH PASSWORD = { 'password' | hashed_password HASHED } [ MUST_CHANGE ]
[ , SID = sid_value
| DEFAULT_DATABASE = database_name
| DEFAULT_LANGUAGE = language_name
| CHECK_EXPIRATION = { ON | OFF }
| CHECK_POLICY = { ON | OFF }
| CREDENTIAL = credential_name ];

A sintaxe da instrução CREATE LOGIN usando um certificado:


CREATE LOGIN login_name
FROM CERTIFICATE certificate_name;

A sintaxe da instrução CREATE LOGIN usando uma asymmetric key é:


CREATE LOGIN login_name
FROM ASYMMETRIC KEY asym_key_name;

Exemplos:
CREATE LOGIN joana
WITH PASSWORD = 'pwd123';

CREATE LOGIN joana


WITH PASSWORD = 'pwd123' MUST_CHANGE,
CHECK_EXPIRATION = ON;

CREATE LOGIN joana


FROM CERTIFICATE certificate1;

CREATE LOGIN joana


FROM ASYMMETRIC KEY asym_key1;

Disable Login
ALTER LOGIN joana DISABLE;

Enable Login
ALTER LOGIN joana ENABLE;

Unlock Login
ALTER LOGIN joana
WITH PASSWORD = 'tictac'
UNLOCK;

Rename Login
ALTER LOGIN joana
WITH NAME = checkyourmath;

Delete Login
DROP LOGIN login_name;
Criar utilizadores

A instrução CREATE USER cria um utilizador da base de dados para fazer login no
SQL Server. Um utilizador é mapeado para um Login, que é uma identidade usada
para se conectar a uma instância do SQL Server.

Sintaxe

A sintaxe da instrução CREATE USER no SQL Server (Transact-SQL) é:

CREATE USER user_name FOR LOGIN login_name;

Exemplo:
CREATE USER joana FOR LOGIN joana;

Change Password
ALTER LOGIN joana
WITH PASSWORD = 'tictac';

Change Password and Force Change


ALTER LOGIN joana
WITH PASSWORD = 'tictac' MUST_CHANGE,
CHECK_EXPIRATION = ON;

Delete User
DROP USER user_name;
Resumo Sintaxe:

SQL SELECT Statement:


SELECT column1, column2....columnN
FROM table_name;

SQL DISTINCT Clause:


SELECT DISTINCT column1, column2....columnN
FROM table_name;

SQL WHERE Clause:


SELECT column1, column2....columnN
FROM table_name
WHERE CONDITION;

SQL AND/OR Clause:


SELECT column1, column2....columnN
FROM table_name
WHERE CONDITION-1 {AND|OR} CONDITION-2;

SQL IN Clause:
SELECT column1, column2....columnN
FROM table_name
WHERE column_name IN (val-1, val-2,...val-N);

SQL BETWEEN Clause:


SELECT column1, column2....columnN
FROM table_name
WHERE column_name BETWEEN val-1 AND val-2;

SQL LIKE Clause:


SELECT column1, column2....columnN
FROM table_name
WHERE column_name LIKE { PATTERN };

SQL ORDER BY Clause:


SELECT column1, column2....columnN
FROM table_name
WHERE CONDITION
ORDER BY column_name {ASC|DESC};

SQL GROUP BY Clause:


SELECT SUM(column_name)
FROM table_name
WHERE CONDITION
GROUP BY column_name;

SQL COUNT Clause:


SELECT COUNT(column_name)
FROM table_name
WHERE CONDITION;

SQL HAVING Clause:


SELECT SUM(column_name)
FROM table_name
WHERE CONDITION
GROUP BY column_name
HAVING (arithematic function condition);

SQL CREATE TABLE Statement:


CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY( one or more columns ) );

SQL DROP TABLE Statement:


DROP TABLE table_name;

SQL CREATE INDEX Statement:


CREATE UNIQUE INDEX index_name
ON table_name ( column1, column2,...columnN);

SQL DROP INDEX Statement:


ALTER TABLE table_name
DROP INDEX index_name;

SQL DESC Statement:


DESC table_name;

SQL TRUNCATE TABLE Statement:


TRUNCATE TABLE table_name;

SQL ALTER TABLE Statement:


ALTER TABLE table_name {ADD|DROP|MODIFY} column_name {data_ype};

SQL ALTER TABLE Statement (Rename):


ALTER TABLE table_name RENAME TO new_table_name;

SQL INSERT INTO Statement:


INSERT INTO table_name( column1, column2....columnN)
VALUES ( value1, value2....valueN);

SQL UPDATE Statement:


UPDATE table_name
SET column1 = value1, column2 = value2....columnN=valueN
[ WHERE CONDITION ];
SQL DELETE Statement:
DELETE FROM table_name
WHERE {CONDITION};

SQL CREATE DATABASE Statement:


CREATE DATABASE database_name;

SQL DROP DATABASE Statement:


DROP DATABASE database_name;

SQL USE Statement:


USE DATABASE database_name;

SQL COMMIT Statement:


COMMIT;

SQL ROLLBACK Statement:


ROLLBACK

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy