El SQL es el lenguaje “estándar” para las bases de
datos. El termino esta entre comillas porque entre
cada sistema gestor de base de datos (SGBD)
pueden haber diferencias con respecto a algunas
sentencias o algunas sintaxis.
Este lenguaje se divide en dos partes. Lenguaje de
definición de datos (LDD) y lenguaje de
manipulación de datos (LMD).
El LDD, es el Lenguaje de Definición de Datos. Este
lenguaje nos servirá para crear, alterar y eliminar
objetos dentro de MySQL.
Cuando hablamos de objetos nos referimos a la
estructura donde se almacenarán los datos
(conocido como esquema), no a los datos en si.
Base de datos agenda
CREATE: sentencia crea un objeto dentro del
servidor MySQL. Puede ser una base de datos,
tabla, vista, índice, disparador, funciones,
procedimientos y evento.
CREATE objeto Definición
CREATE [OBJETO] DEFINICIÓN;
CREATE DATABASE: sentencia que crea una base
de datos dentro del servidor MySQL.
DATABAS
CREATE nombre
E
CREATE DATABASE miprimerabd;
El nombre no puede contener carácter de espacio
en blanco o caracteres especiales (%, $, &, @,
entre otros).
Una vez creada una base de datos, se procede a
crear las tablas, antes de esto se debe de
seleccionar la base de datos. Esto se realiza con la
orden USE nombre;.
USE miprimerabd;
CREATE TABLE: sentencia crea una tabla dentro
de una base de datos seleccionada (USE).
CREATE TABLE nombre Definición
CREATE TABLE miprimeratb (id char(2)
primary key);
El nombre no puede contener carácter de espacio
en blanco o caracteres especiales (%, $, &, @,
entre otros).
Luego del nombre se ubica la definición entre
paréntesis.
CREATE TABLE:
Definición
Nombre Tipo y Propiedad
(
columna tamaño de columnas
,
Propiedades )
de tabla
CREATE TABLE mitb2 (id char(2) NOT NULL,
dato varchar(30), primary key(id));
CREATE TABLE:
Nombre Deberá de ser un nombre completo, sin
columna caracteres especiales, ni espacios en
blanco.
Tipo y Pueden ser VARCHAR(tamaño),
tamaño CHAR(tamaño), INT, NUMERIC, FLOAT,
BOOLEAN…entre otros.
Propiedad NOT NULL, AUTO_INCREMENT,
de columnas UNIQUE, PRIMARY KEY…entre otros.
También conocido como constraint
Propiedades PRIMARY KEY, UNIQUE, FOREIGN
de tabla KEY. También conocido como constraint
CREATE TABLE:
Propiedades de las tablas: PRIMARY KEY
Se usa obligatoriamente cuando la tabla tiene mas de una
llave primaria, y opcionalmente cuando solo tiene una.
Esta propiedad entra en conflicto con la propiedad
PRIMARY KEY de las columnas, por lo que solo puede
aparecer una de ellas según el caso.
CREATE TABLE:
Propiedades de las tablas: FOREIGN KEY
foreign Nom.
key ( Columnas ) references
,
Tabla Nom.
( )
referenciar Columnas
,
set null
on delete cascada
update restrict
no action
CREATE TABLE:
create table departamento
(depto char(5),
nombre varchar(25) NOT NULL,
primary key(depto));
CREATE TABLE:
create table persona
(cedula char(17) PRIMARY KEY,
nombre varchar(25) NOT NULL,
depto char(5),
constraint pk_p_d foreign key(depto)
references departamento(depto) on
delete cascade on update cascade);
ALTER: sentencia modifica la estructura de los
objetos de la base de datos. Puede ser
agregar/quitar columnas de tabla, modificar tipo de
campo, modificar trigger, agregar/quitar constraint.
ALTER objeto modificación
ALTER [OBJETO] MODIFICACIÓN;
ALTER TABLE: sentencia modifica la estructura de
las tablas. Existes 3 acciones de modificación
agregar (ADD), borrar (DROP) y cambiar
(CHANGE).
ALTER TABLE nombre
acción modificación
ALTER TABLE mitb2 [acción] modificación;
ALTER TABLE:
acción
change COLUMNAS
add
CONSTRAINT
drop
ALTER TABLE:
ALTER TABLE nombre
Definición de
add column la columna
change Nombre actual
de la columna
Nombre de la
drop
column columna
ALTER TABLE:
alter table persona change nombre nomb2
varchar(100) not null;
alter table departamento add column apellido
varchar(10) not null;
alter table departamento drop column
apellido;
DROP: sentencia elimina los elementos de la base
de datos. Puede eliminar tabla, vista, indice, trigger,
funciones, procedimientos, entre otros.
DROP objeto
DROP TABLE persona;
Los tipos de datos corresponde a la restricción que
se otorgue a una columna, esta restricción esta
dada por un tipo de valor que soporta y un tamaño.
Entre los tipos permitidos por MySQL (algunos
coinciden con otros SGBD) están los siguientes:
TIPO DESCRIPCIÓN
BINARY Cadenas de binarios entre 0 a 255
BLOB Archivos binarios de 0 a 65,535 bytes
LONGBLOB BLOB hasta 4,294,967,295
MEDIUMBLOB BLOB hasta 16,777,215
TINYBLOB BLOB HASTA 255
VARBINARY BINARY variante entre 0 a 255
DATE YYYY MM DD de 0000 00 00 a 9999 12
31
DATETIME YYYY MM DD hh mm ss de 1001 01 01
00h 00m 00s a 9999 12 31 23h 59m 59s
TIPO DESCRIPCIÓN
TIMESTAMP 1001 01 01 0h 0m 0s a 9999 12 31 23h 59m 59s
YEAR YYYY 1901 a 2155
BIGINT -9,223,372,036,854,775,808 a
9,223,372,036,854,775,807. Unsigned, desde 0 a
18,446,744,073,709,551,615
DECIMAL Número en coma flotante desempaquetado y
es almacenado como una cadena.
DOUBLE -1.7976931348623157E+308 a -
2.2250738585072014E-308. Unsigned 0 y desde
2.2250738585072014E-308 a
1.7976931348623157E+308
FLOAT -3.402823466E+38 a -1.175494351E-38. Usigned
0 y desde
1.175494351E-38 a 3.402823466E+38
INT -2,147,463,846 a 2,147,483,647. Si configuramos
este dato como unsigned, el rango es 0 a
42,94,967,295
TIPO DESCRIPCIÓN
MEDIUMINT -8,388,608 a 8,388,607. Si se configura como
unsigned, 0 a 16,777,215
SMALLINT -32,768 a 32,767. Si se configura como unsigned,
0 a 65535.
TINYINT -128 a 127 y si tiene la propiedad unsigned su
rango seria 0 a 255
CHAR Caracteres de texto de 0 a 255
VARCHAR Caracteres de texto variante 0 a 255
LONGTEXT Caracteres de texto hasta 4,294,967,295
MEDIUMTEXT Caracteres de texto hasta 16,777,215
TEXT Caracteres de texto de 0 a 65,535
TINYTEXT Caracteres de texto de 0 a 255
BIT Binario de 0 a 1
ENUM Selección individual con 0 a 65,535 posible
selección
TIPO DESCRIPCIÓN
SET Selección múltiple con 0 a 64 posibilidades
BOOL 0a1
Siglas Propiedad Descripción
PK PRIMARY KEY Con esta propiedad se
asigna como llave
primaria a una columna
(atributo) de la tabla.
NN NOT NULL La columna no podrá
contener valores nulos.
UQ UNIQUE La columna es un valor
único (pero no es la llave
primaria).
BIN BINARY
UN UNSIGNED Valor sin signo (solo para
tipos numéricos).
ZF ZEROFILL Fuerza a 0 los valores por
defecto.
AI AUTO_INCREMENT La columna ira
incrementando
automáticamente por
cada fila.