Está en la página 1de 29

Introducción a TSQL

Unidad 1

Autor
Isabel Ponce
Introducción

• SQL – (Structured Query Language)


Lenguaje de Consulta Estructurado.

• SQL es un lenguaje para Bases de


Datos Relacionales de Alto Nivel,
Orientado a conjuntos, no proce-dural.

• SQL es un lenguaje simple y fácil de


aprender. Diseñado y creado para
manejar grupos de datos.

• Desarrollado a finales de los 70’s en los


Laboratorios de Investigación San José
de IBM como parte de un sistema
experimental llamado Proyecto System /
R.

• Es el lenguaje de Base de datos


predominante usado en sistemas
relacionales por su portabilidad y
conectividad en ambientes hetero-
géneos
Introducción cont.

• SQL se utiliza para controlar todas las


funciones que un RDBMS proporciona
a sus usuarios, incluyendo:

– Definición de Datos (DDL – Data Definition


Language)
– Recuperación de Datos (Select)
– Manipulación de Datos (DML – Data
Manipulation Language)
– Control de Acceso
– Compartir Archivos
– Integridad de Datos

• Existe un estándar oficial SQL


ANSI/ISO y el estándar SAA (System
Application Architecture) de IBM.

• Todas las sentencias SQL tienen la


misma forma básica
Verbo [Cláusulas] Nombre_de_tabla
[Cláusulas]
Unidad 1

Contenido

• SQL- Server
• El Administrador Corporativo
• El Analizador de Consultas
• Conexión a la base de datos
• Transact SQL
• Reglas de Sintaxis
• La base de datos PUBS
• Consultas simples (Select)
• Select con todas las columnas de una
tabla (Cláusula From)
• Selección de columnas de una tabla
• Concatenar dos columnas
• Consultas con formato de salida
• Alias de columnas
SQL – Server

• SQL - Server es un Servidor de Base


de Datos Relacionales muy simple
basado en SQL y orientado al
ambiente de Procesamiento de
Transacciones.

• Basado en la Arquitectura Cliente /


Servidor que divide el procesamiento
en:

Front–end.- Componente Cliente y


Back-end.- Componente servidor

siendo SQL – Server el servidor de


Base de Datos.

• Un Servidor de SQL Server puede


tener muchas bases de datos
corriendo al mismo tiempo.
Administrador Corporativo

El Administrador corporativo de SQL Server


facilita la configuración y administración en el
ámbito empresarial de SQL Server y sus
objetos.
Proporciona una herramienta eficaz de diseño,
capacidad de envío de alertas al administrador
y una interfaz integrada de administración de
duplicación.
Administrador Corporativo

• También puede utilizar el Administrador


corporativo de SQL Server para:

– Administrar inicios de sesión, permisos y


usuarios.
– Administrar dispositivos de copia de
seguridad y bases de datos.
– Crear una copia de seguridad de bases
de datos y registros de transacciones.
– Administrar tablas, vistas, procedimien-
tos almacenados, disparadores, índices,
reglas, valores predeterminados y tipos
de datos definidos por el usuario.
– Crear índices, diagramas de base de
datos y planes de mantenimiento de
bases de datos.
– Importar y exportar datos.
– Transformar datos.
– Realizar diversas tareas de administra-
ción Web.
El Analizador de Consultas

El analizador de consultas es la
herramienta interactiva para ejecutar
todas las consultas en SQL.

Una consulta (Query) como su nombre lo


indica, es una pregunta que se le hace a
la Base de datos.
Conexión a la base de
Datos
• Para conectarse a la Base de Datos
Ingresar al Administrador Corpo-rativo, y
bajo el Grupo de SQL Server seleccionar
el grupo asignado, por último seleccionar
Bases de Datos.

• SQL Server solicitará un usuario y una


clave para poder ingresar

• Para ingresar al analizador de consultas


desde el Administrador corporativo,
seleccionar Herramien-tas de la Barra de
Herramientas y dentro de las opciones
Analizador de Consultar de SQL Server.

• En SQL Server 2005 ingresar a Microsoft


SQL Server Management Studio,
seleccionar la BD y seleccionar nueva
consulta.
Transact SQL

• Transact –SQL es el lenguaje usado


para comunicarse entre los clientes y
el Servidor SQL.

• Es un superconjunto de los dos


estándares primarios de SQL
mencionados anteriormente.

• El DDL permite al usuario crear,


borrar y modificar objetos de la base
de datos

• Los objetos que soporta SQL Server


son:
– Bases de Datos - Defaults
– Tablas - Checks
– Índices - Disparadores
– Vistas - Cursores
– Procedimientos Almacenados
– Funciones, Tipos de Datos y Mensajes
de Error Definidos por el usuario
Transact SQL

