ch3 español

35
3.1 U.L.E.A.M. – Chone Administración de Bases de Datos Ing. Jorge Iván Pincay Ponce, [email protected] Ver el esquema Atras Capítulo 3: SQL Capítulo 3: SQL Structura básica Operaciones con Conjuntos Funciones de Agregado Valores Null Subconsultas Anidadas Relaciones Derivadas Vistas Modificació n de la Base de Datos Union de Relaciones DDL, Data Definition Language

Upload: deberes26

Post on 08-Jul-2015

60 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Ch3  español

3.1

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Capítulo 3: SQLCapítulo 3: SQL

� Structura básica� Operaciones con Conjuntos� Funciones de Agregado� Valores Null� Subconsultas Anidadas� Relaciones Derivadas� Vistas� Modificació n de la Base de Datos � Union de Relaciones� DDL, Data Definition Language

Page 2: Ch3  español

3.2

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Agencia (AgenciaNombre, AgenciaCiudad)Cuenta (Cuenta-numero, AgenciaNombre, CuentaMonto)Depositor (ClienteNombre, CuentaNumero)Cliente (ClienteNombre, ClienteCalle, ClienteCiudad)Prestatario (ClienteNombre, PrestamoNumero)Prestamo (PrestamoNumero, AgenciaNombre, Monto)

Esquema usado en los EjemplosEsquema usado en los Ejemplos

Page 3: Ch3  español

3.3

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Estructura BásicaEstructura Básica

� SQL esta basado en un conjunto de operaciones relacionales.

� Una tipica consulta en SQL ha de tener la siguiente forma:select A1, A2, ..., An

from r1, r2, ..., rm

where P� A representa attributos

� r representa relaciones

� P es un condicionante

� El resultado de una consulta SQL es una relació n

Page 4: Ch3  español

3.4

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

La clausula SelectLa clausula Select

� Select lista los atributos deseados en una consulta

� Ejemplo: Encuentra los nombres de los clientes

select nombrefrom cliente

� NOTE: SQL no permite ‘-’ en los nombres, en ves de ese caracter puede usar “_”

� NOTE: SQL no es sensible a las mayúsculas y minúsculas, por lo que puede indistamente escribir en cualquiera de ellas.

� SQL permite registros duplicados en é l resultado de una consulta.

� Para forzar la eliminació n de registros o filas duplicadas teclee distinct despues de la palabra select.

� Encuentre todos los precios de videos de videos disponibles en el videocentro, pero sin que estos precios se vean repetidos

select distinct video_preciofrom video

Page 5: Ch3  español

3.5

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

La clausula Select (Cont.)La clausula Select (Cont.)

� Un asterisco en la clausula Select es un comodin que significa “todos los atributos”

select *from alquiler

� Select puede incluir expresiones aritméticas (+, –, ∗, /). Ejemplo

select prestamo_numero, prestamo_ciudad, monto*1000 from prestamo

Note como en el ejemplo anterior el valor monto es multiplicado por 100.

Page 6: Ch3  español

3.6

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Clausula WhereClausula Where

� Where especifica condiciones que deben cumplir los registros o filas a mostrar en los resultados.

� Ejemplo: Encontrar todos los numeros de prestamos realizados en la Agencia de la ciudad de Manta cuyos montos sean mayor a $1200

select prestamo_numerofrom prestamowhere agencia_nombre = ‘Manta’ and monto >1200

� Note como es posible utilizar los operadores ló gicos AND, OR, NOT.

� Como detalle considere tambien la posibilidad de incluir expresiones aritméticas en las condiciones del where.

� SQL incluye el operador de comparació n between (tiene significado “entre” en españ ol)

� Ejemplo: encuentra el numero de prestamos cuyos montos esten entre $90,000 y $100,000

select prestamo_numero from prestamo where monto between 90000 and 100000

Page 7: Ch3  español

3.7

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

La clausula fromLa clausula from� Lista las entidades que participan en la consulta; pero

un uso más avanzado es lo que se conoce como producto cartesiano….

� Encuentre el producto cartesiano de Prestatario por Prestamo

select ∗ from prestatario, prestamo

