SQL Flashcards

1
Q

Definir la estructura de SQL

A

SQL esta divido en 3 partes:

(1) Lenguaje de manipulacion de datos: brinda instrucciones que permiten hacer consultas a la base de datos, y sentencias CRUD para manipularlas

(2) Lenguaje de definicion de datos: brinda instrucciones para definir esquemas de bases de datos, como por ejemplo crear tablas

(3) Lenguaje de control de datos: contiene instrucciones que permite manipular los permisos sobre las bases de datos y sus objetos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Definir Select

A

SELECT select_list
[ FROM table_source ]
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Diferencia entre HAVING y GROUP BY en SQL

A

La cláusula GROUP BY especifica una consulta sumaria. En lugar de producir una fila de resultados por cada fila de datos de la base de datos, una consulta sumaria agrupa todas las filas similares y luego produce una fila sumaria de resultados para cada grupo. BUEN EJEMPLO: https://www.programiz.com/sql/group-by

La cláusula HAVING trabaja muy similarmente a la cláusula WHERE, y se utiliza para considerar sólo aquellos grupos que satisfagan la condición dada en la cláusula HAVING. La clausula WHERE no puede ser utilizada con funciones agregadas (COUNT, AVG, etc), pero HAVING si.

SELECT Student, AVG(score) AS average FROM Marks GROUP BY Student
HAVING average > 70

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Definir otros operadores DML SQL

A
  • UNION: (debe ser union-compatible)
    query UNION [ ALL ] query
  • INTERSECT: (debe ser union-comptaible)
    query INTERSECT query
  • EXCEPT: (debe ser union compatible)
    query EXCEPT query
  • INSERT: (el select opcional de values debe ser union compatible con dest)
    INSERT INTO table [ (field1[, field2[ ,… ]]) ] VALUES [.(value1 [, value2 [,…]]) ]

Si se quiere insertar mas de un registro, se hace con un SELECT:

INSERT INTO table [ (field1[, field2[ ,… ]]) SELECT (…)

  • UPDATE:
    UPDATE table SET field1 = value1 [, field2 = value2 [,…]] [WHERE cond]

El ultimo WHERE funciona para seleccionar que registros se deben actualizar

  • DELETE:
    DELETE FROM table [ WHERE cond ]
  • JOIN:
    table1 [ NATURAL ] { { LEFT | RIGHT | FULL } OUTER | INNER } JOIN table2 [ ON cond ] [ USING (col1 [, col2 [,…]]) ]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Definir operador CREATE TABLE

A

CREATE TABLE table
(field type [size] [NOT NULL] [index1]
[,fieldN typeN [size] [NOT NULL] [indexN] [,…]]
[, ligaduraIntegridad1 [,…]]
[, ligaduraIntegridadN [,…]])

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Explicar ligadura de integridad

A

Es una clausula CONSTRAINT que define una restriccion a crear. Puede ser:

  • PRIMARY KEY
  • UNIQUE
  • CHECK
  • FOREIGN KEY (integridad referencial)
    etc
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Definir clausula constraint para indice unico

A

CONSTRAINT name
{ PRIMARY KEY | UNIQUE | NOT NULL | REFERENCES extern_table [(extern_field)]}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Definir clausula CONSTRAINT para indice multiple

A

COSNTRAINT name
{
PRIMARY KEY (key1 [, key2 [,…]])
| NOT NULL (notnull1 [, notnull2 [,…]])
| CHECK cond
| FOREIGN KEY (ref1 [, ref2 [,…]]) REFERENCES ext_table [ (field1 [, field2 [,…]]) ] [ ON DELETE action ] [ ON UPDATE action]
}

UNIQUE (uniq1 [, uniq2 [,…]])

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Definir ALTER TABLE

A

ALTER TABLE table {
ADD
{ COLUMN field type [(size)] [NOT NULL]} | constraintClause }
|DROP
{ { COLUMN field | CONSTRAINT constraint } }
}

DROP { COLUMN field | CONSTRAINT clause }

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Definir clausula DROP

A

DROP { TABLE table | VIEW view | INDEX index ON table }

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Definir tipos de indices (en CONSTRAINT)

A
  • PRIMARY KEY: genera un indice primario para el campo o los campos especificados. Debe ser UNICOS Y NO NULOS, y cada table puede contener una sola tabla primeria.
  • UNIQUE: Genera un indice de clabe unica, de esta forma se generan las clabes secundarias o candidatas
  • CHECK: Es para especificar una condicion que deben cumplir los datos de una table
  • FOREIGN KEY: genera un indice externo, tomando como valor del indice los campos contenidos en otras tables
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Explicar las opciones posibles de la clausula ON DELETE/ON UPDATE en integridad referencial

A

Ejemplo: https://stackoverflow.com/questions/6720050/foreign-key-constraints-when-to-use-on-update-and-on-delete

CASCADE: Al borrar o actualizar un registro en la tabla padre y automáticamente borra o actualiza los registros coincidentes en la tabla hija.

SET NULL/SET DEFAULT: Al borrar o actualizar un registro en la tabla padre y establece en NULL la o las columnas de clave foránea en la tabla hija. Esto solamente es válido si las columnas de clave foránea no han sido definidas como NOT NULL.

RESTRICT/NO ACTION: Rechaza la operación de eliminación o actualización en la tabla padre. NO ACTION y RESTRICT son similares en tanto omiten la cláusula ON DELETE u ON UPDATE.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Explicar la creacion de dominos en SQL

A

CREATE DOMAIN name [ AS ] dataType
[ DEFAULT defaultValue ]
[ NOT NULL ]
[ CHECK cond ]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Explicar inidices en SQL

A

Un indice esta basado en una o mas columnas de la tabla, y su funcion es order el contenida de las columnas especificadas y mejorar el acceso a la informacion contenida, haciendolo mas eficiente y rapido.

IMPORTANTE: conforme los registros se anexan, cambian o eliminan, el sistema de administracion de base de datos actualiza automaticamente el indice para reflejar los cambios

CREATE [ UNIQUE ] INDEX indice ON table (field1 [ASC|DEC] [, field2 [ASC|DESC] [,…]])
[ WITH { PRIMARY |DISALLOW NULL |IGNORE NULL } ]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Definir vistas. Ejemplificar

A

Son relaciones que no forman parte del modelo logico de la base de datos que son visibles a los usuarios como tables virtuales.

CREATE VIEW name AS query

CREATE VIEW [Brazil Customers] AS
SELECT CustomerName, ContactName
FROM Customers
WHERE Country = ‘Brazil’;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Definir asserts en SQL

A

Es un predicado que define una condicion
que la base de datos debe cumplir siempre.

CREATE ASSERTION name CHECK condition

17
Q

Definir triggers en SQL

A

Un trigger es una orden que ejecuta el DB,S automaticamente ante alguna modificacion en la base de datos

En MySQL:

CREATE TRIGGER name {
BEFORE { INSERT ON | UPDATE ON | DELETE ON }
| AFTER { INSERT ON | UPDATE ON | DELETE ON } } table { FOR EACH ROW action}