0% encontró este documento útil (0 votos)
432 vistas13 páginas

Comandos y Sintaxis SQL

Este documento proporciona una guía sobre los principales comandos y sintaxis de SQL para crear, insertar, actualizar y eliminar datos de bases de datos y tablas. Explica cómo crear bases de datos y tablas, insertar y modificar datos, y realizar consultas utilizando cláusulas como SELECT, WHERE, ORDER BY y GROUP BY. También cubre conceptos como claves primarias, externas y restricciones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
432 vistas13 páginas

Comandos y Sintaxis SQL

Este documento proporciona una guía sobre los principales comandos y sintaxis de SQL para crear, insertar, actualizar y eliminar datos de bases de datos y tablas. Explica cómo crear bases de datos y tablas, insertar y modificar datos, y realizar consultas utilizando cláusulas como SELECT, WHERE, ORDER BY y GROUP BY. También cubre conceptos como claves primarias, externas y restricciones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Comandos y Sintaxis SQL

(SQL Server)

Create
Crear una base de datos y usarla:

CREATE DATABASE databasename;


USE DATABASE databasename;

Crear una tabla:

CREATE TABLE Persons (


PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
CREATE TABLE new_table_name AS --Usando una tabla existente
SELECT column1, column2,...
FROM existing_table_name
WHERE ....;

Insert
Insertar datos en las tablas:

INSERT INTO Customers (CustomerName, ContactName, Address, City,


PostalCode, Country)
VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen
21', 'Stavanger', '4006', 'Norway');
INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal', 'Stavanger', 'Norway');

Update
Actualizar datos de las tablas: --es importante recordar el where, ya que si no se coloca se
modifican todos los datos

UPDATE Customers
SET ContactName = 'Alfred Schmidt', City= 'Frankfurt'
WHERE CustomerID = 1;
UPDATE Customers
SET ContactName='Juan'
WHERE Country='Mexico';

Borrar datos en la base de datos (database, table, etc.): --es importante recordar el where, si no
se desea todos los datos

DELETE FROM Customers


WHERE CustomerName='Alfreds Futterkiste';
DELETE * FROM Customers;

Alter Table
Alterar datos de las tablas/columnas:

ALTER TABLE Persons


ADD DateOfBirth date;
ALTER TABLE Persons
ALTER COLUMN DateOfBirth year;
ALTER TABLE Persons
DROP COLUMN DateOfBirth;

SQL Constraints (not null, unique, primary key, foreign key, check, default, index):

Not null:
fuerza una columna a no tener valores nulos, ya que por default puede tener valores
nulos.

CREATE TABLE Persons (


ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255) NOT NULL,
Age int
);

Unique:
asegura que todos los valores en una columna son diferentes.

CREATE TABLE Persons (


ID int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT UC_Person UNIQUE (ID,LastName)
);

--Con alter table:

ALTER TABLE Persons


ADD UNIQUE (ID);
ALTER TABLE Persons
ADD CONSTRAINT UC_Person UNIQUE (ID,LastName);
ALTER TABLE Persons
DROP CONSTRAINT UC_Person;

Primary key:
identifica cada record en una tabla de una base de datos. Cada tabla solo puede tener una
llave primaria.

CREATE TABLE Persons (


ID int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT PK_Person PRIMARY KEY (ID,LastName)
); /* Nota: En el ejemplo anterior es slo una clave primaria (PK_Person). Sin embargo,
el valor de la clave primaria est formado por dos columnas (ID + apellido) */
--Con alter table:

ALTER TABLE Persons


ADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName);
ALTER TABLE Persons
DROP CONSTRAINT PK_Person;

Foreign Key:
Una clave externa es una clave que se utiliza para unir dos tablas. Una clave externa es un campo
(o conjunto de campos) en una tabla que hace referencia a la clave principal de otra tabla. La tabla
que contiene la clave externa se llama la tabla y la tabla que contiene la clave de candidato se
llama la referencia o tabla para padres.

CREATE TABLE Orders (


OrderID int NOT NULL PRIMARY KEY,
OrderNumber int NOT NULL,
PersonID int FOREIGN KEY REFERENCES Persons(PersonID)
);