� Encuentra el nombre , numero de prestamos y monto del prestamo de todos los clientes que tienen un prestamo en la agencia Manta.

� select cliente-nombre, prestatario.prestamo-numero, monto from prestatario, prestamo where prestatario.prestamo-numero= prestamo.prestamo-numero and agencia-nombre = ‘Manta’

Page 8: Ch3  español

3.8

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

La operació n de renombres La operació n de renombres (atributos derivados)(atributos derivados)

� SQL permite renombrar relaciones y atributos usando la sentencia AS:

viejonombre as nuevonombre

� Encuentra el nombre, numero de prestamos, monto de prestamos de todos los clientes. Renombra la columna numero-prestamo como prestamo.id

select cliente-nombre, prestatario.numero-prestamo as prestamo-id, montofrom prestatario, prestamowhere prestatario.numero-prestamo = prestamo.numero-prestamo

Page 9: Ch3  español

3.9

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Operaciones con cadenasOperaciones con cadenas

� SQL incluye varios operadores para manejar cadenas como los siguientes (realmente son muchos pero se iran aprendiendo de a poco):

� porcentaje (%). el % permite hacer referencia a cualquier subcadena.

� subrayado (_). _ para hacer referencia a cualquier caracter.

� Encuentra el nombre de los clientes cuyo nombre de calle incluya la palabra “Main”.

select cliente-nombrefrom clientewhere cliente-calle like ‘%Main%’

� SQL soporta una variedad de operaciones de cadena como:

� concatenació n (using “||”)

� convertir de minusculas a mayusculas y viceversa

� encontrar tamañ os de cadenas, extraer subcadenas, etc.

Page 10: Ch3  español

3.10

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Ordenando registrosOrdenando registros

� Liste ordenadamente los nombres de los clientes que tienen un prestamo en la Agencia Manta. Dichos datos no han de estar repetidos (por ejemplo cuando un cliente tuviese dos creditos y no antepongo distinct sin duda que el aparecería dos veces en el resultado y eso en este ejemplo no es deseable )

select distinct cliente-nombrefrom prestatario, prestamowhere prestatrio.prestamo-numero = prestamo.prestamo-numero and agencia-nombre = ‘Manta’order by cliente-nombre

� La clausula desc es una variante para ordenar los datos de forma descendente. Si ella no se especifica se asume que usted uso asc que sirve para ordenar de forma ascendente.

� Ejemplo: order by cliente-nombre desc

Page 11: Ch3  español

3.11

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Operaciones con conjuntos, Operaciones con conjuntos, EjemplosEjemplos

� Las operaciones de conjuntos tales como union, intersect, and except operan de la misma forma en que les estudió en Teoría de conjuntos.

� Cada una de las operaciones anteriores de forma automática eliminan duplicados; Si se quisiesen los datos duplicados bastaría escribir union all, intersect all y except all.

� Encuentre todos los clientes que tienen un préstamo, una cuenta, o ambos :

(select cliente-nombre from depositor)union(select cliente-nombre from prestatario)

� Encuentre todos los clientes que tienen préstamo y cuenta.

(select cliente-nombre from depositor) intersect (select cliente-nombre from prestatario)

� Encuentre todos los clientes que tienen una cuenta pero ningún préstamo

(select cliente-nombre from depositor) except (select cliente-nombre from prestatario)

Page 12: Ch3  español

3.12

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Funciones de Agregado, EjemplosFunciones de Agregado, Ejemplos

� Estas funciones retornan un valor y operan sobre un conjuntos de valores de un campo.

avg: valor mediomin: valor minimo max: valor maximosum: suma de valorescount: numero de valores

� Encuentre el valor medio del saldo de cuentas en la agencia ‘Manta’

select avg (cuenta-monto) from cuenta where Agencia-Nombre = ‘Manta’

� Encuentre el numero de clientes registrados

select count (*) from cliente

Page 13: Ch3  español

3.13

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Funciones de Agregado, Ejemplos– Funciones de Agregado, Ejemplos– Group ByGroup By

� Encuentra el número de depositores de cada agencia.

Select agencia-nombre, count (cliente-nombre)from depositor, cuentawhere depositor.cuenta-numero = cuenta.cuenta-numerogroup by agencia-nombre

