Actividad - 2.5 - Comandos - SQL

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 23

BASE DE DATOS

UNIDAD 2/ Tarea 2.5: Comandos SQL

Docente: Fredy Santander Baños


Alumna: Lesly Andrea Torres Chávez
Matricula:191111677
Grupo: BMED_06_01
Fecha de Entrega: 31 de octubre de 2020
Actividad 2.5. Realizar una investigación complementaria sobres
los comandos que están oncluidos en cada uno de los
sublenguajes abordados
 Investigar cuál es su sintaxis en MySQL y agregar un ejemplo
de aplicación en cada uno de los comandos encontrados
 Es importante que estén ubicados conforme al su lenguaje
que pertenece
 Realzar una comparación de estos mismos comandos con
el SGBD PostgreSQL

Lenguaje de definición de datos (DDL)


 Alter
Sintaxis de ALTER TABLE 694 ALTER {DATABASE | SCHEMA} [db_name] alter_specification [,
alter_specification] ... alter_specification: [DEFAULT] CHARACTER SET charset_name |
[DEFAULT] COLLATE collation_name

ALTER DATABASE le permite cambiar las características globales de una base de


datos. Estas

características se almacenan en el fichero db.opt en el directorio de la base de


datos. Para usar ALTER

DATABASE, necesita el permiso ALTER en la base de datos.

La cláusula CHARACTER SET cambia el conjunto de caracteres por defecto de


la base de datos. La

cláusula COLLATE cambia la colación por defecto de la base de datos. El


conjunto de caracteres y la

colación se discuten en Capítulo 10, Soporte de conjuntos de caracteres.

En MySQL 5.0, el nombre de base de datos puede omitirse. El comando se aplica


a la base de datos por

defecto. ALTER SCHEMA puede usarse desde MySQL 5.0.2.

EJEMPLO

ALTER TABLE ejemplo ENGINE = InnoDB


Cambiar el tipo de motor (engine) de la tabla 'ejemplo'
ALTER TABLE personas RENAME usuarios
Cambia el nomnbre de la tabla 'personas' a 'usuarios'
ALTER TABLE ejemplo AUTO_INCREMENT=1000
En la tabla 'ejemplo' cualquiera que sea la columna que tenga 'AUTO_INCREMENT'
en sus propiedades (solo puede haber una), los nuevos registros comenzarán a
partir de '1000' o cualquier número indicado, no es posible utilizar un valor ya
existente.
ALTER TABLE ejemplo CONVERT TO CHARACTER SET latin1
La tabla 'ejemplo' ahora almacenará sus valores en base al juego de caracteres
'latin1' (iso-8859-1).
OPERACIONES CON DROP
ALTER TABLE ejemplo DROP COLUMN nombre
Elimina la columna 'nombre' de la tabla 'ejemplo'.
ALTER TABLE ejemplo DROP COLUMN nombre, DROP COLUMN paterno
Elimina más de una columna.
ALTER TABLE ejemplo DROP COLUMN nombre, DROP COLUMN paterno
Elimina más de una columna.
ALTER TABLE ejemplo DROP INDEX usuario
Elimina el índice 'usuario'.
ALTER TABLE ejemplo DROP PRIMARY KEY
Elimina la llave primaria de la tabla 'ejemplo'
ALTER TABLE ejemplo DROP FOREIGN KEY id_usuario
Elimina de la tabala 'ejemplo' la llave foranea 'id_usuario'.
 Drop
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... [RESTRICT | CASCADE]

DROP TABLE borra una o más tablas. Debe tener el permiso DROP para cada tabla.
Todos los datos de la definición de tabla son borrados, así que tenga cuidado con
este comando! Use IF EXISTS para evitar un error para tablas que no existan. Un NOTE
se genera para cada tabla no existente cuando se usa IF EXISTS. Consulte Sección
13.5.4.22, “Sintaxis de SHOW WARNINGS”. RESTRICT y CASCADE se permiten para
hacer la portabilidad más fácil. De momento, no hacen nada. Nota: DROP TABLE
hace un commit automáticamente con la transacción activa,a no ser que use la
palabra TEMPORARY. La palabra TEMPORARY tiene el siguiente efecto: • El
comando sólo borra tablas TEMPORARY. • El comando no acaba una transacción
en marcha. • No se chequean derechos de acceso. (Una tabla TEMPORARY es
visible sólo para el cliente que la ha creado, así que no es necesario.) Usar
TEMPORARY es una buena forma de asegurar que no borra accidentalmente una
tabla no TEMPORAR

