SQL Lectura U1
SQL Lectura U1
Transact-SQL
Introducción
USE northwind
CREATE TABLE customer
(cust_id int, company varchar(40),
contact varchar(30), phone char(12) )
GO
Instrucciones del Lenguaje de control de datos
USE northwind
GRANT SELECT ON products TO public
GO
Instrucciones del Lenguaje de tratamiento de datos
INSERT
UPDATE
DELETE
USE northwind
SELECT categoryid, productname, productid, unitprice
FROM products
GO
Elementos de la sintaxis de Transact-SQL
GO
Envía lotes de instrucciones de Transact-SQL a las
herramientas y utilidades
No se trata, realmente, de una instrucción de
Transact-SQL
EXEC
Ejecuta una función definida por el usuario, un
procedimiento de sistema, un procedimiento
almacenado definido por el usuario o un procedimiento
almacenado extendido
Controla la ejecución de una cadena de caracteres
dentro de un lote de Transact-SQL
Comentarios
Identificadores estándar
El primer carácter debe ser un carácter alfabético
Otros caracteres pueden incluir letras, números o símbolos
Los identificadores que comienzan con un símbolo tienen
usos especiales
Identificadores delimitados
Se utilizan cuando los nombres contienen espacios
incrustados
Se utilizan cuando partes de los nombres incluyen
palabras reservadas
Deben encerrarse entre corchetes ([ ]) o dobles comillas (" ")
Directrices de denominación para los identificadores
USE northwind
DECLARE @EmpID varchar(11)
,@vlName char(20)
SET @vlname = 'Dodsworth'
SELECT @EmpID = employeeid
FROM employees
WHERE LastName = @vlname
SELECT @EmpID AS EmployeeID
GO
Funciones del sistema
Funciones de agregado
USE northwind
SELECT AVG (unitprice) AS AvgPrice FROM products
GO
Funciones escalares
USE northwind
SELECT DB_NAME() AS 'database‘
GO
Ejemplo 1
SELECT 'ANSI:', CONVERT(varchar(30), GETDATE(), 102) AS
Style
UNION
SELECT 'Japanese:', CONVERT(varchar(30), GETDATE(), 111)
UNION
SELECT 'European:', CONVERT(varchar(30), GETDATE(), 113)
GO
Resultado
Style
ANSI: 1998.03.19
Japanese: 1998/03/19
European: 19 Mar 1998 16:34:40:616
Operadores
Tipos de operadores
Aritmético
Comparación
Concatenación de cadenas
Lógico
Niveles de precedencia de los operadores
Expresiones
Numérico
Entero
Numérico exacto
Numérico aproximado
Moneda
Fecha y hora
Carácter y caracteres Unicode
Binario
Otros
Creación y eliminación de tipos de datos definidos
por el usuario
Creación
Eliminación
Datos
4 bytes
Bloque
nulo
Bloque
variable
Cómo SQL Server organiza los datos text, ntext e
image
Fila de datos
Puntero
de texto
Estructura raíz
Intercalación de columnas
Especificación de NULL o NOT NULL
Columnas calculadas
Eliminación de una tabla
Agregar y quitar columnas
QUITAR
ALTER TABLE CategoriesNew
DROP COLUMN Sales_date
Generación de valores de columnas
Integridad referencial
(entre tablas)
Exigir integridad de los datos
Restricciones DEFAULT
Restricciones CHECK
Restricciones PRIMARY KEY
Restricciones UNIQUE
Restricciones FOREIGN KEY
Integridad referencial en cascada
Restricciones DEFAULT
USE Northwind
ALTER TABLE dbo.Customers
ADD
CONSTRAINT PK_Customers
PRIMARY KEY NONCLUSTERED (CustomerID)
Restricciones UNIQUE
USE Northwind
ALTER TABLE dbo.Suppliers
ADD
CONSTRAINT U_CompanyName
UNIQUE NONCLUSTERED (CompanyName)
Restricciones FOREIGN KEY
Deben hacer referencia a una restricción PRIMARY KEY o
UNIQUE
Proporcionan integridad referencial de una o de varias
columnas
No crean índices automáticamente
Los usuarios deben tener permisos SELECT o
REFERENCES en las tablas a las que se hace referencia
Usa sólo la cláusula REFERENCES en la tabla de ejemplo
USE Northwind
ALTER TABLE dbo.Orders
ADD CONSTRAINT FK_Orders_Customers
FOREIGN KEY (CustomerID)
REFERENCES dbo.Customers(CustomerID)
Integridad referencial en cascada
NINGUNA CASCADA
Customers Customers
ACCIÓN CustomerID (PK)
CustomerID (PK)
1 1
INSERT new UPDATE CustomerID
CustomerID
CASCADA
Orders
CustomerID (FK) Orders
2 CustomerID (FK)
UPDATE old
CustomerID to new
CustomerID
Customers
CustomerID (PK)
3
DELETE old
CustomerID
Deshabilitación de restricciones
USE Northwind
ALTER TABLE dbo.Employees
NOCHECK
CONSTRAINT FK_Employees_Employees
Uso de valores predeterminados y reglas
Como objetos independientes:
Se definen una vez
Pueden vincularse a una o más columnas
o a tipos de datos definidos por el usuario
CREATE DEFAULT phone_no_default
AS '(000)000-0000'
GO
EXEC sp_bindefault phone_no_default,
'Customers.Phone'
Valores predetermi-
Baja Baja Antes
nados y reglas
Tipos de datos,
Baja Baja Antes
Null/Not Null