� Nota: Los atributos en la cláusula Select que esten fuera de las funciones de agregado deben aparecer en la sentencia group by

Page 14: Ch3  español

3.14

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Funciones de Agregado, Ejemplos– Funciones de Agregado, Ejemplos– HAVINGHAVING

� Encuentra el nombre de las agencia donde la media de saldos de cuentas es mayor a $1200.

select Agencia-nombre, avg (cuenta-nomto)from cuentagroup by agencia-nombrehaving avg (cuenta-monto) > 1200

� Note: Las condiciones de having se aplican después de la formació n de grupos, en tanto que las condiciones del where son aplicadas antes de la formació n de los grupos

Page 15: Ch3  español

3.15

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Valores NullValores Null

� Es posible que para algunos registros se tenga valores null en algunos de sus atributos

� null significa un valor desconocido o que es un valor que no existe.

� El predicado is null puede ser usado para checar valores nulos.

� Ejemplo: Encuentra todos los numeros de prestamos que aparecen en la tabla prestamos con valores nulos en los montos.

select prestamo-numerofrom prestamowhere monto is null

� El resultado de cualquier expresió n aritmética que involucre null es tambien null

� Ejemplo: 5 + null retorna null

� Nota: algunas funciones de agregado simplemente ignoran los valores nulos

Page 16: Ch3  español

3.16

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Valores Null y operaciones ló gicasValores Null y operaciones ló gicas

� Cualquier comparació n con null retorna unknown (que tiene significado desconocido)

� Ejemplo 5 < null or null <> null or null = null

� Three-valued logic using the truth value unknown:

� OR: (unknown or true) = true, (unknown or false) = unknown (unknown or unknown) = unknown

� AND: (true and unknown) = unknown, (false and unknown) = false, (unknown and unknown) = unknown

� NOT: (not unknown) = unknown

Page 17: Ch3  español

3.17

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Subconsultas anidadas (Sentencia Subconsultas anidadas (Sentencia IN)IN)

� SQL provee mecanismos para realizar subconsultas

� Una subconsulta es un select-from-where que es especificado dentro de una subconsulta.

� Un uso común de las subconsultas es ejecutar consultas sobre subgrupos ló gicos de datos

� Ejemplo: Encuentre todos los clientes que tienen cuenta y préstamo en el banco

select distinct cliente-nombre from prestatario where cliente-nombre in (select cliente-nombre from depositor)

� Ejemplo de un caso supuesto: Encuentre todos los clientes que tienen un préstamo en el banco pero no tenga una cuenta en el banco

select distinct cliente-nombre from prestatario where cliente-nombre NOT in (select cliente-nombre from depositor)

Page 18: Ch3  español

3.18

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Subconsultas anidadas (Sentencia Subconsultas anidadas (Sentencia IN)IN)

� Encuentre todos los clientes que tienen una cuenta y un prestamo en la agencia Chone

select distinct cliente-nombre from prestatario, prestamo where prestatario.prestamo-numero = prestamo.prestamo-numero and Agencia-nombre = ‘Chone’

and (agencia-nombre, cliente-nombre) in

(select agencia-nombre, cliente-nombre from depositor, cuenta where depositor.cuenta-numero = cuenta.cuenta-numero)

� Note: Esta consulta puede ser escrita de una manera muy simple, por tanto el ejemplo es realmente ilustrativo

Page 19: Ch3  español

3.19

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Relaciones DerivadasRelaciones Derivadas

� Encuentre la media del saldo de cuentas de esas agencias donde la media del saldo de cuentas es mayor a $1200

select agencia-nombre, media-saldo

from (select agencia-nombre, avg (saldo) from cuenta group by Agencia-nombre)

as rel-derivada (Agencia-nombre, media-saldo)

where media-saldo > 1200

Note que no se necesita usar having, después de calcular temporalmente la vista rel-derivada en la clausula from, pues los atributos de la relació n derivada pueden ser usados directamente en la claúsula where.

Page 20: Ch3  español

3.22

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Modificando BD – Delete-sqlModificando BD – Delete-sql

� Borra todas las cuentas registradas en la agencia ‘FLAVIO ALFARO’ delete from cuenta

