
CREATE TABLE se utiliza para crear las tablas de una base de datos.
Las tablas se organizan en filas y columnas.
Donde las columnas son los atributos y las filas son conocidos como registros.
Sintaxis:
CREATE TABLE table
(
column_1 data_type,
column_2 data_type,
column_3 data_type,
column_4 data_type,
....
PRIMARY KEY (Column(s))
);
(
column_1 data_type,
column_2 data_type,
column_3 data_type,
column_4 data_type,
....
PRIMARY KEY (Column(s))
);
Ejemplo de CREATE TABLE
SQL> CREATE TABLE EMPLEADOS(
SSN CHAR(10) NOT NULL,
EMP_NOMB VARCHAR(35) NOT NULL,
EMP_EDA INT NOT NULL,
EMP_DIR VARCHAR(40) ,
PRIMARY KEY (SSN)
);
SSN CHAR(10) NOT NULL,
EMP_NOMB VARCHAR(35) NOT NULL,
EMP_EDA INT NOT NULL,
EMP_DIR VARCHAR(40) ,
PRIMARY KEY (SSN)
);
La declaración anterior crearía una tabla denominada "empleados" en la base de datos que tiene la clave principal como "SSN".
Nota: Desde el SSN es una clave principal no puede duplicar los valores como se esta columna se utiliza para identificar el registro único (fila) de la tabla.
SQL> DESC CLIENTES;
+---------+---------------+------+-----+---------+
| Field | Type | Null | Key | Default |
+---------+---------------+------+-----+---------+
| SSN | int(11) | NO | PRI | |
| EMP_NOMB| varchar(20) | NO | | |
| EMP_EDA | int(11) | NO | | |
| EMP_DIR | char(25) | YES | | NULL |
+---------+---------------+------+-----+---------+
5 rows in set (0.00 sec)
+---------+---------------+------+-----+---------+
| Field | Type | Null | Key | Default |
+---------+---------------+------+-----+---------+
| SSN | int(11) | NO | PRI | |
| EMP_NOMB| varchar(20) | NO | | |
| EMP_EDA | int(11) | NO | | |
| EMP_DIR | char(25) | YES | | NULL |
+---------+---------------+------+-----+---------+
5 rows in set (0.00 sec)
Una vez creada la tabla se pueden realizar las otras operaciones como insertar, eliminar, truncar etc.
CREATE TABLE de una tabla existente
Sintaxis:
CREATE TABLE TablaNombre AS
SELECT (columna_1, columna_2...)
FROM AnteriorTablaNombre
WHERE Clause
SELECT (columna_1, columna_2...)
FROM AnteriorTablaNombre
WHERE Clause
Ejemplo:
Digamos que tiene un estudiante que tiene debajo de la tabla de entradas:
+---------+---------------+------+
| RollNo | Name | Age |
+---------+---------------+------+
| 1234 | Abel | 23 |
| 256 | Jet | 21 |
| 22 | Juan | 22 |
| 890 | Anujo | 23 |
| 123 | Raul | 18 |
+---------+---------------+------+
| RollNo | Name | Age |
+---------+---------------+------+
| 1234 | Abel | 23 |
| 256 | Jet | 21 |
| 22 | Juan | 22 |
| 890 | Anujo | 23 |
| 123 | Raul | 18 |
+---------+---------------+------+
Ahora quiero crear una tabla denominada "EDAD" de la tabla anterior. Esta es la forma en que debería estar haciendo es:
SQL> CREATE TABLE EDAD AS
SELECT RolNo, Edad
FROM ESTUDIANTE;
SELECT RolNo, Edad
FROM ESTUDIANTE;
La nueva tabla "EDAD" sería tener los siguientes registros:
+---------+------+
| RolNo | Edad |
+---------+------+
| 1234 | 23 |
| 256 | 21 |
| 22 | 22 |
| 890 | 23 |
| 123 | 18 |
+---------+------+
| RolNo | Edad |
+---------+------+
| 1234 | 23 |
| 256 | 21 |
| 22 | 22 |
| 890 | 23 |
| 123 | 18 |
+---------+------+