CREATE TABLE Orders (


OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID)
);

--Con alter table:

ALTER TABLE Orders


ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

ALTER TABLE Orders


ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

ALTER TABLE Orders


DROP CONSTRAINT FK_PersonOrder;

Select:
La instruccin SELECT se utiliza para seleccionar datos de una base de datos. Los datos devueltos se
almacenan en una tabla de resultados, llamada el conjunto de resultados.
SELECT * FROM Customers;

SELECT CustomerName, City FROM Customers;

Select distinct: Se utiliza la instruccin SELECT DISTINCT para devolver slo distintos
valores (diferentes). Dentro de una tabla, una columna a menudo contiene muchos valores
duplicados; y a veces slo desea enumerar los distintos valores (distintos):

SELECT DISTINCT Country FROM Customers;

SELECT COUNT(DISTINCT Country) FROM Customers;

--Este es para nombrar la columna count

SELECT Count(*) AS DistinctCountries


FROM (SELECT DISTINCT Country FROM Customers);

Select where:
La clusula WHERE se utiliza para filtrar registros. La clusula WHERE se utiliza para extraer slo los
registros que cumplen una condicin especificada:

SELECT * FROM Customers


WHERE Country='Mexico';

SELECT * FROM Customers


WHERE CustomerID=1;

Select and, or, not, combinados


SELECT * FROM Customers
WHERE Country='Germany' AND City='Berlin';

SELECT * FROM Customers


WHERE City='Berlin' OR City='Mnchen';

SELECT * FROM Customers


WHERE NOT Country='Germany';

SELECT * FROM Customers


WHERE Country='Germany' AND (City='Berlin' OR City='Mnchen')
;
SELECT * FROM Customers
WHERE NOT Country='Germany' AND NOT Country='USA';

Select order by
SELECT * FROM Customers
ORDER BY Country;

SELECT * FROM Customers


ORDER BY Country DESC; (ASC)

SELECT * FROM Customers


ORDER BY Country, CustomerName;

SELECT * FROM Customers


ORDER BY Country ASC, CustomerName DESC;

Select Top
SELECT TOP 3 * FROM Customers;

SELECT * FROM Customers


LIMIT 3;

SELECT * FROM Customers


WHERE ROWNUM <= 3;

SELECT TOP 50 PERCENT * FROM Customers;

SELECT TOP 3 * FROM Customers


WHERE Country='Germany';

Select MIN and MAX


SELECT MIN(Price) AS SmallestPrice
FROM Products;

SELECT MAX(Price) AS LargestPrice


FROM Products;

Select COUNT (), AVG () and SUM ()


SELECT COUNT(ProductID)
FROM Products;
SELECT AVG(Price)
FROM Products;
SELECT SUM(Quantity)
FROM OrderDetails;

Select Group by
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;
SELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrder
s FROM Orders
LEFT JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID
GROUP BY ShipperName;

Having
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5
ORDER BY COUNT(CustomerID) DESC;
SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM (Orders
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID)
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 10;
SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM Orders
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
WHERE LastName = 'Davolio' OR LastName = 'Fuller'
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 25;

Exists
SELECT SupplierName
FROM Suppliers
WHERE EXISTS (SELECT ProductName FROM Products WHERE SupplierId =
Suppliers.supplierId AND Price < 20);

Any/All
SELECT ProductName
FROM Products
WHERE ProductID
= ANY (SELECT ProductID FROM OrderDetails WHERE Quantity = 10);
SELECT ProductName
FROM Products
WHERE ProductID
= ALL (SELECT ProductID FROM OrderDetails WHERE Quantity = 10);

