Está en la página 1de 30

Base de Datos I

¿Qué es SQL Server?

¿Qué es SQL Server?

SQL Server es un manejador de base de datos relacionales (RDBMS), bajo la


arquitectura Cliente/Servidor, utiliza el Transact-SQL para enviar peticiones
entre el cliente y SQL.

Arquitectura Cliente/Servidor

SQL Server utiliza la arquitectura Cliente/Servidor para dividir la carga de


trabajo entre dos tareas que corren unas en el servidor y otras en el cliente:
• El cliente es el responsable de la lógica del modelo de negocios y de la
presentación de los datos a los usuarios. El cliente típicamente corre en
una o más computadoras clientes.
• SQL Server administra la base de datos y permite la disponibilidad de los
nuevos recursos del servidor, tales como memoria, recursos red,
operaciones en disco; para responder a múltiples peticiones.

Ana Linda Pineda Mendez 1


Base de Datos I

Plataformas que soporta SQL Server

Plataformas

SQL Server corre en los sistemas operativos mostrados en la figura. Puede


utilizar alguno o todos los sistemas operativos y ejecutar aplicaciones.

Plataforma Server Software Cliente OS


Windows 9x Sí, corre como una aplicación Sí
Windows NT Workstation Sí, corre como un servidor Sí
Windows NT Sí, corre como un servidor Sí
Windows NT enterprise ed. Sí, corre como un servidor Sí
Windows 3.x Sí
MS-DOS Sí
Third Party Sí- Unix, Macintosh
Internet browsers Sí

El servidor solo aplica para la versión 7.0

Ana Linda Pineda Mendez 2


Base de Datos I

Elementos de Transact-SQL

• Data Control Languaje


• Data Definition Languaje
• Data Manipulation Languaje
• Additional Languaje Elements

Transact-SQL

SQL Server utiliza Transact-SQL, una versión del SQL, con Transact-SQL,
puede acceder datos y consultar, actualizar y administrar sistemas de bases de
datos relacionales.

DDL

Nos permite definir la estructura de una base de datos definiendo tablas, índices
y vistas.

Algunos comandos soportados por el DDL son los siguientes:

Creación de tablas

Sintaxis:

CREATE TABLE <nombre_tabla>


( <definición_columna>[, <definición_columna>...]
[, <definición_llave_primaria>]
[, <definición_atributo_extranjero>
[, <definición_atributo _extranjero>...]
]
);

Explicación:
<definición_columna> -> nombre_columna tipo [NOT NULL]
<definición_llave_primaria> ->PRIMARY KEY <nombres_columnas>
<definición_atributo_extranjero> -> FOREIGN KEY <nombre_columna>
REFERENCES <nombre_tabla>

Ejemplo:

Ana Linda Pineda Mendez 3


Base de Datos I

CREATE TABLE s CREATE TABLE sp


