sábado, 29 de marzo de 2014

PRIMEROS COMANDOS (FICHAS)


v  CREAR BASES DE DATOS
En la terminología usada en SQL no se alude a las relaciones, del mismo modo que no se usa el término atributo, pero sí la palabra columna, y no se habla de tupla, sino de línea.
CREATE DATABASE nombre_base de datos
Con PostgreSQL está a disposición una orden invocable por shell Unix (o por shell del sistema usado), que ejecuta la misma operación:
createdb nombre_base de datos
Para crear nuestra base de datos bibliográfica, usaremos pues la orden:
createdb biblio
Una vez creada la base de datos, se pueden crear las tablas que la componen. La instrucción SQL propuesta para este fin es:
CREATE TABLE nombre_tabla
nombre_columna tipo_columna [ cláusula_defecto ] [ vínculos_de_columna ]
[ , nombre_columna tipo_columna [ cláusula_defecto ] [ vínculos_de_columna ] ... ]

[ , [ vínculo_de tabla] ... ] )
 
 
 
v  CREAR TABLAS
La sintaxis SQL para CREATE TABLE es
CREATE TABLE "nombre_tabla"
("columna 1" "tipo_de_datos_para_columna_1",
"columna 2" "tipo_de_datos_para_columna_2",
...);
Entonces, si debemos crear una tabla para el cliente tal como se especifica anteriormente, ingresaríamos


CREATE TABLE Customer
(First _Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date datetime);


 

 

v  INSERTAR REGISTROS

 

1.     En la ventana principal de la base de datos haz clic sobre el menú Herramientas y después ejecuta el comando SQL.

2.     En la primera sección del cuadro de diálogo escribe la siguiente instrucción: INSERT INTO "Actividades" ("Actividad") VALUES ('Voleibol')

3.     Después de escribir la sentencia SQL, haz clic en el botón Ejecutar.

4.     Si no existe ningún problema aparecerá en la parte inferior un mensaje indicando que el comando se ha ejecutado correctamente.

5.     Revisa la tabla Actividades y comprueba que se ha añadido el registro.

 

 

v  AGREGAR, MODIFICAR Y ELIMINAR TABLAS, CAMPOS

"alter table" permite modificar la estructura de una tabla.

Podemos utilizarla para agregar, modificar y eliminar campos de una tabla.

Para agregar un nuevo campo a una tabla empleamos la siguiente sintaxis básica:

 Alter table NOMBRETABLA

  Add NOMBRENUEVOCAMPO DEFINICION;

En el siguiente ejemplo agregamos el campo "cantidad" a la tabla "libros", de tipo tinyint, que acepta valores nulos:

 alter table libros

  add cantidad tinyint;

SQL Server no permite agregar campos "not null" a menos que se especifique un valor por defecto:

 alter table libros

  add autor varchar(20) not null default 'Desconocido';

Al agregar un campo puede especificarse que sea "identity" (siempre que no exista otro campo identity).

Para eliminar campos de una tabla la sintaxis básica es la siguiente:

alter table NOMBRETABLA

  drop column NOMBRECAMPO;

En el siguiente ejemplo eliminamos el campo "precio" de la tabla "libros":

alter table libros

  drop column precio;

Podemos eliminar varios campos en una sola sentencia:

alter table libros

  drop columna editorial, edición;





v  AGREGAR, MODIFICAR Y ELIMINAR REGISTROS

La instrucción INSERT permite crear o insertar nuevos registros en una tabla, veamos su sintaxis con un ejemplo práctico, la inserción de un registro en la tabla ALUMNOS:

INSERT

Insert into ALUMNOS (ID_ALUMNO, NOMBRE , APELLIDOS , F_NACIMIENTO) 
values (, 'Pablo' , 'Hernández Mata' , '1995-03-14')

Sintaxis:

INSERT INTO nombre_tabla (lista de campos separados por comas)
VALUES (lista de datos separados por comas)
 

Delete SQL

La instrucción DELETE permite eliminar registros de una tabla

delete from MACOTAS
 where ESTADO = 'B'

La siguiente instrucción elimina todos los registros de la tabla VEHICULOS:

Delete
  from VEHICULOS

Ahora vamos a modificar el registro de la tabla usuarios:

UPDATE usuarios Set Nombre=’Video Tutoriales’ Where Clave=’PaS$-6′;