Ejemplo 1: En la tabla "publisher" borramos la columna "address";


Lenguaje de Manipulacion (DML)
 Insert
Sintaxis Veamos la sintaxis básica del comando SQL INSERT que se muestra a
continuación.

INSERT INTO `table_name` (column_1, column_2, ...) VALUES (value_1, value_2,


1
...);

AQUÍ

 INSERT INTO table_name es el comando que le dice al servidor MySQL que


agregue una nueva fila en una tabla llamada table_name.

 (columna_1, columna_2, …) especifica las columnas que se actualizarán en


la nueva fila

 VALUES (value_1, value_2, …) especifica los valores que se agregarán a la


nueva fila

Al suministrar los valores de datos que se insertarán en la nueva tabla, se debe


considerar lo siguiente al tratar con diferentes tipos de datos.
 Tipos de datos de cadena : todos los valores de cadena deben estar entre
comillas simples.

 Tipos de datos numéricos : todos los valores numéricos se deben suministrar


directamente sin encerrarlos en comillas simples o dobles.

 Tipos de datos de fecha : encierre los valores de fecha en comillas simples


en el formato ‘AAAA-MM-DD’.

Supongamos que tenemos la siguiente lista de nuevos miembros de la biblioteca


que deben agregarse a la base de datos.

EJEMPLO

Permite ‘INSERTAR datos uno por uno. Comenzaremos con Leonard Hofstadter.
Trataremos el número de contacto como un tipo de datos numéricos y no
incluiremos el número entre comillas simples.

INSERT INTO `members` (` full_names`, `gender`,` physical_address`,


`contact_number`)

VALUES ('Leonard Hofstadter', 'Male', 'Woodcrest', 0845738767);

INSERT INTO `members` (` full_names`, `gender`,` physical_address`,


`contact_number`)

VALUES ('Leonard Hofstadter', 'Male', 'Woodcrest', 0845738767);

Al ejecutar la secuencia de comandos anterior, se omite el 0 del número de


contacto de Leonard. Esto se debe a que el valor se tratará como un valor
numérico y el cero (0) al principio se eliminará porque no es significativo.

Para evitar tales problemas, el valor debe estar entre comillas simples como se
muestra a continuación:

INSERT INTO `members` (` full_names`, `gender`,` physical_address`,


`contact_number`)

VALUES ('Sheldon Cooper', 'Male', 'Woodcrest', '0976736763');

1
2

INSERT INTO `members` (` full_names`, `gender`,` physical_address`,


`contact_number`)

VALUES ('Sheldon Cooper', 'Male', 'Woodcrest', '0976736763');

En el caso anterior, cero (0) no se descartará

Cambiar el orden de las columnas no tiene efecto en la consulta INSERT siempre


que los valores correctos se hayan correlacionado con las columnas correctas.

 Update

La sintaxis básica de la claúsula UPDATE es la siguiente:

UPDATE table_name

SET column_name = value

WHERE condition

EJEMPLO Primero vamos a ver que datos tenemos en la tabla "publisher2";


Actualizamos las columnas "phone" y "name" cuando el "idpublisher=4" con la
siguente instrucción;

UPDATE eli.publisher2 SET phone='111 111', name='OLD STORE' WHERE idpublisher=4;

Volvemos a mirar los datos de la tabla "publisher2" y vemos que los datos han sido
actualizados correctamente;

 Delete
Sintaxis:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]

FROM table_name[.*] [, table_name[.*] ...]

USING table-references

[WHERE where_definition]

EMEPLO:

jemplo de SQL DELETE para borrar una fila de la tabla personas

nombre apellido1 apellido2