where agencia-nombre = ‘FLAVIO ALFARO’

� Borra todas las cuentas de todas las agencias localizadas en la ciudad de QUITO.

delete from CUENTAwhere agencia-nombre in (select agencia-nombre

from agencia where agencia-ciudad = ‘QUITO’)

delete from depositorwhere cuenta-numero in (select cuenta-numero

from agencia, cuenta where agencia-ciudad = ‘QUITO’ and agencia-nombre = cuenta.agencia-nombre)

Page 21: Ch3  español

3.23

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Modificando BD – Delete-sqlModificando BD – Delete-sql

� Borra todos los registros que esten por debajo de la media del saldo de cuentas del banco.

delete from cuenta where cuenta-monto< (select avg (cuenta-monto)

from cuenta)

� Problem: as we delete tuples from deposit, the average balance changes

� Solution used in SQL:

1. First, compute avg balance and find all tuples to delete

2. Next, delete all tuples found above (without recomputing avg or retesting the tuples)

Page 22: Ch3  español

3.24

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Modificando BD – Insert-sqlModificando BD – Insert-sql

� Agrega una nueva cuenta

insert into cuentavalues (‘C001’, ‘CHONE’,1200)

O LO QUE ES LO MISMO

insert into cuenta (agencia-nombre, cuenta-monto, cuenta-numero) values (‘CHONE’, 1200, ‘C001’)

� Agrega un nuevo registro a una cuenta pero con un saldo null

insert into cuenta values (‘C002’,‘MANTA’, null)

Page 23: Ch3  español

3.26

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Modificando BD – Insert-sqlModificando BD – Insert-sql

� Incrementa en un 6% todas las cuentas con montos sobre los $10000, todas las otras se deben icrementar en un 5%.

� Se necesita escribir dos sentencias updtes:

update cuentaset cuenta-monto = cuenta-monto ∗ 1.06where cuenta-monto > 10000

update cuentaset cuenta-monto = cuenta-monto ∗ 1.05where balance ≤ 10000

� El orden es importante, en la siguiente lámina vamos a usar la sentencia case

Page 24: Ch3  español

3.27

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Uso de Case-End para hacer Uso de Case-End para hacer Updates condicionalesUpdates condicionales

� Consultas como las anteriores donde se nos presenten casos del clasico if-else se pueden escribir así:

update cuentaset cuenta-monto

= case

when cuenta-monto <= 10000

then cuenta-monto*1.05

else cuenta-monto * 1.06

end

Page 25: Ch3  español

3.30

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Joined RelationsJoined Relations

� La operació n JOIN toma dos relaciones y devuelve otra relaciín.

� En suma esta operació n es utilizada como las tipicas subconsultas (consultas en FROM)

� La condicion del JOIN define que tuplas (esto es filas o registros) y por ende que atributos se presentaran en la relació n resultantes

� Join type – Esxsiten cuatro tipos de JOIN a saber:

Nota: Aunque existen cuatro tipos de JOIN en la práctica se suele usar INNER JOIN y pocas veces los otros…

Ejemplo;Join Types

inner joinleft outer joinright outer joinfull outer join

Join Conditions

naturalon <predicate>using (A1, A2, ..., An)

Page 26: Ch3  español

3.31

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Joined Relations – Datasets for Joined Relations – Datasets for ExamplesExamples

� Relation loan

� Relation borrower

customer-name loan-number

Jones

Smith

Hayes

L-170

L-230

L-155

amount

3000

4000

1700

branch-name

Downtown

Redwood

Perryridge

loan-number

L-170

L-230

L-260

� Note: borrower information missing for L-260 and loan information missing for L-155

Page 27: Ch3  español

3.32

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Joined Relations – Examples Joined Relations – Examples

� loan inner join borrower onloan.loan-number = borrower.loan-number

� loan left outer join borrower onloan.loan-number = borrower.loan-number

branch-name amount

Downtown

Redwood

3000

4000

customer-name loan-number

Jones

Smith

L-170

L-230

loan-number

L-170

L-230

branch-name amount

Downtown

Redwood

Perryridge

3000

4000

1700

customer-name loan-number

Jones

Smith

null

L-170

L-230

null