Si nos fijamos en esta otra sentencia SQL, podemos ver como palabras clave UPDATE, SET y WHERE. Utilizamos UPDATE para modificar un registro contenido en una tabla (en nuestro caso usuarios) y utilizamos SET para designar el campo a modificar y el valor que ha de tomar (Nombre=’Video Tutoriales’). Para terminar esta sentencia nos queda decir que registro queremos modificar, es cuando utilizamos WHERE y le pasamos la condición (Clave = ‘PaS$-6′). Quiere decir que todos los registros que contengan Clave con el valor ‘PaS$-6′, modificarán su nombre y se llamarán ‘Video Tutoriales’.

Ya, y para terminar con estas sentencias SQL, vamos a eliminar nuestro registro:

DELETE FROM usuarios Where nombre=’Video Tutoriales”

En este código SQL, utilizamos DELETE FROM Y WHERE como palabras clave, el orden es  DELETE FROM y a continuación el nombre de la tabla en la cual vamos a borrar los registros, seguido de un WHERE donde le damos la condición que debe de realizarse para que el registro sea eliminado.

 

 



v  BORRAR TABLAS

A veces podemos decidir que necesitamos eliminar una tabla en la base de datos por alguna razón. De hecho, sería problemático si no podemos hacerlo ya que esto crearía una pesadilla de mantenimiento para DBA. Afortunadamente, SQL nos permite hacerlo, ya que podemos utilizar el comando DROP TABLE. La sintaxis para DROP TABLE es

DROP TABLE "nombre_tabla";

Entonces, si deseamos eliminar una tabla denominada cliente que creamos en la sección CREATE TABLE, simplemente ingresamos

DROP TABLE Customer;

 

 

v  BORRAR BASES DE DATOS

Conéctese con el Motor de base de datos.

En la barra Estándar, haga clic en Nueva consulta.

Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar. El ejemplo quita las bases de datos Sales y NewSales.

Transact-SQL


USE master;

GO

DROP DATABASE Sales, NewSales ;

GO


Para eliminar una base de datos tenemos la instrucción DROP DATABASE.

DROP DATABASE {nbBasedeDatos} [....n] [:]
 

La base de datos puede ser una base de datos normal o una instantánea de base de datos.
Para poder ejecutar la sentencia el usuario debe tener permiso de CONTROL y se debe de ejecutar en un contexto diferente del de la base de datos a eliminar, por ejemplo:

   
Use  b1
 
      DROP DATABASE b1 

Falla porque con el use estamos en el contexto de la base de datos a eliminar.

PRACTICA 2(EJEMPLOS)


Enter password: ***

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 6

Server version: 5.0.51b-community-nt-log MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database productoss1;

Query OK, 1 row affected (0.00 sec)

mysql> use productoss1;

Database changed

mysql> create table productoss(codigo varchar(3),nombre varchar(30),precio decim

al(6,2),fechaalta date,primary key(codigo));

Query OK, 0 rows affected (0.15 sec)

mysql> insert into productoss values('a01','afilador'´,'250','200/11/02');

mysql> insert into productoss values('a01','afilador',250,'2007/11/02');)

Query OK, 1 row affected (0.24 sec)

mysql>

mysql> insert into productoss values('s01','silla mod.zaz',20,'2007/11/03');

Query OK, 1 row affected (0.00 sec)

mysql> insert into productoss values('s02','silla mod.xax','25','2007/11/03');

Query OK, 1 row affected (0.00 sec)

mysql> select*from productoss;

+--------+---------------+--------+------------+

| codigo | nombre        | precio | fechaalta  |

+--------+---------------+--------+------------+

| a01    | afilador      | 250.00 | 2007-11-02 |

| s01    | silla mod.zaz |  20.00 | 2007-11-03 |

| s02    | silla mod.xax |  25.00 | 2007-11-03 |

+--------+---------------+--------+------------+

3 rows in set (0.02 sec)

mysql> select*from productoss where nombre='afilador';

+--------+----------+--------+------------+

| codigo | nombre   | precio | fechaalta  |

+--------+----------+--------+------------+

| a01    | afilador | 250.00 | 2007-11-02 |

+--------+----------+--------+------------+

1 row in set (0.04 sec)

mysql> select*from productoss where nombre like 's%';

+--------+---------------+--------+------------+