• Las primeras sentencias SQL

use <base_de_datos>

• Se usa para indicar a SQL Server


qué base de datos se usará para
trabajar.

• Ejemplo: use PUBS

• Para saber la base de datos que se


está accesando usar:

select db_name()
Reglas básicas de
sintaxis

• Las palabras reservadas de SQL (use,


select, from, where, etc.) son
insensibles a mayúsculas y
minúsculas.

• select es lo mismo que SELECT y


SeLeCt, etc.

• Sin embargo dependiendo del DBMS,


las columnas si pueden ser sensibles a
las mayúsculas.

select title_id from titles


no es necesariamente lo mismo que

SELECT TITLE_ID FROM TITLES

• Los espacios no importan (para la


mayor parte).
Reglas cont.

select title_id…
es lo mismo que
select title_id…
• Sin embargo, se deben separar las
palabras. No se puede hacer los
siguiente:
selecttitle_id…
• Esto dará un error de sintaxis, porque
SQL Server no podrá encontrar las
palabras reservadas de SQL.
• Los retornos de carro son ignorados
select title_id from titles
• es lo mismo que

select title_id
from titles
Reglas cont.

• Los espacios y retornos de carro solo


hacen más legible la lectura de
instrucciones SQL.

• El formato general usado por la


mayoría de la gente es colocar las
diferentes cláusulas de las
instrucciones en diferentes líneas
Base de Datos PUBS

• PUBS es una base de datos para


una distribuidora de libros ficticia que
vende libros a revendedores y será
la base de datos que se usará para
la mayoría de los ejemplos
empleados en el curso
Base de Datos PUBS

sales stores
stor_id char(4) stor_id char(4)
ord_num varchar(20) stor_name varchar(40)
stor_id = stor_id
ord_date datetime stor_address varchar(40)
stor_id = stor_id city varchar(20)
qty smallint
payterms varchar(12) state char(2)
title_id varchar(6) zip char(5)

title_id = title_id

titleauthor titles publishers discounts


au_id varchar(11) title_id varchar(6) pub_id char(4) discounttype varchar(40)
title_id varchar(6) title_id = title_id title varchar(80) pub_name varchar(40) stor_id char(4)
au_ord tinyint type char(12) pub_id = pub_id city varchar(20) lowqty smallint
royaltyper int pub_id char(4) state char(2) highqty smallint
price money country varchar(30) discount decimal
advance money
au_id = au_id
royalty int
ytd_sales int pub_id = pub_id
notes varchar(200)
authors pubdate datetime employee pub_info
au_id varchar(11) emp_id char(9) pub_id char(4)
au_lname varchar(40) fname varchar(20) pub_id = pub_id logo image
au_fname varchar(20) title_id = title_id minit char pr_info text
phone char(12) lname varchar(30)
address varchar(40) job_id smallint
roysched
city varchar(20) job_lvl tinyint
title_id varchar(6)
state char(2) pub_id char(4)
lorange int
zip char(5) hire_date datetime
hirange int
contract bit
royalty int authors_tmp
job_id = job_id
au_lname varchar(40)
au_fname varchar(20)
phone char(12)
jobs
address varchar(40)
job_id smallint city varchar(20)
job_desc varchar(50) state char(2)
min_lvl tinyint zip char(5)
max_lvl tinyint
Select

La Instrucción SELECT extrae renglones de la base de datos.


SELECT [ALL | DISTINCT] <select_list> INTO [<nueva_nombre_tabla>]
[FROM <nombre_tabla> [, <nombre_tabla2> [..., <nombre_tabla16>]]
[WHERE <cláusula>] [GROUP BY <cláusula>] [HAVING <cláusula>]
[ORDER BY <cláusula>] [COMPUTE <cláusula>] [FOR BROWSE]

donde <nombre_tabla> | <nombre_vista> =


[[<base_de_datos>.]<propietario>.]{<nombre_tabla>. | <nombre_vista>.}
<joined_table> =
{<nombre_tabla> CROSS JOIN <nombre_tabla> | <nombre_tabla>
{INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER]} JOIN
<nombre_tabla> ON <condiciones_búsqueda>} <optimizadores>

Puede incluir una o mas de las siguientes cláusulas, separadas con un