loan-number

L-170

L-230

L-260

Page 28: Ch3  español

3.33

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Joined Relations – ExamplesJoined Relations – Examples

� loan natural inner join borrower

� loan natural right outer join borrower

branch-name amount

Downtown

Redwood

3000

4000

customer-name

Jones

Smith

loan-number

L-170

L-230

branch-name amount

Downtown

Redwood

null

3000

4000

null

customer-name

Jones

Smith

Hayes

loan-number

L-170

L-230

L-155

Page 29: Ch3  español

3.34

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Joined Relations – ExamplesJoined Relations – Examples

� loan full outer join borrower using (loan-number)

� Find all customers who have either an account or a loan (but not both) at the bank.

branch-name amount

Downtown

Redwood

Perryridge

null

3000

4000

1700

null

customer-name

Jones

Smith

null

Hayes

loan-number

L-170

L-230

L-260

L-155

select customer-namefrom (depositor natural full outer join borrower)where account-number is null or loan-number is null

Page 30: Ch3  español

3.35

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Data Definition Language (DDL)Data Definition Language (DDL)

� The schema for each relation.

� The domain of values associated with each attribute.

� Integrity constraints

� The set of indices to be maintained for each relations.

� Security and authorization information for each relation.

� The physical storage structure of each relation on disk.

Allows the specification of not only a set of relations but also information about each relation, including:

Page 31: Ch3  español

3.36

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Domain Types in SQLDomain Types in SQL

� char(n). Fixed length character string, with user-specified length n.� varchar(n). Variable length character strings, with user-specified

maximum length n.� int. Integer (a finite subset of the integers that is machine-dependent).� smallint. Small integer (a machine-dependent subset of the integer

domain type).� numeric(p,d). Fixed point number, with user-specified precision of p

digits, with n digits to the right of decimal point. � real, double precision. Floating point and double-precision floating

point numbers, with machine-dependent precision.� float(n). Floating point number, with user-specified precision of at least n

digits.� Null values are allowed in all the domain types. Declaring an attribute to be

not null prohibits null values for that attribute.� create domain construct in SQL-92 creates user-defined domain types

create domain person-name char(20) not null

Page 32: Ch3  español

3.37

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Date/Time Types in SQL (Cont.)Date/Time Types in SQL (Cont.)

� date. Dates, containing a (4 digit) year, month and date� E.g. date ‘2001-7-27’

� time. Time of day, in hours, minutes and seconds.� E.g. time ’09:00:30’ time ’09:00:30.75’

� timestamp: date plus time of day� E.g. timestamp ‘2001-7-27 09:00:30.75’

� Interval: period of time� E.g. Interval ‘1’ day

� Subtracting a date/time/timestamp value from another gives an interval value

� Interval values can be added to date/time/timestamp values

� Can extract values of individual fields from date/time/timestamp� E.g. extract (year from r.starttime)

� Can cast string types to date/time/timestamp � E.g. cast <string-valued-expression> as date

Page 33: Ch3  español

3.38

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Example QueryExample Query

� Specify the query in SQL and declare a cursor for it

EXEC SQL

declare c cursor for select customer-name, customer-cityfrom depositor, customer, accountwhere depositor.customer-name = customer.customer-name

and depositor account-number = account.account-numberand account.balance > :amount

END-EXEC

From within a host language, find the names and cities of customers with more than the variable amount dollars in some account.

Page 34: Ch3  español

3.39

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Updates Through CursorsUpdates Through Cursors

� Can update tuples fetched by cursor by declaring that the cursor is for update

declare c cursor for select * from account where branch-name = ‘Perryridge’ for update

� To update tuple at the current location of cursor

update account set balance = balance + 100 where current of c

Page 35: Ch3  español

3.40

U.L.E.A.M. – Chone Administración de Bases de DatosIng. Jorge Iván Pincay Ponce, [email protected]

Ver el esquema Atras

Other SQL FeaturesOther SQL Features

� SQL sessions

� client connects to an SQL server, establishing a session

� executes a series of statements

� disconnects the session

� can commit or rollback the work carried out in the session

� An SQL environment contains several components, including a user identifier, and a schema, which identifies which of several schemas a session is using.