| codigo | nombre        | precio | fechaalta  |

+--------+---------------+--------+------------+

| s01    | silla mod.zaz |  20.00 | 2007-11-03 |

| s02    | silla mod.xax |  25.00 | 2007-11-03 |

+--------+---------------+--------+------------+

2 rows in set (0.00 sec)

mysql> select nombre,precio from productoss where precio>22;

+---------------+--------+

| nombre        | precio |

+---------------+--------+

| afilador      | 250.00 |

| silla mod.xax |  25.00 |

+---------------+--------+

2 rows in set (0.00 sec)

mysql> select avg(precio)from productoss where left(nombre,5)='silla?;

select avg(precio)from productoss where left(nombre,5)='silla'' at line 1

mysql> select avg(precio) from productoss where left(nombre,5)='Silla';

+-------------+

| avg(precio) |

+-------------+

|   22.500000 |

+-------------+

1 row in set (0.02 sec)

mysql> alter table productoss add categoria varchar(10);

Query OK, 3 rows affected (0.05 sec)

Records: 3  Duplicates: 0  Warnings: 0

mysql> select*from productoss;

+--------+---------------+--------+------------+-----------+

| codigo | nombre        | precio | fechaalta  | categoria |

+--------+---------------+--------+------------+-----------+

| a01    | afilador      | 250.00 | 2007-11-02 | NULL      |

| s01    | silla mod.zaz |  20.00 | 2007-11-03 | NULL      |

| s02    | silla mod.xax |  25.00 | 2007-11-03 | NULL      |

+--------+---------------+--------+------------+-----------+

3 rows in set (0.00 sec)

mysql> update productoss set categoria='utensilio';

Query OK, 3 rows affected (0.02 sec)

Rows matched: 3  Changed: 3  Warnings: 0

mysql> update productoss set categoria="silla"where left(nombre,5)='silla';

Query OK, 2 rows affected (0.03 sec)

Rows matched: 2  Changed: 2  Warnings: 0

mysql> update productoss set categoria="silla"where left(nombre,5)='Silla';

Query OK, 0 rows affected (0.00 sec)

Rows matched: 2  Changed: 0  Warnings: 0

mysql> select distinct categoria from productoss;

+-----------+

| categoria |

+-----------+

| utensilio |

| silla     |

+-----------+

2 rows in set (0.00 sec)

mysql> select categoria,count(*)from productoss group by categoria;

+-----------+----------+

| categoria | count(*) |

+-----------+----------+

| silla     |        2 |

| utensilio |        1 |

+-----------+----------+

2 rows in set (0.00 sec)

mysql>

PRACTICA 1(EJEMPLOS)


Enter password: ***

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 8

Server version: 5.0.51b-community-nt-log MySQL Community Edition (GPL)

 

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

 

mysql> use prueba1;

Database changed

mysql> select * from empleados;

+---------+-----------+----------+-----------+------------+------------+--------

-+----------+

| num_emp | nombre    | ape_pate | ape_mate  | oficio     | fecha_alta | salario

 | comision |

+---------+-----------+----------+-----------+------------+------------+--------

-+----------+

|     136 | guadalupe | delgado  | carrillo  | estudiante | 2012-11-05 |     569

 |      100 |

|     137 | amanda    | garcia   | fuentes   | estudiante | 2011-01-15 |     870

 |       10 |

|     150 | edgar     | lucio    | rodriguez | estudia    | 2007-12-10 |     820

 |       18 |

+---------+-----------+----------+-----------+------------+------------+--------

-+----------+

3 rows in set (0.00 sec)

 

mysql> select * from empleados;

+---------+-----------+----------+-----------+------------+------------+---------+----------+

| num_emp | nombre    | ape_pate | ape_mate  | oficio     | fecha_alta | salario | comision |

+---------+-----------+----------+-----------+------------+------------+---------+----------+

|     136 | guadalupe | delgado  | carrillo  | estudiante | 2012-11-05 |     569 |      100 |

|     137 | amanda    | garcia   | fuentes   | estudiante | 2011-01-15 |     870 |       10 |

|     150 | edgar     | lucio    | rodriguez | estudia    | 2007-12-10 |     820 |       18 |

+---------+-----------+----------+-----------+------------+------------+---------+----------+

3 rows in set (0.00 sec)

mysql>