ANTONIO PEREZ GOMEZ
LUIS LOPEZ PEREZ
ANTONIO GARCIA RODRIGUEZ
PEDRO RUIZ GONZALEZ

Si queremos borrar a la persona LUIS LOPEZ PEREZ, podemos ejecutar el comando:

DELETE FROM personas


WHERE nombre = 'LUIS'
AND apellido1 = 'LOPEZ'
AND apellido2 = 'PEREZ'

La tabla 'personas' resultante será:

nombre apellido1 apellido2


ANTONIO PEREZ GOMEZ
ANTONIO GARCIA RODRIGUEZ
PEDRO RUIZ GONZALEZ

 Select
Sintaxis
En su forma más simple, la sintaxis para la instrucción SELECT en
MySQL es:

SELECT campos
FROM tablas
[WHERE condiciones];

Lenguaje de Definicion de Datos (DDL)


 Create
Sintaxis:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
[(] LIKE old_tbl_name [)];

create_definition:
column_definition
| [CONSTRAINT [symbol]] PRIMARY KEY [index_type]
(index_col_name,...)
| KEY [index_name] [index_type]
(index_col_name,...)
| INDEX [index_name] [index_type]
(index_col_name,...)
| [CONSTRAINT [symbol]] UNIQUE [INDEX]
[index_name] [index_type]
(index_col_name,...)
| [FULLTEXT|SPATIAL] [INDEX] [index_name]
(index_col_name,...)
| [CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name,...)
[reference_definition]
| CHECK (expr)

column_definition:
col_name type [NOT NULL | NULL] [DEFAULT
default_value]
[AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY]
KEY]
[COMMENT 'string'] [reference_definition]
type:
TINYINT[(length)] [UNSIGNED] [ZEROFILL]
| SMALLINT[(length)] [UNSIGNED] [ZEROFILL]
| MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL]
| INT[(length)] [UNSIGNED] [ZEROFILL]
| INTEGER[(length)] [UNSIGNED] [ZEROFILL]
| BIGINT[(length)] [UNSIGNED] [ZEROFILL]
| REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]
| DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]
| FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]
| DECIMAL(length,decimals) [UNSIGNED] [ZEROFILL]
| NUMERIC(length,decimals) [UNSIGNED] [ZEROFILL]
| DATE
| TIME
| TIMESTAMP
| DATETIME
| CHAR(length) [BINARY | ASCII | UNICODE]
| VARCHAR(length) [BINARY]
| TINYBLOB
| BLOB
| MEDIUMBLOB
| LONGBLOB
| TINYTEXT [BINARY]
| TEXT [BINARY]
| MEDIUMTEXT [BINARY]
| LONGTEXT [BINARY]
| ENUM(value1,value2,value3,...)
| SET(value1,value2,value3,...)
| spatial_type

index_col_name:
col_name [(length)] [ASC | DESC]

reference_definition:
REFERENCES tbl_name [(index_col_name,...)]
[MATCH FULL | MATCH PARTIAL | MATCH
SIMPLE]
[ON DELETE reference_option]
[ON UPDATE reference_option]

reference_option:
RESTRICT | CASCADE | SET NULL | NO ACTION

table_options: table_option [table_option] ...

table_option:
{ENGINE|TYPE} = engine_name
| AUTO_INCREMENT = value
| AVG_ROW_LENGTH = value
| [DEFAULT] CHARACTER SET charset_name [COLLATE
collation_name]
| CHECKSUM = {0 | 1}
| COMMENT = 'string'
| MAX_ROWS = value
| MIN_ROWS = value
| PACK_KEYS = {0 | 1 | DEFAULT}
| PASSWORD = 'string'
| DELAY_KEY_WRITE = {0 | 1}
| ROW_FORMAT =
{DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}
| RAID_TYPE = { 1 | STRIPED | RAID0 }
RAID_CHUNKS = value
RAID_CHUNKSIZE = value
| UNION = (tbl_name[,tbl_name]...)
| INSERT_METHOD = { NO | FIRST | LAST }
| DATA DIRECTORY = 'absolute path to directory'
| INDEX DIRECTORY = 'absolute path to directory'