espacio:
[INDEX = {<nombre_índice> | <id_índice>}]
[NOLOCK] [HOLDLOCK] [UPDLOCK] [TABLOCK] [PAGLOCK]
[TABLOCKX] [FASTFIRSTROW]
WHERE <cláusula> =
WHERE <condiciones_búsqueda>
GROUP BY <cláusula> =
GROUP BY [ALL] <expresión_agrupada> [[, <expresión_agrupada>]...]
[WITH {CUBE | ROLLUP}]
HAVING <cláusula> =
HAVING <condiciones_búsqueda>
ORDER BY <cláusula> =
ORDER BY {{<nombre_tabla>. | <nombre_vista>.}<nombre_columna> |
<número_de_lista_del_select> | <expresión>} [ASC | DESC] [...
{{<nombre_tabla16>. | <nombre_vista16>.}<nombre_columna> |
<número_de_lista_del_select> | <expresión>} [ASC | DESC]]
COMPUTE <cláusula> =
COMPUTE <renglón_grupo>(<nombre_columna>) [,
<renglón_grupo>(<nombre_columna>)...]
[BY <nombre_columna> [, <nombre_columna>]...]
Consultas simples
(Select)

• Una sentencia select es usada para


extraer datos de la base de datos.

• Como se puede ver en la sintaxis


anterior, una sentencia select puede
ser muy complicada.

• Dependiendo del tipo de sentencia


SQL que se defina, la mayor parte es
opcional.

• Con el fin de obtener información de


la base de datos, se debe indicar lo
que se desea. Lo primero que
haremos será obtener información
simple de la base de datos.
Consultas simples
(Select)

• select ‘Hola Mundo!.'


­­­­­­­­­­­­­­
Mary had a little lamb.
(1 row affected)

• Si se desea retornar una frase


específica de la base de datos se
puede usar la instrucción anterior.

• Un asterisco (*) es usado para


designar todas las columnas en una
tabla.

Select *

• También necesitamos indicar de cual


tabla se obtendrá la información
(from).

select * from authors


Select

• Las secciones principales en cada sentencia


SQL son llamadas cláusulas. Las tres
cláusulas en que nos enfocaremos son
select, from y where.

select * from authors


au_id       au_lname             au_fname             phone ...    
­­­­­­­­­­­ ­­­­­­­­­­­­­­­­­­­­ ­­­­­­­­­­­­­­­­­­­­ ­­­­­­­­­­­­ 
172­32­1176 White                Johnson              408 
496­7223...
213­46­8915 Green                Marjorie             415 
986­7020...
238­95­7766 Carson               Cheryl               415 
548­7723...
267­41­2394 O'Leary              Michael              408 
286­2428...
274­80­9391 Straight             Dean                 415 
834­2919...
341­22­1782 Smith                Meander              913 
843­0462...
409­56­7008 Bennet               Abraham              415 
658­9932...
427­17­2319 Dull                 Ann                  415 
836­7128...
472­27­2349 Gringlesby           Burt                 707 
938­6445...
486­29­1786 Locksley             Charlene             415 
585­4620...
527­72­3246 Greene               Morningstar          615 
297­2723...
648­92­1872 Blotchet­Halls       Reginald             503 
745­6402...
672­71­3249 Yokomoto             Akiko                415 
935­4228...
712­45­1867 del Castillo         Innes                615 
996­8275...
722­51­5454 DeFrance             Michel               219 
547­9982...
724­08­9931 Stringer             Dirk                 415 
843­2991...
Recuperación de columnas

• También podemos limitar las columnas


retornadas especificándolas en vez de
usar *.

select au_lname, au_fname from authors


au_lname                                 au_fname          
   
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ 
­­­­­­­­­­­­­­­­­­­­ 
White                                    Johnson           
   
Green                                    Marjorie          
   
Carson                                   Cheryl            
   
O'Leary                                  Michael           
   
Straight                                 Dean              
   
Smith                                    Meander           
   
Bennet                                   Abraham           
   
Dull                                     Ann               
   
Gringlesby                               Burt              
   
Locksley                                 Charlene          
   
Greene                                   Morningstar       
   
Blotchet­Halls                           Reginald          
   
Yokomoto                                 Akiko             
   
del Castillo                             Innes             
   
DeFrance                                 Michel            
Recuperación de Columnas

• Cuando se especifican columnas, no es


necesario hacerlo en el orden en que
aparecen en la tabla.

select au_fname, au_lname from authors

au_fname             au_lname                
                 
­­­­­­­­­­­­­­­­­­­­ 
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ 
Johnson           White                      
              
Marjorie           Green                      
              
Cheryl              Carson             
                      
Michael            O'Leary                   
               
Dean               Straight                   
              
Meander          Smith                       
             
Abraham          Bennet                      
             
Ann                Dull                       
              
Concatenación

• También se pueden combinar datos


