Vous êtes sur la page 1sur 135

Mdulo de SQLServer 2000

Curso de Certificacin FORD


cajimene@itesm.mx
Ma Carmen Jimnez
Noviembre 2005

cajimene@itesm.mx
Sitio de Entrenamiento en:
Universidad Virtual / Biblioteca Virtual
Administrativa / Modelos 2004 - 2005 / FordStar
Versin Evaluacin de SQLServer2000
www.microsoft.com download

Mdulo de SQLServer 2000


1. Introduccin a Base de Datos
2. Conceptos Bases de Datos
3. Introduccin a SQLserver 2000
4. Server Enterprice Manager SQL Server
5. Base de Datos y sus Propiedades
6. Instalacin de SQL server 2000
7. Requisitos de Hardware
8. Requisitos de Software
9. Permisos de la Base de Datos
10. Funciones para Usuarios

Mdulo de SQLServer 2000


1. Crear una Base de Datos
2. Accesar una Base de Datos
3. Instrucciones DDL
4. Manejo de Constraints
5. Instrucciones DML
6. Consultas a una Base de Datos (Querys)
7. Sentencia WHERE
8. Funciones para datos tipo Caracter
9. Funciones para datos tipo Fecha
10. Funciones Grupales
11. Sentencia GROUP BY
12. JOIN

Mdulo de SQLServer 2000


1.
2.
3.
4.

Respaldos y Recuperacin de Bases de Datos


Performance y Optimizacin de Base de Datos
Manejo de LOG
Plan de Mantenimiento

Lenguajes
computacionales

SQL

FORMS

VISUAL BASIC
JAVA

Herramientas
De aplicacin

DBMS

REPORTS
GRAPHS...

VISUAL C...
SQL SERVER
ORACLE
INFORMIX...

Sistema de Base de Datos


Desarrolladores
Programas
De Aplicacin

DBMS
Herramientas
Para el Diseo

Programadores

Usuarios

Programas
De Aplicacin

Query y
Procedimientos

M
O
T
O
R
B.
D.

Datos del
Usuario

B.D.
Catlogo del
Sistema: Indices,
Restricciones,
descripciones,
etc,(Metadatos)

PROCESO DEL DESARROLLO DE UNA


BASE DE DATOS
Recoleccin y Anlisis de requerimientos
Esquema
Conceptual
Diseo Lgico de
la Base de Datos
Diseo Fsico de la
Base de datos

Base de Datos operando

PROCESO DEL DESARROLLO DE UNA


BASE DE DATOS
Esquema
Conceptual

Se crea el modelo Entidad - Relacin

Se definen las entidades.


Se definen los atributos (campos).
Se definen las relaciones.
Se crea el diagrama de la B.D.

MODELO ENTIDAD RELACIN


MODELO CHEN
Nombre

Num.nmina

Num.Dpto

EMPLEADO

Fecha Nac.

N
tiene

Direccin

1
Num.Dpto

DEPARTA
MENTO

Nombre

MODELO ENTIDAD RELACIN


MODELO PATAS DE GALLO
INSTRUCTOR
#(1) Clave
* Nombre
* Direccin
#(2) RFC
FK Profesion
ASIGNACION
#(1)Clave Instructor
#(1)Codigo Curso
* Fecha
PROFESION
# Clave
* Descripcin

CURSO
# Codigo
* Nombre
* Duracin
FK Requisito
* Predecesor

PARTICIPANTE
# Clave
* Nombre
* Direccin
* Puesto

INSCRIPCION
#(1)FK Clave Participante
#(1)FK Codigo Curso
* Fecha
* Evaluacion

PROCESO DESARROLLO DE UNA


BASE DE DATOS
Diseo Lgico de
la Base de Datos

Se crea el esquema conceptual


(Modelo Relacional)
Se definen las caracteristicas de
los atributos (tipo, longitud, tamao).
Se definen restricciones.
Es independiente al software de la
B.D.

PROCESO DESARROLLO DE UNA


BASE DE DATOS
Diseo Fsico de la Base de Datos

Se crea fisicamente la B.D.

Se definen el manejador de la B.D.


con el cual se creara la B.D. (DBMS)
Se crea la estructura de la B.D.
Se introduce la informacin en la
Estructura de la B.D.

TERMINOLOGIA

TABLA/ ENTIDAD / AFINIDAD, algo o alguien de


quin se requiere informacin.

COLUMNAS/CAMPO / ATRIBUTO,
caractersticas de una entidad
REGISTRO/TUPLA(E)/RENGLONES.

LLAVE (PK, FK, SK, llave compuesta)

Definicin de LLAVES
LLAVE PRIMARIA (PK), Atributo nico dentro de una
Entidad, se representa con el signo de #.
LLAVE FORANEA (FK), aquel atributo que es llave
Primaria en otra entidad, lo que nos permite
Tener el acceso a dicha entidad.
LLAVE SECUNDARIA, atributo con valor nico
Dentro de una entidad pero no es la llave primaria
LLAVE COMPUESTA, llave compuesta por ms de
Dos o ms atributos.

Qu es SQLServer 2000
SQLServer es una sistema de
administracin de Base de Datos
(DBMS) completo y poderoso, su
interfaz de usuario es amigable similar
a las interfases tipo Windows, con
barras de mens, iconos, etc.

COMPONENTES DE UN DBMS
QUERYS

Consultas Base de Datos

DML

Data Manipulation Language

DDL

Data Definition Language

Procedure

Genera programas

Diccionario de
Datos

Metadatos

BASE DE DATOS Datos, conjunto de tablas, registros.

Iniciar el Servicio de SQLServer 2000


Nombre Hardware
Nombre de Servicio

Server Enterprice Manager SQLServer

Instancia a la B.D.
Base de Datos Operativas
y Usuario
Control de Seguridad

SERVER ENTERPRICE MANAGER


Raz de la Consola

Instancia a la B.D.
Base de datos
Servicios de Transformacin .
Administracin
Seguridad
Servicios compatibles
Meta Datos

Server Enterprice Manager SQLServer