( (
s# CHAR(5) NOT NULL, s# CHAR(5) NOT NULL,
snombre CHAR(20) NOT NULL, p# CHAR(5) NOT NULL,
status INTEGER, cant INTEGER,
ciudad CHAR(15), PRIMARY KEY (s#, p#),
PRIMARY KEY (s#) FOREIGN KEY (s#)
REFERENCES s,
); FOREIGN KEY (p#) REFERENCES p
);

Tipos de datos:

Tipo de dato Descripción


VARCHAR (size) Carácter de longitud variable
CHAR (size) Carácter de longitud fija
NUMERIC (p,s) Datos numéricos
DATETIME Valores tipo fecha y hora
TEXT Dato tipo carácter longitud variable hasta 2 Gb
IMAGE Dato binario con una longitud máxima hasta 2,147,483,467
bytes

Alterar una tabla

Alterar una tabla: Agrega una columna o elimina una existente

Sintaxis:
Agregar columna -> ALTER TABLE <nombre_ tabla> ADD <nombre_columna>
<tipo>;
Eliminar columna-> ALTER TABLE …. DROP ….. . . . .

Nota: si la tabla ya contiene registros, esta nueva columna será inicializada con
NULL, en los registros ya existentes.

Ejemplo:
ALTER TABLE s ADD telefono CHAR(15);

Borrar una tabla

Sintaxis:
DROP TABLE <nombre_tabla>

Ejemplo:
DROP TABLE sp

Nota: Se borran los datos e índices asociados con ella.

Ana Linda Pineda Mendez 4


Base de Datos I

DML

Nos permite realizar consultas ya dar mantenimiento a la base de datos (altas,


bajas y cambios) En realidad es en el DML donde SQL tiene su poderío.

La operación básica de consulta en SQL, es el operador SELECT, el cual tiene


la siguiente estructura básica.

Sintaxis:

SELECT <columna1[,columna2,…]
FROM <tabla1>[, tabla2,…]
[WHERE <condición>]

Ejemplo:
1. Obtenga los datos de todos los proveedores
SELECT *
FROM s

2. Obtenga números de proveedores con status mayor de 20 y que vivan en


parís.
SELECT s#
FROM s
WHERE (ciudad= ‘París’) AND (status>20)

Escribiendo sentencias
básicas de SQL

Ana Linda Pineda Mendez 5


Base de Datos I

Objetivos

• Al terminar esta lección, deberá ser


capaz de hacer lo siguiente:

--- Listar las capacidades de la instrucción SELECT de SQL.


--- Ejecutar una sentencia básica de SELECT

Ana Linda Pineda Mendez 6


Base de Datos I

Capacidades de la instrucción SELECT

Selección Proyección

Tabla 1 Tabla 2
Join

Tabla 1 Tabla 2

Capacidades de la instrucción SELECT

Una instrucción SELECT recupera información de la base de datos. Utilizando


esta instrucción puede realizar:

• Selección: puede utilizar esta capacidad de SQL para seleccionar


renglones de la tabla que cumplan alguna condición.
• Proyección: puede utilizar esta capacidad de SQL para seleccionar
columnas de la tabla, puede indicar tantas columnas tenga la tabla que
desee.
• Join: puede utilizar esta capacidad para “reunir” datos almacenados en
diferentes tablas, creando una liga mediante un atributo que comparten
en ambas tablas (PK,FK).

Ana Linda Pineda Mendez 7


Base de Datos I

Una instrucción SELECT básica

SELECT [DISTINCT] {*, column [alias],…}.


FROM table;

---SELECT identifica que columnas


--- FROM identifica cuales tablas

Una instrucción SELECT básica

En su forma simple, una instrucción SELECT debe incluir lo siguiente:

• Una cláusula SELECT, la cual especifica las columnas a ser mostradas


• Una cláusula FORM, la cual indica las tablas donde se tomaran los
valores de las columnas especificadas en las cláusulas SELECT.

Sintaxis:

SELECT se indica una lista de una o más columnas.


DISTINCT elimina renglones duplicados.
* muestra todas las columnas.
column selecciona la columna indicada.
alias etiqueta la columna con un nombre diferente del atributo.
FROM especifica la tabla que contiene las columnas.

Ana Linda Pineda Mendez 8


Base de Datos I

Seleccionando todas las columnas

SELECT *
FROM dept;

deptno dname loc


------------------ ------------------ -----------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

Seleccionando todas las columnas

Puede seleccionar todas las columnas de una tabla, utilice un asterisco (*).
En el ejemplo, la tabla DEPT contiene tres columnas: DEPTNO, DNAME Y
LOC.

También puede listar todas las columnas de la tabla indicando los nombres de
estas en la cláusula SELECT. Por ejemplo:

SELECT deptno, dname, loc


FROM dept;

Ana Linda Pineda Mendez 9


Base de Datos I

Seleccionando Columnas Especificas

SELECT deptno, loc


FROM dept;

deptno loc
-------------- --------------
10 NEW YORK
20 DALLAS
30 CHICAGO
40 BOSTON

Seleccionando Columnas Especificas

Puede seleccionar ciertas columnas de la tabla indicando los nombres de estas


en la cláusula SELECT separadas por comas. El ejemplo muestra todos los
números de departamento y localidades de la tabla DEPT.

Especifique las columnas en el orden en el que desea parezcan en la consulta.


Por ejemplo, para desplegar la localización antes del número de departamento:

Ana Linda Pineda Mendez 10


Base de Datos I

SELECT loc, deptno


FROM dept;

loc deptno
--------- -----------
NEW YORK 10
DALLAS 20
CHICAGO 30
BOSTON 40

Expresiones Aritméticas

Cree expresiones con datos NUMERIC Y DATE


utilizando operadores aritméticos.

Operador Descripción
+ Add
- Substract
* Multiply
/ Divide

Expresiones Aritméticas

Puede modificar la forma en que es mostrada la información de las columnas,


ejecutando cálculos. Esto es posible utilizando expresiones aritméticas. Una
Expresión Aritmética debe contener nombres de columnas, valores numéricos,
constantes y operadores aritméticos.

Operadores Aritméticos

Aquí se muestran los operadores aritméticos disponibles en SQL. Puede


utilizarlos en cualquier cláusula de SQL excepto en la cláusula FROM.

Ana Linda Pineda Mendez 11


Base de Datos I

Utilizando Operadores Aritméticos

SELECT ename, sal, sal+300


FROM emp;

ename sal
------------ ------------ ------------
KING 5000 5300
BLAKE 2850 3150
CLARK 2450 2750
JONES 2975 3275
MARTIN 1250 1550
ALLEN 1600 1900

(14 row(s) affected)

Utilizando Operadores Aritméticos

El ejemplo muestra el uso del operador suma para ejecutar un cálculo,


Aumentando el salario en $300 para todos los empleados.

Note que la columna del resultado calculando no es una nueva columna en la


tabla EMP, es sólo para consultarla.

Ana Linda Pineda Mendez 12


Base de Datos I

Precedencia de los Operadores

* / + -

--- Multiplicación y división tiene la mayor prioridad


sobre los otros operadores.
--- Los operadores con igual prioridad son evaluados
De izquierda a derecha.
--- Los parámetros son utilizados para forzar la
evaluación de prioridad y hacer más clara la expresión.

Precedencia de los Operadores

Si una expresión aritmética contiene más de un operador, la multiplicación y


división son evaluadas primero. Si los operadores de una expresión aritmética
tienen la misma prioridad la evaluación se efectúa de izquierda a derecha.

Puede utilizar paréntesis para forzar la evaluación de los operadores con menor
prioridad.

Ana Linda Pineda Mendez 13


Base de Datos I

Precedencia de los Operadores

SELECT ename , sal, 12*sal+100


FROM emp;

ename sal
------------- --------------
KING 5000 60100
BLAKE 2850 34300
CLARK 2450 29500
JONES 2975 35800
MARTIN 1250 15100
ALLEN 1600 19300

(14 row(s) affected)

Precedencia de los Operadores

El ejemplo muestra el nombre, salario y una compensación anual de todos los


empleados. Se calcula esta compensación como una multiplicación del salario
mensual por 12, y agregándole un bono de $100. Note que la multiplicación se
evalúa primero.

Ana Linda Pineda Mendez 14


Base de Datos I

Nota: Puede agregar paréntesis en la expresión para mejor claridad,


(12*sal)+100, sin afectar el resultado de consulta.

Utilizando Paréntesis

SELECT ename , sal, 12*(sal+100)


FROM emp;

ename sal
------------- --------------
KING 5000 61200
BLAKE 2850 35400
CLARK 2450 30600
JONES 2975 36900
MARTIN 1250 16200

(14 row(s) affected)

Utilizando Paréntesis

Ana Linda Pineda Mendez 15


Base de Datos I

Puede modificar las reglas de evaluación utilizando paréntesis para indicar el


orden en que se evaluaran los operadores.

El ejemplo muestra el nombre, salario y una compensación anual para los


empleados. La compensación se calcula como el salario mensual más un bono
mensual, multiplicado por 12. Debido a que los paréntesis tienen mayor
prioridad sobre la multiplicación.

Definiendo el Valor Null

--- Null es un valor que es inaccesible, desconocido o inaplicable.


--- Un null no es lo mismo que cero o un espacio en blanco.

SELECT ename , job, comm


FROM emp;

ename job comm


------------- ----------- ----------
KING PRESIDENT
BLAKE MANAGER

TURNER SALESMAN 0

(14 row(s) affected)

Ana Linda Pineda Mendez 16


Base de Datos I

Definiendo el Valor Null

El valor nulo es la ausencia de valor en un campo o intersección de renglón


columna; un valor nulo no es lo mismo que cero o espacios en blanco. El cero
es un número y los espacios en blanco son caracteres.

Las columnas de cualquier tipo pueden contener valores nulos, a menos que
dichas columnas hayan sido definidas como NOT NULL o llaves primarias
(PRIMARY KEY) cuando se crea la columna.

La columna COMM de la tabla EMP, puede notar que solo aquellos que son
SALESMAN (vendedores) pueden tener una comision. Turner, que es un
vendedor no gana comision alguna, pero esta columna tiene cero y no un valor
nulo.

Valores Null en Expresiones Aritméticas

Las Expresiones Aritméticas contienen un valor null


se evalúan como null.
SELECT ename , 12*sal+comm
FROM emp;

ename
----------- ------------

KING NULL

Valores Nulos (continuación)

Ana Linda Pineda Mendez 17


Base de Datos I

Si el contenido de una columna es nulo dentro de una expresión aritmética, el


resultado es NULL. Por ejemplo, si intenta dividir entre cero, obtendrá un error.
Sin embargo si divide un número entre un valor nulo, el resultado es un nulo.

Definir un ALIAS para las columnas

--- Renombra el encabezado de las columnas


--- Es útil cuando se utilizan cálculos
--- Va inmediatamente después del nombre de la columna; la
palabra AS es opcional y se coloca entre el nombre de la
columna y el alias.
--- Se requieren apóstrofos si el alias contiene espacios en blanco.

Cuando muestra el resultado de una consulta, SQL normalmente utiliza el nombre de la


columna desplegada como encabezado. En muchos casos, este nombre de encabezado
pudiera no ser descriptivo o ser difícil de entender.
Puede cambiar el encabezado de una columna utilizando un alias.

Ana Linda Pineda Mendez 18


Base de Datos I

Especifique el alias después de la columna en la cláusula SELECT utilizando un espacio


como separador. Si el alias contiene espacios o caracteres especiales (tales como $ o %),
o contiene combinación de mayúsculas y minúsculas, debe encerrarlo entre apóstrofes
(‘’) o comillas dobles (“ ”).

SELECT ename , As name, sal salary


FROM emp;

name salary
------------ -------------

SELECT ename “Name”,


Sal*12 “Annual Salary”
FROM emp;

Name Annual Salary


------------ -------------------

Ana Linda Pineda Mendez 19


Base de Datos I

Utilizando Alias

El primer ejemplo muestra el nombre y el salario de todos los empleados. Note


que la palabra AS es opcional y debe ser usada antes del alias de la columna.
El encabezado de la columna será el mismo que se especifique en el alias.

El segundo ejemplo muestra el nombre y el salario de todos los empleados,


como Annual Salary contiene espacios debe ir encerrado entre apóstrofos (‘’) o
comillas dobles (“ “).

Nota: utilice AS para darle más claridad a la consulta.

Operador de Concatenación

--- Concatena columnas o cadenas de caracteres a otra columna.


--- Se utiliza el operador +
--- Crea una columna resultante que es una cadena de caracteres.

Operador de Concatenación

Puede encadenar columnas con otras columnas, expresiones aritméticas o


valores constantes utilizando el operador de concatenación (+). Todas las

Ana Linda Pineda Mendez 20


Base de Datos I

columnas utilizadas con el operador (+) producen un solo resultado en la misma


columna.

Ana Linda Pineda Mendez 21


Base de Datos I

Utilizando el Operador de Concatenación

SELECT ename + job AS “Employees”


FROM emp;

Employees
------------------------
KINGPRESIDENT
BLAKEMANAGER
CLARKMANAGER
JONESMANAGER
MARTINSALESMAN
ALLENSALESMAN

(14 row(s) affected)

Operador de Concatenación

En el ejemplo, las columnas ENAME y JOB son concatenadas, y se le asigna el


alias Employees.

La palabra AS antes de alias hace que la sentencia SELECT sea más fácil de
leer.

Ana Linda Pineda Mendez 22


Base de Datos I

Usando Literales
SELECT ename + ‘ ‘ + ‘is a’ + ‘ ‘ + job
AS “Employee Details”
FROM emp;

Employee Details
-----------------------------------------
KING is a PRESIDENT
BLAKE is a MANAGER
CLARK is a MANAGER
JONES is a MANAGER
MARTIN is a SALESMAN
ALLEN is a SALESMAN

(14 row(s) affected)

Usando Literales

El ejemplo muestra los nombres y puestos de los empleados en forma más


legible.
En el siguiente ejemplo, el nombre y el salario de cada empleado son
desplegados dando más significado al resultado.

SELECT ename + ‘ : ‘ + ‘ 1 ‘ + ‘Month salary ‘ Monthly, sal


FROM emp;

Monthly sal
--------------------------- -------------------
KING: 1 Month salary 5000
BLAKE: 1 Month salary 2850
CLARK: 1 Month salary 2450
JONES: 1 Month salary 2975
MARTIN: 1 Month salary 1250
ALLEN: 1 Month salary 1600
TURNER: 1 Month salary 1500

(14 row(s) selected)

Ana Linda Pineda Mendez 23


Base de Datos I

Renglones duplicados

El resultado por default de una consulta, son todos los


renglones incluyendo aquellos que estén repetidos.
SELECT deptno
FROM emp;

deptno
-------------
10
30
10
20

(14 row(s) affected)

Renglones duplicados

A menos de que indique lo contrario, el resultado de una consulta mostrará


todos los renglones aunque se repitan. El ejemplo anterior muestra el numero
de departamento de los empleados. Puede notar que existen departamentos
repetidos.

Ana Linda Pineda Mendez 24


Base de Datos I

Eliminando renglones duplicados

SELECT DISTINCT deptno


FROM emp;

deptno
-------------
10
20
30

Eliminando renglones repetidos

Para eliminar renglones duplicados, incluye la palabra DISTINCT en la cláusula


SELECT inmediatamente después de la palabra SELECT. En el ejemplo
anterior, la tabla EMP tiene catorce registros pero solo existen tres
departamentos diferentes.
Puede utilizar DISTINCT antes de varias columnas. El calificador DISTINCT
afecta a todas las columnas seleccionadas, y el resultado es una combinación
diferente de las columnas.

SELECT DISTINCT deptno, job


FROM emp;

deptno job
------------- -----------------
10 CLERK
10 MANAGER
10 PRESIDENT
20 ANALYST

(19 row(s) affected)

Ana Linda Pineda Mendez 25


Base de Datos I

Prácticas

--- Seleccionar todos los renglones en diferentes tablas


--- Ejecutar cálculos aritméticos
--- Otorgue nombres a las columnas

Ana Linda Pineda Mendez 26


Base de Datos I

Práctica 1

1. ¿La siguiente instrucción SELECT se ejecutara satisfactoriamente?


Falso/Verdadero

SELECT ename, job, sal, Salary


FROM emp;

2. ¿Existen errores en la siguiente instrucción?


Falso/Verdadero

SELECT empno, ename


salary x 12 ANNUAL SALARY
FROM emp;

3. Muestre todos los datos de la tabla DEPT.

DEPTNO DNAME LOC


-------------- ------------- --------------
10 ACCOUTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

5. Cree una consulta para mostrar las columnas ename, job, hiredate
y el número de empleado, con el número de empleado en la
primer columna, guarde su consulta SQL con el nombre de s02q05.sql.

Ana Linda Pineda Mendez 27


Base de Datos I

Práctica 1 (continua)

6. Ejecute la consulta s02q05.sql.

EMP ENAME JOB HIREDATE


---------- ------------- --------------- ----------------------
7839 KING PRESIDENT 17-NOV-81
7698 BLAKE MANAGER 01-MAY-81
7782 CLARK MANAGER 09-JUN-81
7566 JONES MANAGER 02-APR-81
7654 MARTIN SALESMAN 28-SEP-81
7499 ALLEN SALESMAN 20-FEB-81
7844 TURNER SALESMAN 08-SEP-81
7900 JAMES CLERK 03-DEC-81
7521 WARD SALESMAN 22-FEB-81
7902 FORD ANALYST 03-DEC-81
7369 SMITH CLERK 17-DEC-80
7788 SCOTT ANALYST 09-DEC-82
7876 ADAMS CLERK 12-JAN-83
7934 MILLER CLERK 23-JAN-82
(14 row(s) affected)

Ana Linda Pineda Mendez 28


Base de Datos I

Práctica 1 (continua)

7. Cree una consulta que muestre los puestos sin repetirse de la tabla EMP.

JOB
-----------------
ANALYST
CLERK
MANAGER
PRESIDENT
SALESMAN

8. Cargue el script s02q05.sql. Cambie el nombre de las columnas como


se muestra en el ejemplo, guarde el nuevo script como s02q08.sql:

Emp # Employee Job Hire Date


---------- ------------- --------------- ----------------------
7839 KING PRESIDENT 17-NOV-81
7698 BLAKE MANAGER 01-MAY-81
7782 CLARK MANAGER 09-JUN-81
7566 JONES MANAGER 02-APR-81
7654 MARTIN SALESMAN 28-SEP-81
7499 ALLEN SALESMAN 20-FEB-81
7844 TURNER SALESMAN 08-SEP-81
7900 JAMES CLERK 03-DEC-81
7521 WARD SALESMAN 22-FEB-81
7902 FORD ANALYST 03-DEC-81
7369 SMITH CLERK 17-DEC-80
7788 SCOTT ANALYST 09-DEC-82
7876 ADAMS CLERK 12-JAN-83
7934 MILLER CLERK 23-JAN-82
(14 row(s) affected)

Ana Linda Pineda Mendez 29


Base de Datos I

Práctica 1 (continua)

9. Muestre el nombre concatenado al puesto (job) separado por una coma y


un espacio, y nombre de la columna “Employee and title”

Employee and title


------------------------
KING, PRESIDENT
BLAKE , MANAGER
CLARK , MANAGER
JONES, MANAGER
MARTIN, SALESMAN
ALLEN, SALESMAN
TURNER, SALESMAN
JAMES, CLERK
WARD, SALESMAN
FORD, ANALYST
SMITH, CLERK
SCOTT, ANALYST
ADAMS, CLERK
MILLER, CLERK
(14 row(s) affected)

Ana Linda Pineda Mendez 30

También podría gustarte