juntos. Esto es llamado concatenación.
El símbolo (+) es el símbolo para la
concatenación.

• Si queremos desplegar el nombre y


apellido separados por un espacio:

select au_fname + ’ ‘ + au_lname


from authors
JohnsonWhite                                           
      
MarjorieGreen                                          
      
CherylCarson                                           
      
MichaelO'Leary                                         
      
DeanStraight                                           
      
MeanderSmith                                           
      
AbrahamBennet                                          
      
AnnDull                                                
      
BurtGringlesby                                         
      
CharleneLocksley                                       
      
MorningstarGreene                                      
      
Concatenación cont.

• La concatenación es usada para datos


de tipo string (caracteres). Si el
operador de concatenación (+) es
usado en datos numéricos, el dato es
simplemente agregado.

select title_id, price, advance from titles

title_id price                      advance                
    
­­­­­­­­ ­­­­­­­­­­­­­­­­­­­­­­­­­­ 
­­­­­­­­­­­­­­­­­­­­­­­­­­ 
BU1032   19.99                      5,000.00               
    
BU1111   11.95                      5,000.00               
    
BU2075   2.99                       10,125.00              
    
BU7832   19.99                      5,000.00               
    
MC2222   19.99                      0.00                   
    
...
(18 row(s) affected)

select title_id, price+advance from titles

title_id                            
­­­­­­­­ ­­­­­­­­­­­­­­­­­­­­­­­­­­ 
BU1032   5,019.99                   
BU1111   5,011.95                   
BU2075   10,127.99                  
Consultas con formato

• Combinando el primer select con el


select sobre authors obtendremos la
instrucción siguiente, así podemos
obtener salidas con formato de la
base de datos.

select au_fname + ’ ’ + au_lname, city


+ ’,’ + state + ’ ‘ + zip
from authors

­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ 
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ 
Johnson White                          Menlo Park,CA 
94025           
Marjorie Green                         Oakland,CA 
94618              
Cheryl Carson                          Berkeley,CA 
94705             
Michael O'Leary                        San Jose,CA 
95128             
Dean Straight                          Oakland,CA 
94609              
Meander Smith                          Lawrence,KS 
66044             
Abraham Bennet                         Berkeley,CA 
94705             
Ann Dull                               Palo Alto,CA 
94301            
Burt Gringlesby                        Covelo,CA 95428 
Alias de columnas

• El título para el resultado anterior no


es muy informativo, y no se desea
desplegar la fórmula.

• Podemos renombrar o asignar un


alias a una columna de dos formas
– Usar un espacio y luego el alias
– Especificar la palabra as y luego el alias

select au_fname + ’ ’ + au_lname, city


+ ’,’ + state + ’ ’ + zip Domicilio
from authors

select au_fname + ’ ‘ + au_lname, city


+ ’,’ + state + ’ ’ + zip as Domicilio
from authors
Alias

• Se pueden aplicar alias en dos


lugares de las entencias SQL.
– Select cláusula
– From cláusula

• Especificando un alias en la cláusula


select se pueden renombrar los
encabezados de las columnas en la
salida.

• Especificando un alias en la cláusula


from, podemos ahorrar tiempo de
tecleado y crear consultas
complejas.
Resumen

• SQL es un lenguaje de consulta


estructurado.
• Transact-SQL es la herramienta de
consulta de SQL-Server
• use <dbname> permite seleccionar
una base de datos para trabajar.
• Las palabras reservadas de SQL no
son sensibles a mayúsculas.
• Los espacios y retornos de carro son
necesarios sólo para separar las
palabras.
• El símbolo * permite seleccionar todas
las columnas de una tabla.
• El símbolo + sirve para concatenar
cadenas.
• Los alias pueden emplearse para
renombrar columnas, dar nombres de
columna significativos y renombrar
tablas.
Ejercicios

1. Salir de SQL Server y volver a ingresar


2. Mostrar en qué base de datos se está trabajando.
3. Indicar que se desea usar la base de datos PUBS
4. Seleccionar todos los autores
5. Seleccionar todas las editoriales
6. Seleccionar todos los libros
7. Mostrar el nombre y estado de todas las tiendas.
8. Listar los apellidos, nombres y fecha de contratación de
todos los empleados
9. Crear una query que genere la siguiente salida:
-------------------------------------------------------
Johnson White vive en Menlo Park,CA

Michael O'Leary vive en San Jose,CA

Dean Straight vive en Oakland,CA

.
.
(23 row(s) affected)
10. Crear una query que genere la siguiente salida:
Nombre
----------------------------------------------------
Johnson White
Marjorie Green
Michael O'Leary
. .
(23 row(s) affected)

También podría gustarte