Herramienta
Base de Datos *
Servicios de
Transformacin
de Datos
Administrador

Funcin
Base de Datos Operativas, y
creadas por el usuario
DTS, es una herramienta que
permite transformar, extraer y
consolidar datos de diferentes
fuentes
Permite administrar las tareas de la
base de datos, es un apoyo del
DBA

Server Enterprice Manager SQLServer


Herramienta

Funcin

Seguridad *

Configura usuarios, password, roles


asociados a los permisos de la B.D.
Servicios Adicionales como SQLMail,
Herramientas de apoyo a ndices.
Administra los Medatos de la B.D.

Servicios de
Soporte
Servicio de
MetaDatos

B.D. operativas de SQLserver


Base de
Datos

Descripcin

Master

Msdb

B.D. controla los usuarios , cuentas, etc.


Configura el medio ambiente, la
ubicacin de la B.D.
Provee template, prototipos para nuevas
B.D.
Provee una rea de almacenamiento
para tablas temporales.
Almacena datos histricos y respaldos

Pub

B.D. opcional, contiene ejemplos

Model
Tempdb

Propiedades de las B.D. SQLserver


Propiedades
General

Descripcin

Datos generales de la Base de Datos :


nombre de la B.D. , propietario, fecha de
creacin , tamao, etc. usuarios , cuentas,
etc.
Archivo de Datos Ubicacin de la B.D., crecimiento
automtico de la B.D. se sugiere 10%.
Registro de
Se indica el rea de trabajo de la B.D.
transacciones

Propiedades de las B.D. SQLserver


Propiedades

Descripcin

Grupo de
Archivos

Permite integrar todas las tablas del


sistema en un grupo de manera que
residan en un solo disco. Por default
PRIMARY.
Restringe accesos, controla
recuperaciones y configura el
comportamiento de la aplicacin de la
B.D. ejemplo NULL o NOT NULL
Asigna permisos a usuarios para
determinar las acciones que puede
realizar en la B.D.

Opciones

Permisos

Requisitos de HARDWARE
Equipo

Intel o Compatible
Pentium 166MHz o superior.

Memoria RAM

64MB Mnimo, se recomienda 128 MB

Espacio en

Componentes B.D SQLserver:95 a270MB

Disco Duro
Pantalla

Analysis Services:50MB 130 MB


VGA o resolucin superior

Requisitos de SOFTWARE
Enterprise
Standar

Personal

Microsoft Windows NT Server 4.0,


Microsoft Windows NT Server Enterprise 4.0,
Windows 2000 Server,
Windows 2000 Advanced Server y
Windows 2000 Data Center Server.
Microsoft Windows ME, Windows 98
Windows 2000 Profesional
Adems de los Sistemas Operativos anteriores
Sistemas Operativos Windows NT y Windows 2000

Developer
Solo
Herramientas Windows ME , Windows 98
Cliente
Todos los Sistemas Operativos anteriores

Requisitos de SOFTWARE de Red


Microsoft Windows NT, Windows 2000, Windows Me,
Windows 98 y Windows 95 tienen software de red integrado.
Slo se requiere software de red adicional si va a utilizar
Banyan VINES o AppleTalk ADSP.
La compatibilidad con el cliente Novell NetWare IPX/SPX se
proporciona mediante el protocolo NWLink del Entorno de red
de Windows.

Requisitos de SOFTWARE en Clientes


Microsoft SQL Server 2000 admite los siguientes clientes:
Windows NT Workstation, Windows 2000 Professional,
Windows 98, Windows 95.
Apple Macintosh, OS/2 y UNIX. Macintosh, OS/2 y
UNIX no admiten las herramientas grficas de SQL Server y
requieren el software cliente ODBC de otro fabricante.

Ediciones de SQL Server 2000

Enterprise /Standard,

Personal,
Developer y
Evaluation.

Instalar SQLServer2000
Instalar un servidor de base de datos
SQL Server 2000 Enterprise o
SQL Server 2000 Standard.
Instalar una base de datos personal en una estacin de
trabajo
SQL Server 2000 Personal.
Normalmente, estas instalaciones incluyen el motor de base
de datos, las herramientas de administracin de base de
datos del cliente y los componentes de conectividad del
cliente.

Instalar SQLServer2000
Para dar inicio a la instalacin seleccione la opcin
COMPONENTES de SQL Server 2000
Instalar Servidor de Bases de Datos, proporciona
soporte para soluciones escalables .

Instalar Analysis Services,


diseado para
aplicaciones OLAP y minera de datos.

Instalar English Query, permite modelar


instrucciones en ingls en lugar de formar
instrucciones en SQL.

Permisos de la B.D. SQLserver


General, inicin de sesin .
USUARIO. Asignar nombre de usuario y password, o
bien se autenticacin con los datos de Windows NT.
Datos Predeterminado. Se especfica el idioma
(formatos de fecha) y la base de datos prederteminados
para una sesin.
Otorgar accesos a la Base de Datos .
Aparece una lista con las Base de Datos, se deben
seleccionar las que se asignaran al usuario .
Permisos, en este punto se determina cual es la
funcin del usuario el default es PUBLIC.

Permisos de la B.D. SQLserver


Se debe navegar por el Server Entrerprice Manager ,
hasta la carperta de SEGURIDAD seleccionar
NUEVO LOGIN.
Encontraremos 3 opciones :
General , inicin de sesin.
Funciones del Servidor.
Acceso a la Base de Datos.

Permisos de la B.D. SQLserver


Propietario de la Base de Datos , significa que este usuario
tiene la Capacidad de agregar, configurar, crear y quitar de
la base de datos Lo que desee.
El DBO es el propietario de la Base de Datos.
Para cada usuario se debe crear una cuenta y asignarles
distintos Permisos (accesos otorgados o denegados). Estos
permisos estn relacionados con el servidor, las base de
datos o los objetos dentro de una instancia.
Nota : Windows 2000 o NT, permite la autenticacin desde
que se Inicia la sesin al equipo.

Permisos de la B.D. SQLserver