select_statement:
[IGNORE | REPLACE] [AS] SELECT ... (Some legal select
statement)
 Alter
Sintaxis
ALTER {DATABASE | SCHEMA} [db_name] alter_specification [, alter_specification] ...
alter_specification: [DEFAULT] CHARACTER SET charset_name | [DEFAULT] COLLATE
collation_name

EJEMPLO
sintaxis básica utilizada para agregar una columna a una tabla ya existente se
muestra a continuación
 table_name es el comando que le dice al servidor MySQL que
modifique la tabla llamada table_name.
 column_name data_type es el comando que le dice al servidor
MySQL que agregue una nueva columna llamada ‘column_name’ con el tipo de
datos’ data_type ‘.

Supongamos que Myflix ha introducido facturación y pagos en línea. Con ese fin, se
nos ha pedido que agreguemos un campo para el número de tarjeta de crédito en
nuestra tabla de miembros. Podemos usar el comando ALTER para hacer
eso. Primero veamos la estructura de la tabla de miembros antes de hacer cualquier
enmienda. El script que se muestra a continuación nos ayuda a hacer eso.

1 MOSTRAR COLUMNAS DE `miembros`;


Campo Tipo Nulo Llave Defecto Extra

número de
socio int (11) NO PRI NULO autoincremento

nombres varchar
completos (350) NO NULO

varchar
género (6) SÍ NULO

fecha de
nacimiento fecha SÍ NULO

dirección varchar
física (255) SÍ NULO

direccion varchar
postal (255) SÍ NULO

número de varchar
contacto (75) SÍ NULO
correo varchar
electrónico (255) SÍ NULO

Podemos usar el script que se muestra a continuación para agregar un nuevo campo
a la tabla de miembros.

1 ALTER TABLE `members` ADD COLUMN` credit_card_number` VARCHAR (25);

Ejecutar el script anterior en MySQL contra Myflixdb agrega una nueva columna
llamada número de tarjeta de crédito a la tabla de miembros con VARCHAR como el
tipo de datos. Ejecutar el script show columns nos da los siguientes resultados.

 Drop
Sintaxis
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

DROP DATABASE borrar todas las tablas en la base de datos y


borrar la base de datos. Sea muy cuidadoso con este comando!
Para usarDROP DATABASE, necesita el permiso DROP en la base
de datos. IF EXISTS se usa para evitar un error si la base de datos
no existe. DROP SCHEMA puede usarse desde MySQL
. Si usa DROP DATABASE en una base de datos enlazada
simbólicamente, tanto el enlace como la base de datos se
borran. DROP DATABASE retorna el número de tablas que se
eliminan. Se corresponde con el número de ficheros .frm
borrados. El comando DROP DATABASE borrar del directorio de
base de datos los ficheros y directorios que MySQL puede crear
durante operaciones normales:
• Todos los ficheros con estas extensiones:
.BAK .DAT .HSH
.MRG .MYD .ISD
.MYI .db .frm
EJEMPLO
Este ejemplo borra la tabla ACTOR_FANS:
DROP TABLE ACTOR_FANS
Este ejemplo hace lo mismo que el anterior excepto que en este
caso, si la tabla ACTOR_FANS no existe, no se genera ningún error:

DROP TABLE IF EXISTS ACTOR_FANS

El lenguaje de Control de Datos (DCL)


 Grant
GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ...
ON \
TO user [IDENTIFIED BY [PASSWORD] 'password']
[, user [IDENTIFIED BY [PASSWORD] 'password']] ...
[REQUIRE
NONE |
[\]
[CIPHER 'cipher' [AND]]
[ISSUER 'issuer' [AND]]
[SUBJECT 'subject']]
[WITH [GRANT OPTION | MAX_QUERIES_PER_HOUR count |
MAX_UPDATES_PER_HOUR count |
MAX_CONNECTIONS_PER_HOUR count |
MAX_USER_CONNECTIONS count]]
REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ...
ON \
FROM user [, user] ...
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...
Las sentencias GRANT y REVOKE permiten a los administradores
del sistema crear cuentas de usuario MySQL y conceder y revocar
derechos de esas cuentas. GRANT y REVOKE están disponibles a
partir de MySQL 3.22.11. Para versiones anteriores de MySQL, estas
sentencias no hacen nada.

