-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy path4-manipulando-datos.sql
More file actions
191 lines (143 loc) · 4.17 KB
/
4-manipulando-datos.sql
File metadata and controls
191 lines (143 loc) · 4.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
/* 1. Crear base de datos
CREATE DATABASE nombre_base_de_datos;
*/
DROP DATABASE LIBRERIA;
CREATE DATABASE LIBRERIA;
/* 2. Eliminar base de datos
DROP DATABASE nombre_base_de_datos;
*/
DROP DATABASE LIBRERIA1;
/* 3. Crear tabla dentro de base de datos
No se pueden sobreescribir, en caso de que exista la tabla mandará error
USE nombre_base_de_datos
CREATE TABLE nombre_tabla (
nombre_columna tipo_dato,
nombre_columna tipo_dato,
nombre_columna tipo_dato,
)
*/
USE libreria;
CREATE TABLE AUTORES (
ID_AUTOR INT PRIMARY KEY,
NOMBRE VARCHAR(50) NOT NULL,
FECHA_NACIMIENTO DATE
);
CREATE TABLE LIBROS (
ID_LIBRO INT PRIMARY KEY,
NOMBRE VARCHAR(50) NOT NULL DEFAULT 'Anonimo',
FECHA DATE,
ID_AUTOR INT,
GENERO VARCHAR(50) DEFAULT 'Sin clasificar',
foreign key (ID_AUTOR) references AUTORES(ID_AUTOR)
);
CREATE TABLE INVENTARIO (
ID INT PRIMARY KEY AUTO_INCREMENT,
ID_LIBRO INT,
EXISTENCIA INT NOT NULL,
VENDIDOS INT NOT NULL,
foreign key (ID_LIBRO) references LIBROS(ID_LIBRO)
);
/*Los tipos de datos disponibles son:
VARCHAR(LENGTH), INT, FLOAT, DATE, BOOLEAN
Algunos otros comandos que se utilizan para definir una tabla son:
* PRIMARY KEY: Ya va implícito que debe ser única y no puede ser nula
* NOT NULL: Los valores no puedan ser nulos
* UNIQUE: No se repitan los valores
* FOREIGN KEY (variable) REFERENCES tabla(variable): Sirve para relacionar una variable con la llave primaria de otra tabla
* DEFAULT: valor en caso de omitir la columna al ingresar información
* AUTO_INCREMENT: Aumentar en una unidad una variable sin necesidad de introducir su valor
*/
/* 4. Modificar estructura de la tabla
ALTER TABLE nombre_tabla
ADD column ## Añadir columnas
DROP column ## Borrar columnas
MODIFY column tipo_de_dato ## Modificar columnas
*/
ALTER TABLE AUTORES
ADD NACIONALIDAD VARCHAR(20);
ALTER TABLE AUTORES
MODIFY NACIONALIDAD VARCHAR(30) DEFAULT "Desconocida";
/* 5. Eliminar una tabla
DROP TABLE nombre_tabla;
*/
CREATE TABLE tabla_error (
id INT PRIMARY KEY,
id2 INT
);
DROP TABLE tabla_error;
/* 5. Insertando datos en la tabla
INSERT INTO nombre_tabla (columna1, columna2, ...)
VALUES
(valor1, valor2, ...),
(valor1, valor2, ...);
*/
INSERT INTO AUTORES (ID_AUTOR, NOMBRE, FECHA_NACIMIENTO, NACIONALIDAD)
VALUES
(1, "Gabriel García Márquez", '1927-03-06', "Colombiano");
INSERT INTO AUTORES
VALUES
(2, "Octavio Paz", '1914-03-31', "Mexicano");
INSERT INTO AUTORES (Nombre, ID_AUTOR, NACIONALIDAD)
VALUES
("Sheldon Ross", 3, 'Estadounidense');
INSERT INTO LIBROS (ID_LIBRO, NOMBRE, FECHA, ID_AUTOR, GENERO)
VALUES
(1, "Cien años de soledad", '1967-05-01', 1, "Novela");
INSERT INTO LIBROS (ID_LIBRO, NOMBRE, FECHA, ID_AUTOR, GENERO)
VALUES
(2, "A first course in probability", '2006-10-01', 3, "Educativo"),
(3, "El laberinto de la soledad", '1950-01-01', 2, "Narrativo");
INSERT INTO INVENTARIO (ID_LIBRO, EXISTENCIA, VENDIDOS)
VALUES
(3, 5, 3),
(2, 10, 4),
(1, 2, 10);
/* Se puede insertar datos desde una consulta
INSERT INTO nombre_tabla (columna1, columna2, ...)
Consulta;
*/
### Supongamos que tenemos una tabla que se llama "jovenes_promesas"
/*
INSERT INTO autores (id, nombre, nacionalidad, fecha_nacimiento)
SELECT id, nombre, nacionalidad, fecha_nacimiento
FROM escuela.jovenes_promesas
WHERE numero_libros > 10;
*/
/* 6. Actualizar datos en tablas
UPDATE nombre_tabla
SET columna1 = valor1, columna2 = valor2, ...
WHERE condicion;
*/
SELECT * FROM autores;
UPDATE autores
SET FECHA_NACIMIENTO = '1950-01-01'
WHERE ID_AUTOR = 3;
SELECT * FROM autores;
UPDATE autores
SET FECHA_NACIMIENTO = '1960-01-01', Nacionalidad = 'Inglés'
WHERE ID_AUTOR = 3;
SELECT * FROM autores;
UPDATE autores
SET Nacionalidad = 'Mexicano'
WHERE ID_AUTOR = 2;
UPDATE autores
SET Nacionalidad = 'Estadounidense'
WHERE ID_AUTOR = 3;
SELECT * FROM autores;
/* 7. Eliminar datos en tablas
DELETE FROM nombre_tabla
WHERE condicion;
DELETE FROM nombre_tabla;
*/
SELECT * FROM inventario;
DELETE FROM inventario
WHERE ID = 4;
SELECT * FROM inventario;
DELETE FROM inventario
WHERE ID > 4;
SELECT * FROM inventario;
DELETE FROM inventario
WHERE ID >= 1;
SELECT * FROM inventario;
## Eliminar los registros de una tabla
TRUNCATE TABLE inventario;