Control de permisos a usuarios .Se tiene un nivel muy
fino de granularidad en los permisos. Ejemplo : Se puede
negar la consulta a un campo especfico.
Se debe crear una funcin para la B.D.

Navegue hasta la carpeta de funciones.

Seleccione nueva funcin.

Seleccionar tipo de funciones : estndar contiene


usuarios con permisos, aplicacin se asigna usuarios y
permisos por aplicacin.

Permisos de la B.D. SQLserver


Se pueden asignar funciones
a la instancia de la B.D.
sysadmin
securityadmin
serveradmin
setupadmin
processadmin
dbcreator

Permisos de la B.D. SQLserver


Tipo de funciones que se asignan a una instancia
de la B.D.
sysadmin, esta funcin tiene control total sobre la
instancia de SQL Server 2000, la cuenta sa pertenece a
esta funcin.
securityadmin, puede crear y administrar inicios de sesin
para el servidor.
serveradmin, configura la instancia de SQL Server 2000,
puede apagar incluso el servidor.
setupadmin, tiene la capacidad de administrar
procedimientos de inicio y servidores vinculados.
processadmin, tiene la capacidad de administrar procesos
que SQL Server 2000 tiene en ejecucin.
dbcreator, esta funcin puede crear, alterar y quitar B.D.

Permisos de la B.D. SQLserver


Funciones para Usuarios de la B.D.
db_owner
db_securityadmin
db_accessadmin
db_ddladmin
db_backupoperator
db_datawriter
db_datareader
db_denydatawriter
db_denydatareader

Permisos de la B.D. SQLserver


Qu tipo de PERMISOS tiene cada FUNCION (grupo)?
db_owner , sta es la funcin ms poderosa que
pueda tener un usuario. Permite al usuario un control
completo de la B.D. El usuario sa es un miembro de
esta funcin.
db_securityadmin, permite que un administrador
maneje todas las funciones y seguridad de los usuarios,
sin necesidad de tener el control completo.
db_accessadmin, permite que este usuario tenga el
derecho de agregar o quitar usuarios de la base de
datos.
db_ddladmin, permite a un usuario manipular todos los
objetos de la B.D. Ejemplo : un usuario, tablas, etc.

Permisos de la B.D. SQLserver


Qu tipo de PERMISOS tiene cada FUNCION (grupo)?
db_backupoperator , sta es la funcin permite que los
usuarios realicen copias de seguridad de la B.D.
db_datawriter, permite que un usuario modifique los
datos de todas las tablas de usuario .
db_datareader, permite que un usuario vea los datos
de todas las tablas de usuario.
db_denydatawriter, evita que cualquier usuario
modifique cualquier dato de las tablas de usuario.
db_denydatareader, evita que cualquier usuario
consulte o lea cualquier dato de las tablas de usuario.

Permisos de la B.D. SQLserver


Un usuario puede pertener a una o varias funciones, sin
caer en contradicciones.
Ejemplo si un usuario pertenece a las funciones
db_datawriter y db_denydatawriter, evita que el usuario
modifique cualquier dato de las tablas de usuario, ya
que el denegado tiene una precedencia mayor.
Ejemplo si un usuario pertenece a las funciones
db_datawriter y db_backupoperator, podra evitar que el
usuario modifique cualquier dato de las tablas de
usuario, ya que el denegado tiene una precedencia
mayor.

Permisos de la B.D. SQLserver


Para verificar el usuario que esta conectado a la Base de
Datos.
select current_user,session_user, system_user

CREAR BASE DATOS SQLserver


1 ) Atravs de SQL Server Entrerprice Manager,
dentro del rbol de WINDOWS, seleccionar
NEW DATABASE
2) A travs de Server Query Analyzer
CREATE DATABASE NombreBase Datos;

ACCESAR BASE DATOS SQLserver


1 ) Atravs de SQL Server Entrerprice Manager,
dentro del rbol de WINDOWS

2) A travs de Server Query Analyzer


USE NombreBase Datos;

TIPO DE DATOS SQLServer

Tipo de Dato
Int
Decimal
DateTime
Char(N)
Varchar(N)
Text

Descripcin
Enteros
Nmeros Reales
Fecha
Caracteres Fijo
Caracteres Variable

CREAR TABLAS SQLServer

Instrucciones DDL
CREATE TABLE nombre
(campo1 tipo de dato,
campo2 tipo de dato NOT NULL,
campo3 tipo de dato VALOR INICIAL,
campo4 tipo de dato CONSTRAINT);

AGREGAR COLUMNAS SQLserver


TABLA EMPLEADO
NumE
Nombre Salario

Fecha_ing

7698

BLAKE

34200

01-MAY-81

7654

MARTIN

15000

28-SEP-81

7499

ALLEN

19200

20-FEB-81

7844

TURNER 18000

08-SEP-81

Agregar Una
nueva Columna
dentro de la
Tabla Empleado

.......
NumE
7698
7654
7499
7844
.......

Nombre
BLAKE
MARTIN
ALLEN
TURNER

Salario
34200
15000
19200
18000

Fecha_ing
01-MAY-81
28-SEP-81
20-FEB-81
08-SEP-81

Pues
to

CREAR TABLAS SQLServer

