sql >> Base de Datos >  >> RDS >> Mysql

Introducción a los comandos SQL

En el mundo actual de mayor digitalización, big data y computación en la nube, la gestión de datos es una de las habilidades más importantes que puede tener un ingeniero de software. Con este fin, una de las herramientas de bases de datos más poderosas es SQL.

SQL (lenguaje de consulta estructurado) es el lenguaje de programación estándar utilizado para manipular objetos de estructura de datos. Operan sobre datos contenidos en un sistema de gestión de base de datos relacional (RDBMS). Algunos RDBMS conocidos son MySQL y PostgreSQL.

En esta guía, aprenderá sobre los subconjuntos del lenguaje SQL y cómo usar algunos comandos SQL fundamentales, como SELECT , INSERT , UPDATE y DELETE .

Subconjuntos de SQL

La siguiente lista incluye los diferentes subconjuntos de idiomas de varios comandos SQL. Cada subconjunto tiene su propia función y propósito.

  • Lenguaje de definición de datos (DDL):esto le permite crear, eliminar y actualizar definiciones de esquemas de bases de datos (es decir, tablas e índices), sin manipular realmente los datos dentro de las tablas de la base de datos.
  • Lenguaje de consulta de datos (DQL):DQL se usa para recuperar datos de la base de datos usando SELECT declaración.
  • Lenguaje de manipulación de datos (DML):este sublenguaje permite la manipulación de datos en la base de datos usando INSERT , UPDATE y DELETE declaraciones.

Esta guía utiliza una base de datos de ejemplo para una escuela para demostrar aún más los comandos SQL para cada subconjunto enumerado anteriormente. La base de datos de la escuela tiene varias tablas, para estudiantes, cursos, calificaciones, etc. La definición del Student la tabla contiene columnas para el SSNumber del estudiante , Firstname y Lastname y la definición del CourseTaken la tabla contiene columnas para SSNumber , CourseId , NumericGrade y YearTaken .

El ejemplo asume que hay tres estudiantes en la escuela, cada uno de los cuales ha completado dos cursos. Los datos de muestra se muestran en la siguiente tabla:

SSNumber Apellido Nombre ID del curso NumericGrade Año tomado
111111111 Smith Juan CSC101 98 2021
111111111 Smith Juan ENG101 95 2022
222222222 Jones María CSC101 100 2022
222222222 Jones María EEE101 75 2022
333333333 Hansen Roberto POL101 92 2021
333333333 Hansen Roberto SOC103 84 2022

Crear, modificar y eliminar tablas usando comandos SQL

Desde la línea de comando, use CREATE TABLE comando seguido del nombre de la tabla y los datos de la tabla. El siguiente comando crea el Student mesa.

CREATE TABLE Student (
  SSNumber CHAR(9) NOT NULL,
  LastName VARCHAR(30) NOT NULL,
  FirstName VARCHAR(20) NOT NULL
);

El paréntesis encierra los datos de la tabla, comenzando con una columna que etiqueta los datos de cada fila. La siguiente columna indica el tipo de datos que contiene esta fila. CHAR indica un tipo de datos de cadena de longitud fija y VARCHAR indica un tipo de datos de cadena de longitud variable. En la última columna, NOT NULL El atributo garantiza que no se puede agregar un registro a la tabla si alguno de los NOT NULL las columnas no tienen datos asociados con ellas.

Nota El CREATE TABLE La declaración está delimitada con un punto y coma final (;), aunque es posible que algunos sistemas comerciales de bases de datos relacionales no requieran ese delimitador.
Nota A menos que se indique lo contrario, todos los comandos de base de datos que se muestran en esta guía funcionan bien tanto en MySQL y PostgreSQL .

Para crear el CourseTaken tabla, ejecute el siguiente comando:

CREATE TABLE CourseTaken (
  SSNumber CHAR(9) NOT NULL,
  CourseId CHAR(6) NOT NULL,
  NumericGrade INT NOT NULL
);

El YearTaken la columna no se incluye intencionalmente en el CourseTaken table para demostrar el uso de ALTER TABLE dominio. Para agregar el YearTaken columna en el CourseTaken tabla, no necesita soltar el CourseTaken mesa por completo. En su lugar, puede usar el DDL ALTER TABLE dominio. El siguiente comando altera el CourseTaken tabla agregando la columna que falta a la tabla.

ALTER TABLE CourseTaken
  ADD (YearTaken INT NOT NULL);

El comando anterior sigue una sintaxis similar a la anterior. Requiere el nombre de la tabla, así como tres argumentos:nombre de fila, tipo de datos de fila y NOT NULL atributo. Si desea eliminar el CourseTaken tabla por completo, emita el DDL DROP TABLE comando seguido del nombre de la tabla.

DROP TABLE CourseTaken;
Precaución Al soltar una tabla, se eliminan todos los datos de la tabla.

Cómo insertar datos en una tabla en SQL

Para insertar los datos en la tabla, use SQL INSERT INTO declaración. Para llamar a este comando, proporcione el nombre de la tabla y la lista de nombres de fila (entre paréntesis) en los que desea insertar los datos. Esto es seguido por VALUES palabra clave y los valores reales (entre paréntesis) que desea insertar. Los valores se insertan en las filas en el orden en que se llaman.

Nota
  • Los comandos SQL se pueden dividir en líneas. El final del comando SQL está delimitado por un punto y coma (; ).
  • Los datos del carácter están delimitados por un apóstrofo de apertura y cierre ( ), mientras que los datos numéricos no lo son.

El siguiente INSERT los comandos insertan tres filas en el Student mesa. Estos comandos usan múltiples INSERT declaraciones.

INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('111111111', 'Smith', 'John');

INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('222222222', 'Jones', 'Mary');

INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('333333333', 'Hansen', 'Robert');

De manera similar, también puede insertar varias filas en la tabla en una sola consulta SQL como se muestra a continuación:

INSERT INTO CourseTaken
(SSNumber, CourseId, NumericGrade, YearTaken)
VALUES
('111111111', 'CSC101', 98, 2021),
('111111111', 'ENG101', 95, 2022),
('222222222', 'CSC101', 100, 2022);
Nota

Puedes usar el INSERT INTO comando de manera similar en PostgreSQL para agregar filas a la tabla. Asegúrese de que los valores coincidan con el orden de las columnas en la definición de la tabla.

INSERT INTO student VALUES ('111111111', 'Smith', 'John');

Eliminar datos de una tabla

Para eliminar datos de una tabla, use SQL DELETE FROM declaración. Usa el WHERE cláusula para especificar la condición, y si hay más de una condición, use el AND cláusula junto con WHERE .

Por ejemplo, el siguiente comando elimina un registro del CourseTaken tabla con SSNumber 333333333 y ID del curso POL101 .

Precaución Si omite el WHERE cláusula, se eliminan todos los registros de la tabla.
DELETE FROM CourseTaken WHERE SSNumber = '333333333' AND CourseId = 'POL101';

Comando SQL para actualizar datos en una tabla

Para actualizar el registro existente en una tabla, use SQL UPDATE dominio. El SET La cláusula se usa para establecer (actualizar) un nuevo valor en una columna en particular y el WHERE se utiliza para actualizar las filas seleccionadas.

Por ejemplo, el siguiente comando actualiza el NumericGrade columna del CourseTaken tabla para registros con SSNumber 222222222 y ID del curso EEE101 .

UPDATE CourseTaken
SET NumericGrade = 95
WHERE SSNumber = '222222222' AND CourseId = 'EEE101';

Comando SQL para recuperar datos de una tabla

El verdadero poder de los sistemas de bases de datos relacionales está en su capacidad para recuperar información en un esquema de tablas múltiples, a través de SQL SELECT comando y la capacidad de unir tablas a través de teclas comunes. Aunque esta guía introductoria no examina la creación de claves e índices utilizando esas claves, utiliza el SSNumber columna de cada tabla como vehículo (clave) para relacionar (o unir) las tablas para generar información. Los siguientes ejemplos proporcionan diferentes casos de uso de SQL SELECT comando desde la línea de comando.

Ejemplo 1: Para obtener la lista de todos los estudiantes de la escuela.

SELECT * from Student;

Salida:

+-----------+----------+-----------+
| SSNumber  | LastName | FirstName |
+-----------+----------+-----------+
| 111111111 | Smith    | John      |
| 222222222 | Jones    | Mary      |
| 333333333 | Hansen   | Robert    |
+-----------+----------+-----------+

Ejemplo 2: Para obtener la lista de todos los estudiantes y cursos que han tomado.

SELECT Student.SSNumber, Student.LastName,
       Student.FirstName, CourseTaken.CourseId
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber;

Salida:

+-----------+----------+-----------+----------+
| SSNumber  | LastName | FirstName | CourseId |
+-----------+----------+-----------+----------+
| 111111111 | Smith    | John      | CSC101   |
| 111111111 | Smith    | John      | ENG101   |
| 222222222 | Jones    | Mary      | CSC101   |
+-----------+----------+-----------+----------+
Nota En el comando anterior, las dos tablas, Student y CourseTaken se unen para recuperar la información requerida. Los nombres de las columnas en SELECT y WHERE las cláusulas tienen el prefijo de sus nombres de tabla para mayor claridad. Sin embargo, en el caso del SSNumber columna, debemos especificar los prefijos de nombre de tabla apropiados, ya que ambas tablas comparten el mismo nombre de columna. El FROM cláusula indica las tablas que se están utilizando en esta consulta.

Ejemplo 3: Recuperar la lista de alumnos con CourseId CSC101 y el año en que tomaron este curso.

SELECT Student.LastName, Student.FirstName,
       CourseTaken.CourseId, CourseTaken.YearTaken
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber
AND CourseTaken.CourseId = 'CSC101';

Salida:

+----------+-----------+----------+-----------+
| LastName | FirstName | CourseId | YearTaken |
+----------+-----------+----------+-----------+
| Smith    | John      | CSC101   |      2021 |
| Jones    | Mary      | CSC101   |      2022 |
+----------+-----------+----------+-----------+

Ejemplo 4: Recupere la lista de nombres de estudiantes, cursos tomados y calificaciones recibidas, para aquellos que tenían calificaciones de cursos superiores a 90 .

SELECT Student.LastName, Student.FirstName,
       CourseTaken.CourseId, CourseTaken.NumericGrade
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber
AND CourseTaken.NumericGrade > 90;

Salida:

+----------+-----------+----------+--------------+
| LastName | FirstName | CourseId | NumericGrade |
+----------+-----------+----------+--------------+
| Smith    | John      | ENG101   |           95 |
| Smith    | John      | CSC101   |           98 |
| Jones    | Mary      | CSC101   |          100 |
+----------+-----------+----------+--------------+

Nota El AND La cláusula en el comando anterior le permite filtrar los resultados por una prueba de puntaje de calificación condicional.

Conclusión

Esta guía sobre comandos SQL es un manual introductorio sobre cómo crear esquemas de base de datos y manipular datos dentro de esas bases de datos. Aunque los conceptos presentados aquí simplemente rascan la superficie con respecto al uso de los sistemas de bases de datos relacionales, es un buen punto de partida para los comandos y conceptos básicos y esenciales.