Transact-SQL

En Galilibros, o Wikibooks en galego.

Creación de táboas[editar]

A sintaxe básica para crear unha táboa é a seguinte:

CREATE TABLE nomedataboa
(
  [Definición dos campos da táboa]
)

Véxase o seguinte exemplo:

CREATE TABLE MODULOS
(
  CODMOD CHAR(7) CONSTRAINT CPMOD PRIMARY KEY,
  NOMMOD VARCHAR(30) NOT NULL,
  NUMHORAS INT CONSTRAINT VALORHORAS CHECK (NUMHORAS BETWEEN 20 AND 700)
)

Agora cómpre aclarar que ademais do identificador das columnas, cada columna contra sempre un “identificador de restrición” (CONSTRAINT). Este identificador existe sempre, un por columna, e se non se lle da un nome ao crear a columna, o propio programa de xestión da base de datos daralle un identificador de restrición ao campo. Para modificar restricións necesitamos coñecer o nome, polo que cómpre personalizarmos o nome daqueles campos susceptibles de ter restricións.

Os campos das táboas poden contar con distintas propiedades, que se especifican ao final da liña na que se define o campo. A efectos do programa, todas estas propiedades considéranse restricións, polo que cómpre definir o identificador de restrición dos campos con algunha destas propiedades ou susceptibles de ter algunha delas no futuro.

PRIMARY KEY[editar]

PRIMARY KEY define un campo como campo clave.

FOREIGN KEY[editar]

FOREIGN KEY permite indicar que un campo fai referencia a un campo que é clave noutra táboa.

Véxase o seguinte exemplo:

  campo CHAR(5) NOT NULL CONSTRAINT codigoexterno FOREIGN KEY REFERENCES taboa2(codigo),

CONSTRAINT[editar]

CONSTRAINT permite asignarlle un nome a unha clave primaria dunha táboa, indicado a continuación da palabra clave.

NOT NULL[editar]

NOT NULL establece que o campo ao que afecta ten que levar obrigatoriamente un valor (non se pode deixar en branco).

CHECK[editar]

CHECK permite establecer condicións que deben cumprir os valores introducidos nun campo concreto. Esta palabra clave sitúase ao final da definición dun campo,

Exemplo:

CREATE TABLE exemplo
(
  HORAS INT CONSTRAINT VALORHORAS CHECK (BETWEEN 20 AND 700),
)

Modificar bases de datos[editar]

Para modificar unha base de datos utilízase “ALTER DATABASE” seguido do nome da base de datos e das modificacións, entre parénteses de ser máis dunha.

ALTER DATABASE basededatos MODIFY FILE (
  NAME = novonome,
  Size = 8MB
)

Modificar táboas[editar]

Para poder modificar unha táboa dende calquera lugar, debemos preceder a sentenza “ALTER TABLE” con «USE basededatos», onde basededatos será o nome da base de datos na que está a táboa.

Ao cambiar as propiedades cun campo, é necesario quitar (DROP) antes calquera restrición existente no campo.

Engadir valor por omisión[editar]

Para engadir un valor por omisión a unha columna dunha táboa, farase como amosa o seguinte exemplo:

ALTER TABLE taboa ALTER COLUMN columna DEFAULT FOR valor

Modificar unha restrición[editar]

Para modificar unha restrición hai que borrala e volvela crear coa forma nova.

Xestión de datos[editar]

Altas[editar]

As altas son os engadidos de novas filas ás táboas. Estes engadidos de datos fanse mediante a orde INSERT, que permite engadir novas filas.

O seguinte é un exemplo do uso de INSERT:

INSERT INTO TlfE
  VALUES ("23232323U", NULL, NULL, DEFAULT)

Actualización[editar]

As actualizacións consisten en modificar os datos de filas existentes.

TRUNCATE
Esta orde permite borrar o contido dunha táboa, sen borrar a táboa de por si.

Baixas[editar]

As baixas consistene en borrar filas existentes actualmente.

Tipos de dato[editar]

Caracteres[editar]

O tipo CHAR utilízase para campos en que o cantidade de caracteres introducida é sempre a mesma, mentres que VARCHAR utilízase nos casos en que a lonxitude vaia variar duns valores a outros.

Sentencias condicionais[editar]

BETWEEN[editar]

Esta sentencia permite establecer como condición que o valor a avaliar estea entre dous valores concretos.

Exemplo:

BETWEEN 0 AND 10

Funcións[editar]

DATEDIFF[editar]

Devolve a diferencia entre dúas datas. Pódese especificar a parte da data da que se vai obter a diferencia no primeiro argumento. O segundo e terceiro argumentos serán as datas inicial e final, respectivamente. A función devolve sempre un dato numérico.

GETDATE[editar]

Devolve a data actual.

Practicar[editar]