Instrucciones DDL
CREATE TABLE cliente
(numero int,
nombre varchar(20) NOT NULL,
saldo
float DEFAULT 0,
fecha_ing date DEFAULT GETDATE(),
constraint num_pk PRIMARY KEY (numero);

CREAR TABLAS SQLServer


ALTER TABLE nombre
(ADD campo1 tipo de dato);

Ejemplo :
ALTER TABLE cliente
(ADD email varchar(50) );

TRUNCATE UNA TABLA

La instruccin TRUNCATE TABLE , elimina todos los


registro respetando la estructura.

A la instruccin TRUNCATE no se le puede aplicar


ROLLBACK.

Una instruccin alternativa , es utilizar la instruccin DML


DELETE.

TRUNCATE TABLE departamento;

ELIMINANDO COLUMNAS
Eliminar la Columna de
Fecha_ing de la Tabla Empleado

Empleado
NumE

Nombre

Salario

Fecha_ing

7698

BLAKE

34200

01-MAY-81

7654

MARTIN

15000

28-SEP-81

Sales

7499

ALLEN

19200

20-FEB-81

Manag

7844

TURNER

18000

08-SEP-81

sales

.......

Pues
to
mkt

ELIMINADO COLUMNAS (DROP COLUMN )


ALTER TABLE dept30
DROP COLUMN(HIREDATE);
Elimina la columna dentro de la tabla, incluyendo los datos

EMPNO
7698
7654
7499
7844
............

ENAME
BLAKE
MARTIN
ALLEN
TURNER

6 rows selected.

ANNSAL
34200
15000
19200
18000

JOB
SALESMAN
MANAGER
SALESMAN
MANAGER

MODIFICANDO COLUMNAS
Se pueden realizar los siguientes cambios :
Incrementar de tamao un campo.
Decrementar de tamao un campo, siempre y cuando los valores sean
nulos o bien no haya registros.
Cambiar el tipo de campo, bajo la misma condicin del punto anterior.
Agregar un constraint de NOT NULL siempre que no haya valores
NULOS en la columna

Desde el Administrador de SQL


Se elige DISEO DE TABLAS

Qu son los CONSTRAINTS ?

Los Constraints son reglas a nivel Tabla.

Los Constraints protegen la integridad de las tablas.

Los tipos de Contraints que maneja SQL server 2000


son:
o NOT NULL.
o UNIQUE Key.
o PRIMARY Key.
o FOREIGN Key.
o CHECK.

TIPOS DE CONSTRAINTS
CONSTRAINT

DESCRIPCION

NOT NULL

El campo no se puede quedar NULO

UNIQUE Key

El campo debe tener un valor nico


dentro de toda la tabla

PRIMARY Key

Identificador nico dentro de la tabla

FOREIGN Key

Indica que la columna es llave primaria

CHECK

Especfica condiciones especiales para


una columna

CONSTRAINT NOT NULL


Este tipo de constraint se define a nivel campo

CREATE TABLE emp(


empno NUMBER(4) ,
ename VARCHAR2(10) NOT NULL ,
job
VARCHAR2(9) ,
mgr
NUMBER(4) ,
hiredate DATETIME,
sal
NUMBER(7,2) ,
comm NUMBER(7,2) ,
deptno NUMBER(7,2) NOT NULL ;

Constraint de PRIMARY KEY


El campo matricula es la llave primaria de la tabla

CREATE TABLE
alumno
(
matricula
INT,
nombre
VARCHAR2(14) ,
carrera
VARCHAR(13) ,
curp
VARCHAR(15),
CONSTRAINT alumno_curp_uk UNIQUE (curp),
CONSTRAINT alumno_mat_pk
PRIMARY KEY(matricula)) ;

Constraint de UNIQUE
El campo curp deber contener un valor nico

CREATE TABLE
alumno
(
matricula
INT,
nombre
VARCHAR2(14) ,
carrera
VARCHAR(13) ,
curp
VARCHAR(15),
CONSTRAINT alumno_curp_uk
UNIQUE (curp);

Constraint de FOREIGN KEY


Dentro de la tabla de emp, el campo deptno es una FK,
Y su referencia es con la tabla dept donde del campo deptno es PK
CREATE TABLE emp (
empno NUMBER(4) ,
ename VARCHAR2(10) NOT NULL ,
job
VARCHAR2(9) ,
mgr
NUMBER(4) ,
hiredate DATETIME,
sal
NUMBER(7,2) ,
comm NUMBER(7,2) ,
deptno NUMBER(7,2) NOT NULL ;
CONSTRAINT emp_deptno_fk
FOREIGN KEY (deptno)
REFERENCES dept (deptno));

Constraint de CHECK
Dentro de la tabla de emp, el campo comm solo aceptara valores
De 10, 20 y 30.
CREATE TABLE emp (
empno INT ,
ename VARCHAR2(10) NOT NULL ,
job
VARCHAR2(9) ,
mgr
INT ,
hiredate DATE,
sal
INT ,
comm INT ,
deptno INT NOT NULL ;
CONSTRAINT emp_comm_ck
CHECK (comm IN (10,20,30)) );

Agregar / Borrar CONSTRAINT


Elimar el constraint emp_mgr_uq de la tabla EMP .
ALTER TABLE
emp
DROP CONSTRAINT
emp_mgr_uq;
The command(s) completed successfully .
Agregar el constraint emp_mgr_fk de la tabla EMP .
ALTER TABLE
ADD CONSTRAINT

emp
emp_mgr_uq UNIQUE(manager);

The command(s) completed successfully .

CONSULTA DE LOS CONSTRAINTS


SQL> SELECT *
FROM INFORMATION_schema.table_constraints

CONSTRAINT_CATALOG

EPTNO
EMP_EMPNO-PK
EMP_MGR_FK

COLUMN_NAME

EMPNO
MGR

CONSULTA DE LOS CONSTRAINTS


SELECT *
FROM INFORMATION_schema.table_constraints

CONSTRAINT_CATALOG
DEPARTAMENTO
EMPLEADO

CONSTRAINT_NAME
pk_deptno_cve
fk_emp_cat

DATA MANIPULATION LANGUAGE/


DML
COMMAND
INSERT

DESCRIPTION
Agrega nuevos registros a la tabla

UPDATE

Modifica registros ya existentes

DELETE

Elimina registros ya existentes

ROLLBACK

Deshace el ltimo cambio (con


excepciones)

INSERTAR DATOS A LA B.D.


INSERT INTO table [(column1 , column2)]
VALUES (value1 , value2);

La estructura de la tabla DEPT


Name
Null
Type
----------------------------------------------------------ID
Not Null
INT
NAME
Not Null
VARCHAR2(25)
REGION_ID
INT
SQL> INSERT INTO DEPT
VALUES (11, Finance,2);

Actualizar Registros en la B.D.


UPDATE table
SET column = value
[WHERE condition];

UPDATE dept
SET region_id = 10
WHERE id = 2

Si la clave del
departamento
es igual a 2, cambia
el valor que tiene la
region por 10.

Name
Null
Type
----------------------------------------------------------ID
Not Null
INT
NAME
Not Null
INT
REGION_ID
INT

Actualizar Registros en la B.D.


Actualiza el dept_id con valor de 32 y el salario con
Valor 2550, para el empleado con id = 2

UPDATE employee
SET dept_id = 32, salary = 2550
WHERE id = 2 ;

Actualiza la comisin de todos los empleados con el Valor de 10.

UPDATE employee
SET commission = 10;

Eliminar Registros en la B.D.


DELETE FROM table
[WHERE condition];

Elimina todos los registros de la tabla de dept.

DELETE FROM dept;

Elimina Registros en la B.D.


SQL>DELETE dept
WHERE region_id = 1;
Este registro no se puede borrar debido a que es llave
fornea de la tabla de empleados. Es decir un empleado
tiene la clave de un departamento

ROLLBACK
SQL>DELETE FROM employee;
30,000 rows delete
Se borran 30,000 registros de la tabla de employee, al
indicar la instruccin Rollback se des-hace el delete antes
realizado. Los 30,000 registros se vuelven a habilitar.

SQL> ROLLBACK;
Rollback complete.

ROLLBACK
begin transaction
insert into producto5
values (400,'desarmador A',01/05/02);
select * from producto5;
ROLLBACK transaction
select * from producto5

Resumen de instrucciones SQL

SELECT

SELECCIN DE DATOS

INSERT
UPDATE
DELETE

LENGUAJE DE MANIPULACIN DE DATOS (DML)

CREATE
ALTER
DROP
RENAME
TRUNCATE

LENGUAJE DE DEFINICIN DE DATOS (DDL)

COMMIT
ROLLBACK

CONTROL DE TRANSACCIN (Administra los cambios


realizados por DML)

SELECCIONANDO COLUMNAS
La instruccin SELECT , permite seleccionar datos de la
De una o ms tablas de la Base de Datos.
Sintaxis :
SELECT [DISTINCT] { * , nombre columna [alias]}
FROM nombre de la tabla;

SELECCIONANDO TODAS LAS COLUMNAS


SELECT * FROM departamento;
Resultados :
DEPTNO
10
20
30
40

DNOMBRE

DLOC

ACCOUNTING NEW YORK


RESEARCH
DALLAS
SALES
CHICAGO
OPERATIONS BOSTON
... 4 lneas seleccionadas

SELECCIONANDO COLUMNAS ESPECIFICAS


SELECT dloc, deptno FROM departamento;
Resultados :
DLOC
NEW YORK
DALLAS
CHICAGO
BOSTON

DEPTNO
10
20
30
40

... 4 lneas seleccionadas

DEFINIENDO UN ALIAS DE COLUMNA


Renombrar el encabezado de la columna.
Es comn que se utilice cuando se realizan clculos
matemticos.
Inmediatamente despus del nombre de la columna,
se escribe la palabra reservada AS y se indica el
titulo deseado para la columna.
Requiere doble comillas si es que contiene espacios
o caracteres especiales.

SELECCIONANDO COLUMNAS ESPECIFICAS


(con operaciones aritmticas)
SELECT ename, esal, esal+300
FROM empleado;
ENAME

ESAL

KING
5000
BLAKE
2850
CLARK
2450
JONES
2975
MARTIN
1250
ALLEN
1600
... 14 lneas seleccionadas

ESAL+300
5300
3150
2750
3275
1550
1900

DEFINIENDO UN ALIAS DE COLUMNA


SELECT ename, esal, 12*(esal+100) AS ANUAL
FROM empleado;
ENAME
KING
BLAKE
CLARK
JONES
MARTIN
ALLEN
.....

ESAL

ANUAL

4900
60000
2900
36000
2400
30000
2900
36000
1400
18000
1900
24000
14 lneas seleccionadas

SELECCIONANDO LAS COLUMNAS CON


CIERTO ORDEN
La instruccin ORDER BY , permite seleccionar las
Columnas con cierto orden.
Sintaxis :
SELECT nombre columnas
FROM nombre de la tabla
[ORDER BY { nombre columna} [ASC/DESC] ];

SELECCIONANDO LAS COLUMNAS CON


CIERTO ORDEN
SELECT ename, deptno, efecha_ing
FROM empleado
ORDER BY ename;
ENAME

DEPTNO

EFECHA_ING

BLAKE

43

07-APR-90

CLARK

44

09-FEB-92

DANCS

44

30-NOV-90

DUMAS

45

17-MAR-91

MARTIN

35

09-OCT-91

KING

32

18-JAN-92

.....

14 lneas seleccionadas

SELECCIONANDO LAS COLUMNAS CON


CIERTO ORDEN
SELECT ename, deptno, efecha_ing
FROM empleado
ORDER BY efecha_ing DESC;
ENAME

DEPTNO

EFECHA_ING

CLARK

44

09-FEB-92

KING

32

18-JAN-92

MARTIN

35

09-OCT-91

DUMAS

45

17-MAR-91

DANCS

44

30-NOV-90

BLAKE

43

07-APR-90

.....

14 lneas seleccionadas

SELECCIONANDO LAS COLUMNAS CON


CIERTO ORDEN
SELECT ename, deptno, esal AS SALARIO
FROM empleado
ORDER BY deptno, esal DESC;
ENAME

DEPTNO

SALARIO

KING

32

1450

MARTIN

35

1250

CLARK

44

1400

DANCS

44

750

BLAKE

45

1950

DUMAS

45

1800

.....

14 lneas seleccionadas

LIMITANDO LA SELECCIN DE COLUMNAS


ENAME

DEPTNO

KING

32

MARTIN

35

SALARIO
1450 ****
1250

CLARK

44

1400

DANCS

44

750

BLAKE

45

1950 ****

DUMAS

45

1800 ****

.....

14 lneas seleccionadas

SELECT *
FROM empleado
WHERE salario > 1400;

Operadores de Comparacin

OPERADORES

Operador Significado
=
Igual
>
Mayor que
<=
Menor o igual
Operadores SQL

Operadores Lgicos

Operador
BETWEEN.. AND..
IN (lista)
LIKE
IS NULL

Significado
Entre dos valores
Match algun valor
Match
El valor es NULO

Operador Significado
AND
El resultado es TRUE cuando ambos se cumplen
OR
El resultado es TRUE cuando uno se cumple
NOT
Niega la condicin

EL OPERADOR BETWEEN
SELECT first_name, last_name
FROM s_emp
WHERE start_date BETWEEN 09-may-91 AND 17-jun-91 ;

SELECT id, name, region_id


FROM s_dept
WHERE region_id IN (1,3,5);

EL OPERADOR LIKE
Smbolo
%

Descripcin
Es un comodn

SELECT first_name, last_name


FROM s_emp
WHERE last_name LIKE M%;
SELECT *
FROM s_emp
WHERE last_name NOT LIKE %a%;

EL OPERADOR NULL
SELECT first_name, last_name, commission_pct
FROM s_emp
WHERE commission_pct IS NOT NULL;

SELECT *
FROM s_emp
WHERE sales_rep is NULL;

EL OPERADOR AND & OR


SELECT *
FROM s_emp
WHERE dept_id = 41 AND title = Clerk
SELECT *
FROM s_emp
WHERE dept_id = 41 OR title = Clerk

FUNCIONES SIMPLES PARA DATOS TIPO CHAR


SELECT LOWER(first_name), UPPER (last_name)
FROM s_emp;
SELECT first_name + last_name, SUBSTRING(last_name,2,3)
FROM s_emp
WHERE LENGTH(last_name) > 10;

FUNCIONES SIMPLES PARA DATOS TIPO CHAR


Nombre de la Funcion (column)
LOWER : convierte a minsculas
UPPER : convierte a maysculas
+

: une dos o ms campos

SUBSTRING : regresa un conjunto de caracteres.


LEN

: regresa el tamao del string

FUNCIONES PARA DATOS TIPO FECHA


Operacin

Resultado

MONTH

nmero del mes 2 dgitos

YEAR

ao 4 dgitos

DAY

nmero del da 2 dgitos

Select month(fechaing)
From EMPLEADO;

FUNCIONES PARA DATOS NUMERICOS


SELECT nombre, puesto FROM EMPLEADO where
month(FEC_NAC ) = 2
Nombre

Puesto

------------ -----------Juan

analista

Luis Angel vendedor


Karla

lider proyecto

Ana

vendedor

FUNCIONES DE GRUPO NUMERICAS


AVG(atributo) : promedio de todos los atributos, [que
cumplen la condicin]
COUNT(atributo) : nmero de registros, * cuenta todos
incluso los nulos y los rpetidos.
MAX(atributo) : mximo valor.
MIN(atributo) : mnimo valor.
SUM(atributo) : suma los valores excepto nulos.

FUNCIONES DE GRUPO NUMERICAS


SELECT AVG(salario), MAX(salario), MIN(salario), SUM
(salario)
FROM s_emp
WHERE UPPER(puesto) LIKE VENTAS;
AVG(salario), MAX(salario), MIN(salario), SUM(salario)
------------------------------------------------------------------1476

1525

1400

7380

FUNCIONES DE GRUPO NUMERICAS


SELECT COUNT(*)
FROM s_emp
WHERE dept_id = 31;

COUNT(*)
-----------5

FUNCION GROUP BY
Nombre_emp
----------------Juan Antonio
Luis Angel
Karla
Ana
Alberto
Sergio
Elena
Sofa
Antonio
Dolores
Bin Laden

departamento
----------------41
41
41
41
42
42
42
42
43
43
43

FUNCION GROUP BY
SELECT columnas, funcin de grupo
FROM tabla
[WHERE condicin]
[GROUP BY columna]
[HAVING condicin];

FUNCION GROUP BY
SELECT nombre_emp, departamento
FROM empleado
WHERE dept_id = 41
Nombre_emp
----------------Juan Antonio
Luis Angel
Karla
Ana

departamento
----------------41
41
41
41

FUNCION GROUP BY
SELECT departamento , COUNT(*) Nmero
FROM empleado
WHERE dept_id = 41;
Departamento
----------------41

Nmero
----------------4

Departamento
----------------41
42
43

Nmero
----------------4
6
5

FUNCION GROUP BY
SELECT puesto , SUM(salario) Nmina
FROM empleado
GROUP BY puesto
ORDER BY SUM(salario);
Puesto
Nmina
--------------------------------President
2500
Gerentes
6150
Vendedores
7380

FUNCION GROUP BY/ HAVING


SELECT puesto , SUM(salario) Nmina
FROM empleado
GROUP BY puesto
ORDER BY SUM(salario)
HAVING SUM(salario) > 2000;
Puesto
Nmina
--------------------------------President
2500
Gerentes
6150
Vendedores
7380

FUNCION GROUP BY/ HAVING

SELECT campo grupal , SUM(salario) Nmina


FROM empleado
WHERE condicin para otro campo no grupal
GROUP BY campo grupal
ORDER BY campo grupal, o funciones grupales
HAVING campo grupal o funciones grupales

JOIN
La funcin join , se utiliza para consultar ms de
2 tablas.

Tipos de Join :

INNER JOIN
LEFT OUTER JOIN
RIGHT OUTER JOIN
FULL OUTER JOIN

INNER JOIN
La funcin join , se utiliza para consultar ms de
2 tablas.
El join se realiza utilizando la PK de una tabla con
FK de otra tabla.

Este tipo de join es el ms utilizado.

Select c.nombre, c.apellido, a.categoria


From cliente c
INNER JOIN categoria a ON c.cvecategoria = a.clave

INNER JOIN

SELECT c.nombre, v.clave, v.cliente, p.nombre


FROM
ventas v INNER JOIN
clientes c ON c.clave = v.cliente
INNER JOIN productos p ON
v.producto = p.clave

LEFT OUTER JOIN


Combina los datos de la tabla especificada en la
clasula FROM con la tabla que se especfica en la
instruccin join.

Es similar al INNER JOIN, la diferencia es cuando


no coinciden las filas devuelve NULL.

En el ejemplo de abajo observamos, cuando un cliente


no tiene categora asignada regresa NULL.

Select c.nombre, c.apellido, a.categoria


From cliente c
LEFT OUTER JOIN categoria a ON c.cvecategoria = a.clave

RIGHT OUTER JOIN

Combina los datos de la tabla especificada en la


instruccin JOIN con la tabla definida en la sentenecia
FROM.

Es similar al LEFT JOIN, la diferencia es la tabla que


toma como base.

En el ejemplo de abajo observamos, cuando una


categoria no tiene una cliente asignada regresa NULL.
Esto no sucede si hay integridad referencial

Select c.nombre, c.apellido, a.categoria


From cliente c
RIGHT OUTER JOIN categoria a ON c.cvecategoria = a.clave

FULL OUTER JOIN

Combina todas las filas de una tabla como de la otra.

Las filas de la tabla que se incluyen en la clasula


FROM son las que se regresan como NULL.

El resultado es un producto cartesiano.

Select c.nombre, c.apellido, a.categoria


From cliente c
FULL OUTER JOIN categoria a ON c.cvecategoria = a.clave

Respaldos y Proteccin de la B.D.


Realizar copias de seguridad perodicamente.
Proteger copias de seguridad por medio de contraseas.
Modelo de recuperacin completa.
Recuperar hasta el punto de la falla.

Mtodos de Respaldos de la B.D.


Respaldo Completo de la B.D. , crea una copia
completa .Con las actualizaciones realizadas a la fecha. Este
tipo de Respaldo requiere grandes recursos.
Respaldo Diferencial de la B.D. Crea un respaldo solo
de los cambios realizados (commit) despus de un respaldo
completo. Se recomienda realizarlo varias veces a la
semana.
Respaldo del registro de Transacciones. Realiza una
copia del registro de transacciones (UTL) , se utiliza cuando
se requiere regresar a un punto especfico de la B.D.
(RollBack) Se recomienda realizarlo cada hora.

Estrategias de Respaldos B.D.


Modelo

Base de
Datos

Diferencial Log
Archivo (s)
Transacciones

Simple

Requerido Opcional

No necesario

No necesario

Completo Requerido Opcional

Requerido

Opcional

Por
volumen

Requerido

Opcional

Requerido Opcional

Estrategias de Respaldos B.D.


Modelo

Beneficio

Costo

Punto de
Recuperacin

Simple

Performance
Alto

Actualizaciones
Se recupera haste
posteriores a la B.D el ltimo punto
se deben reaplicar. respaldado.

Completo Se pueden
recuperar
desde
cualquier
punto.

Ninguno

Se puede
recuperar en
cualquier
momento.

Por
volumen

El problema se da
cuando el registro
de transacciones se
daa

Se puede
recuperar al final
o en cualquier
momento

Performance
Alto

Realizar copias o respaldos de la B.D.


Dentro del rbol de opciones del Administrador Corporativo,
Se debe seleccionar la opcin de BASE DE DATOS , ubicar el
Nombre de la B.D. Que se desea respaldar, dentro de TODAS
LAS TAREAS encontramos :
Respaldos (BACKUP).
Restaurar (RESTORE).

Realizar copias o respaldos de la B.D.


Realizar una copia de Seguridad por medio del Administrador
Corporativo :
Navegue hasta llegar a la Base de Datos deseada.
Encontrar la opcin Todas las Tareas.
Seleccionar COPIA DE SEGURIDAD DE LA BASE DE DATOS
Se debe especficar el nombre de la copia de seguridad.

Realizar copias o respaldos de la B.D.


Realizar una copia de Seguridad por medio del Administrador
Corporativo :
Se puede escribir una pequea descripcin como la fecha.
Elegir el tipo de copia de seguridad .
Dentro del rbol del Administrador aparece la copia de la B.D.

Realizar copias o respaldos B.D.


Realizar copias o respaldos de Seguridad por medio de
Instrucciones de Transact-SQL :
BACKUP DATABASE ejemplo
TO DISK = C:\Copias de Archivos\Ejemplo.bak;

Restaurar copias o respaldos de la B.D.


Restaurar una copia de Seguridad por medio del Administrador
Corporativo :

Navegue hasta llegar a la Base de Datos deseada.


Encontrar la opcin Todas las Tareas.
Seleccionar RESTAURAR BASE DE DATOS
Se especifica el nombre de la copia de seguridad a restaurar.
Existen varias opciones para ejecutar la restauracin

Restaurar una B.D.


Restaurar una copia de Seguridad por medio de instrucciones
De Transact-SQL :
RESTORE DATABASE ejemplo
FROM DISK = C:\Copias de Archivos\Ejemplo.bak;

SITUACIONES que degradan el


PERFORMANCE en B.D.

SQL server se ejecuta con ms de 2 procesos.


Cuntos usuarios accesan concurrentemente la Base de
Datos?
Qu tipo de QUERYS se ejecuta? Por ejemplo JOIN con
tablas muy grandes, ordenamientos .
Un gran nmero de registros.

CONSIDERACIONES
A OPTIMIZAR en B.D.
OPTIMIZAR EL SERVIDOR SQL , instalando
adecuadamente SQL server , as como crear usuarios y
permisos.
VELOCIDAD & CONCURRENCIA. Cuntos usuarios
accesan concurrentemente la Base de Datos?
DISEO DE LA BASE DE DATOS. Mantener Integridad
Referencial, ndices y constraints.

COMPROBAR EL FUNCIONAMIENTO
DE UNA CONSULTA.
Cuando se habla del PERFORMANCE de la B.D. Es
importante el funcionamiento de las consultas.
Ejemplo :
SELECT * FROM CLIENTES
WHERE NOMBRE LIKE A%;
Si analizamos la ejecucin que se desprende de esta consulta
el rubro ms importante es el de OPERACIN FISICA,
donde indica que tipo de ndice se utiliza as como el
COSTO DEL CPU.
En este caso el ndice que por el cual trabajar la consulta es
la PK, lo que deprecia el funcionamiento.

COMPROBAR EL FUNCIONAMIENTO
DE UNA CONSULTA.
La solucin es crear un ndice especial para est consulta.
Ejemplo :
CREATE NONCLUSTERED INDEX id_nombre
ON CLIENTES (nombre);
SELECT * FROM CLIENTES
WITH (INDEX (id_nombre))
WHERE NOMBRE LIKE A%;
Si analizamos la ejecucin que se desprende de esta consulta el
rubro ms importante es el de OPERACIN FISICA, donde
indica que tipo de ndice se utiliza as como el COSTO DEL CPU,
a diferencia de la consulta anterior se detecta un performance
mayor. Esto refleja el uso de menos recursos.

PERFORMANCE en B.D.
Cuando dos o ms usuarios lean /escriban una operacin sobre la misma
seccin del disco, existen conflictos. Se proponen las siguientas reglas :

Tiempo de Respuesta Leer/Escribir.


Administrar el Buffer (UTL) se cuenta con el mtodo RAID, obtener
informacin sobre leer/escribir y decidir.
Monitorear siempre las operaciones de leer/escribir antes de decidir
sobre el hardware.
Incrementar la memoria requerida.
Incrementar la velocidad del procesador

PERFORMANCE en B.D.
Administrar el Buffer (UTL)
Identificar cuando haya retrasos en transacciones (DELAY).
La utilera que nos apoya es DBCC SQLPERF (WAITSTATS) .
Monitorear el tiempo de una transaccin, lo que arroga datos
estadsticos.

exec ('DBCC SQLPERF(WAITSTATS)' )


execute sp_spaceused;

PERFORMANCE en B.D.
exec ('DBCC SQLPERF(WAITSTATS)' )
Wait Type

Requests

Wait Time

Signal Wait Time

-------------------------------- ------------------------ ------------------------ -----------------------MISCELLANEOUS


29925.0
3.4290787E+8
1.7172752E+8
LCK_M_SCH_S
0.0
0.0
0.0
LCK_M_SCH_M
0.0
0.0
0.0
RESOURCE_SEMAPHORE
0.0
0.0
0.0
DTC
0.0
0.0
0.0
OLEDB
0.0
0.0
0.0
WRITELOG
78.0
1011.0
60.0
PSS_CHILD
0.0
0.0
0.0
EXCHANGE
0.0
0.0
0.0
XCB
0.0
0.0
0.0
DBTABLE
0.0
0.0
0.0
LOGMGR
0.0
0.0
0.0
CMEMTHREAD
0.0
0.0
0.0
CXPACKET
0.0
0.0
0.0

OPTIMIZAR LA OPERACION B.D.


Existen conflictos dentro de la operacin de una Base de Datos, debido al
gran volumne de datos, ndices , etc.
Para resolver esto se cuenta con el mtodo de configurar la matriz RAID.
RAID,(matriz redundante de discos independientes) permite
que muchos discos realicen muchas tareas a la vez sin perder la
sincronizacin entre ellos.

ADMINISTRACION DEL LOG B.D.


Todos las modificaciones a la Base de Datos se
registran en el archivo LOG .
En ese archivo se considera la bitcora de la Base
de Datos, es til para repaldos, seguridad, etc

ADMINISTRACION de la Base de Datos


Alertas

, configura las acciones que deben ocurrir en caso


de ocurrir un error. Se utilizan cuando suceden errores,
ejemplo la B.D. crece notablemente una alerta nos puede
enviar un mensaje de aviso y un trabajo para respaldar la
B.D.
Operadores, son cuentas de usuario que nos permiten
enviar mensajes de error.
Trabajos , son procesos BATCH ejemplo : respaldos, etc.

Administracin de la Base de Datos

COMPROBAR CONSISTENCIA
DBCC CHCKDB(nombre base de datos ).
Esta instruccin comprueba y repara la inconsistencia dentro
de nuestra B.D.

PLAN DE MANTENIMIENTO de una B.D.


Permite combinar las siguientes funciones :

COMPROBACIONES DE CONSISTENCIA

COPIAS DE SEGURIDAD BASE DE DATOS, EN UNA

SOLA UNIDAD DE TRABAJO.

ACTUALIZA ESTADISTICAS DE LA BASE DE DATOS.

PERMITE REDUCIR ESPACIO EN LA BASE DE DATOS.

PLAN DE MANTENIMIENTO de una B.D.


Pasos para crear un plan de mantenimiento :
Navegue por el rbol del ADMINISTRADOR de SQL server
hasta ubicar la Base de Datos seleccionada, con el botn
izquierdo del mouse oprima y elija TODAS LAS TAREAS,
posteriormente PLAN DE MANTENIMIENTO.
Se desplegar un asistente para planes de mantenimiento de
Base de Datos.

PLAN DE MANTENIMIENTO de una B.D.


Pasos para crear un plan de mantenimiento :
Seleccionar la(s) Bases de Datos, para la cual desea crear el
plan de mantenimiento (pueden ser todas las B.D, las del
sistema, o solo una).
La siguiente pantalla se refiere a la organizacin de ndices y
optimizacin del espacio en memoria. Se deshace del espacio no
utilizado. Permite establecer una fecha y hora en que ocurrirn
las tareas de optimizacin

PLAN DE MANTENIMIENTO de una B.D.


Pasos para crear un plan de mantenimiento :
Comprobar la integridad de la Base de Datos :
Incluir ndices, comprueba la consistencia de los ndices.
Intenta reparar problemas menores, tratar de reparar los
problemas que encuentre al ejecutar la comprobacin de la
consistencia.
Realizar comprobaciones antes de crear copias de
seguridad.

PLAN DE MANTENIMIENTO de una B.D.


Pasos para crear un plan de mantenimiento :
Por ltimo se puede solicitar que se genere un informe con el
desarrollo del plan de mantenimiento , indicando cualquier error
que haya ocurrido.

Vous aimerez peut-être aussi