La información sobre cuentas MySQL se almacena en las tablas


de la base de datos mysql. Esta base de datos y el control de
acceso se describen en detalle en la sección 5 "Database
Administration", que se puede consultar para detalles
adicionales.

Los privilegios pueden ser concedidos en varios niveles:


 Revoke
GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ...
ON \
TO user [IDENTIFIED BY [PASSWORD] 'password']
[, user [IDENTIFIED BY [PASSWORD] 'password']] ...
[REQUIRE
NONE |
[\]
[CIPHER 'cipher' [AND]]
[ISSUER 'issuer' [AND]]
[SUBJECT 'subject']]
[WITH [GRANT OPTION | MAX_QUERIES_PER_HOUR count |
MAX_UPDATES_PER_HOUR count |
MAX_CONNECTIONS_PER_HOUR count |
MAX_USER_CONNECTIONS count]]
REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ...
ON \
FROM user [, user] ...
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...
Las sentencias GRANT y REVOKE permiten a los administradores
del sistema crear cuentas de usuario MySQL y conceder y
revocar derechos de esas cuentas. GRANT y REVOKE están
disponibles a partir de MySQL 3.22.11. Para versiones anteriores
de MySQL, estas sentencias no hacen nada.

La información sobre cuentas MySQL se almacena en las


tablas de la base de datos mysql. Esta base de datos y el
control de acceso se describen en detalle en la sección 5
"Database Administration", que se puede consultar para
detalles adicionales.
Lenguaje de Control de Transacciones
 Transaction
^
Por defecto, MySQL se ejecuta en modo autocommit. Esto
significa que tan pronto como se ejecuta una sentencia se
actualiza (modifica) la tabla, MySQL almacenará la
actualización en disco.
Si se están usando tablas de transacción segura (como InnoDB
o BDB), se puede poner MySQL en modo no-autocommit con
el comando siguiente:

SET AUTOCOMMIT=0
Después de desconectar el modo autocommit asignando
cero a la variable AUTOCOMMIT, se debe usar COMMIT para
almecenar los cambios en disco o ROLLBACK si se quieren
ignorar los cambios hechos desde el principio de la
transacción.

Si se quiere desactivar el modo autocommit para una serire de


sentencias, se puede usar una sentencia START TRANSACTION:

START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summmary=@A WHERE type=1;
COMMIT;
Se puede usar BEGIN y BEGIN WORK en lugar de START
TRANSACTION para iniciar una transacción. START
TRANSACTION fue añadido en MySQL 4.0.11; es la sintaxis SQL-
99 y es el modo recomendado para empezar una transacción.
BEGIN y BEGIN WORK están disponibles desde MySQL 3.23.17 y
3.23.19, respectivamente.

Si no se están usando tablas de transacción segura, cualquier


cambio será almacenado inmediatamente,
independientemente del estado del modo autocommit.
Si se usa una sentencia ROLLBACK después de actualizar una
tabla no transaccional, se obtendrá un error
(ER_WARNING_NOT_COMPLETE_ROLLBACK) como un aviso.
Todas las tablas de transacción segura serán restauradas, pero
cualquier tabla de transacción no segura no cambiará.

Si se usar START TRANSACTION o AUTOCOMMIT=0, se debe usar


el diario binario MySQL para copias de seguridad en lugar del
antigui diario de actualización. Las transacciones se
almacenan en el diario binario de una vez, después de
COMMIT, para asegurar que las transacciones que se han
rebobinado no se almacenen.

Se puede modificar el nivel de aislamiento para transacciones


con ISOLATION LEVEL.
 Commit
Por defecto, MySQL se ejecuta en modo autocommit. Esto
significa que tan pronto como se ejecuta una sentencia se
actualiza (modifica) la tabla, MySQL almacenará la actualización
en disco.

Si se están usando tablas de transacción segura (como InnoDB o


BDB), se puede poner MySQL en modo no-autocommit con el
comando siguiente:

SET AUTOCOMMIT=0
Después de desconectar el modo autocommit asignando cero a
la variable AUTOCOMMIT, se debe usar COMMIT para almecenar
los cambios en disco o ROLLBACK si se quieren ignorar los cambios
hechos desde el principio de la transacción.
Si se quiere desactivar el modo autocommit para una serire de
sentencias, se puede usar una sentencia START TRANSACTION:

START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summmary=@A WHERE type=1;
COMMIT;
Se puede usar BEGIN y BEGIN WORK en lugar de START
TRANSACTION para iniciar una transacción. START TRANSACTION
fue añadido en MySQL 4.0.11; es la sintaxis SQL-99 y es el modo
recomendado para empezar una transacción. BEGIN y BEGIN
WORK están disponibles desde MySQL 3.23.17 y 3.23.19,
respectivamente.

Si no se están usando tablas de transacción segura, cualquier


cambio será almacenado inmediatamente,
independientemente del estado del modo autocommit.

Si se usa una sentencia ROLLBACK después de actualizar una


tabla no transaccional, se obtendrá un error
(ER_WARNING_NOT_COMPLETE_ROLLBACK) como un aviso.
Todas las tablas de transacción segura serán restauradas, pero
cualquier tabla de transacción no segura no cambiará.

Si se usar START TRANSACTION o AUTOCOMMIT=0, se debe usar el


diario binario MySQL para copias de seguridad en lugar del
antigui diario de actualización. Las transacciones se almacenan
en el diario binario de una vez, después de COMMIT, para
asegurar que las transacciones que se han rebobinado no se
almacenen.

Se puede modificar el nivel de aislamiento para transacciones


con ISOLATION LEVEL.
 Rollback
Por defecto, MySQL se ejecuta en modo autocommit. Esto
significa que tan pronto como se ejecuta una sentencia se
actualiza (modifica) la tabla, MySQL almacenará la actualización
en disco.

Si se están usando tablas de transacción segura (como InnoDB o


BDB), se puede poner MySQL en modo no-autocommit con el
comando siguiente:

SET AUTOCOMMIT=0
Después de desconectar el modo autocommit asignando cero a
la variable AUTOCOMMIT, se debe usar COMMIT para almecenar
los cambios en disco o ROLLBACK si se quieren ignorar los cambios
hechos desde el principio de la transacción.

Si se quiere desactivar el modo autocommit para una serire de


sentencias, se puede usar una sentencia START TRANSACTION:

START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summmary=@A WHERE type=1;
COMMIT;
Se puede usar BEGIN y BEGIN WORK en lugar de START
TRANSACTION para iniciar una transacción. START TRANSACTION
fue añadido en MySQL 4.0.11; es la sintaxis SQL-99 y es el modo
recomendado para empezar una transacción. BEGIN y BEGIN
WORK están disponibles desde MySQL 3.23.17 y 3.23.19,
respectivamente.

Si no se están usando tablas de transacción segura, cualquier


cambio será almacenado inmediatamente,
independientemente del estado del modo autocommit.

Si se usa una sentencia ROLLBACK después de actualizar una


tabla no transaccional, se obtendrá un error
(ER_WARNING_NOT_COMPLETE_ROLLBACK) como un aviso.
Todas las tablas de transacción segura serán restauradas, pero
cualquier tabla de transacción no segura no cambiará.

Si se usar START TRANSACTION o AUTOCOMMIT=0, se debe usar el


diario binario MySQL para copias de seguridad en lugar del
antigui diario de actualización. Las transacciones se almacenan
en el diario binario de una vez, después de COMMIT, para
asegurar que las transacciones que se han rebobinado no se
almacenen.

Se puede modificar el nivel de aislamiento para transacciones


con ISOLATION LEVEL.
Refmann(2015) Recuperado el dia 26 de octubre de 2020 de:
https://dow9nloads.mysql.com/docs/refman-5.0-es.pdf

Yanez (2017) Recuperado en dia 26 de octubre de 2020 de:


http://mysql.conclase.net/curso/?sqlsen=GRANT

También podría gustarte