Operador Like
-- Finds any values that starts with "a"
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';
-- Finds any values that ends with "a"
SELECT * FROM Customers
WHERE CustomerName LIKE '%a';
-- Finds any values that have "or" in any position
SELECT * FROM Customers
WHERE CustomerName LIKE '%or%';
-- Finds any values that have "r" in the second position
SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';
-- Finds any values that starts with "a" and are at least 3 characters
in length
SELECT * FROM Customers
WHERE CustomerName LIKE 'a_%_%';
-- Finds any values that starts with "a" and ends with "o"
SELECT * FROM Customers
WHERE ContactName LIKE 'a%o';
--Finds any values that NOT starts with "a":
SELECT * FROM Customers
WHERE CustomerName NOT LIKE 'a%';

Operador In
SELECT * FROM Customers
WHERE Country IN ('Germany', 'France', 'UK');
SELECT * FROM Customers
WHERE Country NOT IN ('Germany', 'France', 'UK');
SELECT * FROM Customers
WHERE Country IN (SELECT Country FROM Suppliers);

Operador Between
SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;
SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;
SELECT * FROM Products
WHERE (Price BETWEEN 10 AND 20)
AND NOT CategoryID IN (1,2,3);
SELECT * FROM Products
WHERE ProductName BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di
Giovanni'
ORDER BY ProductName;
SELECT * FROM Products
WHERE ProductName NOT BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di
Giovanni'
ORDER BY ProductName;
SELECT * FROM Orders
WHERE OrderDate BETWEEN #07/04/1996# AND #07/09/1996#;

Alias
SELECT CustomerID as ID, CustomerName AS Customer
FROM Customers;
SELECT CustomerName AS Customer, ContactName AS [Contact Person]
FROM Customers;
SELECT CustomerName, Address + ', ' + PostalCode + ' ' + City + ',
' + Country AS Address
FROM Customers;

SELECT o.OrderID, o.OrderDate, c.CustomerName


FROM Customers AS c, Orders AS o
WHERE c.CustomerName="Around the
Horn" AND c.CustomerID=o.CustomerID;
O
SELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName
FROM Customers, Orders
WHERE Customers.CustomerName="Around the
Horn" AND Customers.CustomerID=Orders.CustomerID;
Joins
Different Types of SQL JOINs

Here are the different types of the JOINs in SQL:

(INNER) JOIN: Returns records that have matching values in both tables

LEFT (OUTER) JOIN: Return all records from the left table, and the matched records
from the right table

RIGHT (OUTER) JOIN: Return all records from the right table, and the matched
records from the left table

FULL (OUTER) JOIN: Return all records when there is a match in either left or right
table

/*Inner Join*/
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName
FROM ((Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID)
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);
/*Left Join*/
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;
/*Right Join*/
SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;
/*Full Join*/
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
--Se puede poner solo FULL JOIN

Union
SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
SELECT 'Customer' As Type, ContactName, City, Country
FROM Customers
UNION
SELECT 'Supplier', ContactName, City, Country
FROM Suppliers;

Vistas
CREATE VIEW vw_Names
As
Select ProductName, Price FROM Products;
Go
SELECT*FROM vw_Names;

Procedimiento almacenado
/* La siguiente instruccin crea un procedimiento almacenado denominado pr_Names,
acepta un parmetro de entrada denominado @VarPrice del tipo de datos money. El
procedimiento almacenado imprime la instruccin Products less than concatenada con el
parmetro de entrada que cambia del tipo de datos money a un tipo de datos de
carcter varchar (10). A continuacin, el procedimiento ejecuta una instruccin SELECT en
la vista y le pasa el parmetro de entrada como parte de la clusula WHERE. Esto devuelve
todos los productos cuyo costo es menor que el valor del parmetro de entrada. */
CREATE PROCEDURE pr_Names @VarPrice money
AS
BEGIN
-- The print statement returns text to the user
PRINT 'Products less than ' + CAST(@VarPrice AS varchar(10));
-- A second statement starts here
SELECT ProductName, Price FROM vw_Names
WHERE Price < @varPrice;
END
GO
/*Para probar el procedimiento almacenado, escriba y ejecute la instruccin siguiente. El
procedimiento debe devolver los nombres de dos productos introducidos en la
tabla Products en la leccin 1 con un precio menor que 10.00. */
Exec pr_Names 10.00;

Referencia:
https://www.w3schools.com/sql/default.asp

También podría gustarte