Sunteți pe pagina 1din 14

Create Database

CREATE DATABASE databasename;

Drop Database

DROP DATABASE databasename;

Create table

CREATE TABLE Persons (PersonID int constraint, LastName varchar(255));

CREATE FROM ANOTHER TABLE

CREATE TABLE new_table_name AS


SELECT column1, column2,...
FROM existing_table_name
WHERE ....;

The following constraints are commonly used in SQL:

 NOT NULL - Ensures that a column cannot have a NULL value


 UNIQUE - Ensures that all values in a column are different
 PRIMARY KEY - A combination of a NOT NULL and UNIQUE. Uniquely
identifies each row in a table
 FOREIGN KEY - Uniquely identifies a row/record in another table
 CHECK - Ensures that all values in a column satisfies a specific condition
 DEFAULT - Sets a default value for a column when no value is specified
 INDEX - Used to create and retrieve data from the database very quickly

DROP TABLE

DROP TABLE table_name;

TRUNCATE TABLE

TRUNCATE TABLE table_name;

ALTER TABLE

ADD

ALTER TABLE table_name


ADD column_name datatype;

DROP

ALTER TABLE table_name


DROP COLUMN column_name;

MODIFY(ALTER)

ALTER TABLE table_name


ALTER COLUMN column_name datatype;
CONSTRAINT

CREATE

UNIQUE & NOT NULL

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)
);

ALTER

ALTER TABLE Persons


ADD UNIQUE (ID);

ALTER TABLE Persons


ADD CONSTRAINT UC_Person UNIQUE (ID,LastName);

DROP

ALTER TABLE Persons


DROP CONSTRAINT UC_Person;

PRIMARY KEY

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)
);
ALTER TABLE Persons
ADD PRIMARY KEY (ID);

ALTER TABLE Persons


ADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName);

ALTER TABLE Persons


DROP CONSTRAINT PK_Person;

FORIGN KEY

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)
);

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;
CHECK CONSTRAINT

CREATE TABLE Persons (


ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int CHECK (Age>=18)
);

CREATE TABLE Persons (


ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255),
CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes')
);
ALTER TABLE Persons
ADD CHECK (Age>=18);

ALTER TABLE Persons


ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');

ALTER TABLE Persons


DROP CONSTRAINT CHK_PersonAge;

DEFAULT

CREATE TABLE Persons (


ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255) DEFAULT 'Sandnes'
);

ALTER TABLE Persons


ALTER COLUMN City SET DEFAULT 'Sandnes';

ALTER TABLE Persons


ALTER COLUMN City DROP DEFAULT;

INDEX

CREATE INDEX idx_lastname


ON Persons (LastName);

CREATE INDEX idx_pname


ON Persons (LastName, FirstName);

DROP INDEX table_name.index_name;

AUTO INCREMENT NUMBER

CREATE TABLE Persons (


ID int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);

INSERT INTO Persons (FirstName,LastName)


VALUES ('Lars','Monsen');
SQL Server comes with the following data types for storing a date or a
date/time value in the database:

 DATE - format YYYY-MM-DD


 DATETIME - format: YYYY-MM-DD HH:MI:SS
 SMALLDATETIME - format: YYYY-MM-DD HH:MI:SS
 TIMESTAMP - format: a unique number

VIEW

CREATE VIEW [CurrentProductList] AS


SELECT ProductID, ProductName
FROM Products
WHERE Discontinued = No;

CREATE OR REPLACE VIEW [CurrentProductList] AS


SELECT ProductID, ProductName, Category
FROM Products
WHERE Discontinued = No;

DROP VIEW view_name;

INSERT INTO

INSERT INTO table_name (column1, column2, column3, ...)


VALUES (value1, value2, value3, ...);

UPDATE

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

DELETE

DELETE FROM table_name


WHERE condition;

DELETE FROM table_name;

DELETE * FROM table_name;

-PTO-
SELECT QUERY
SELECT * FROM Customers;

SELECT CustomerName, City FROM Customers;

DISTINCT

SELECT DISTINCT Country FROM Customers;

SELECT COUNT(DISTINCT Country) FROM Customers;

SELECT Count(*) AS DistinctCountries


FROM (SELECT DISTINCT Country FROM Customers);

WHERE

SELECT * FROM Customers


WHERE Country='Mexico';

The following operators can be used in the WHERE clause:

Operator Description

= Equal

<> Not equal. Note: In some versions of SQL this operator may
be written as !=

> Greater than

< Less than

>= Greater than or equal

<= Less than or equal

BETWEEN Between an inclusive range

LIKE Search for a pattern

IN To specify multiple possible values for a column


AND OR NOT

SELECT * FROM Customers


WHERE Country='Germany' AND (City='Berlin' OR City='München');

SELECT * FROM Customers


WHERE NOT Country='Germany' AND NOT Country='USA';

ORDER BY

SELECT * FROM Customers


ORDER BY Country ASC, CustomerName DESC;

NULL VALUE

SELECT column_names
FROM table_name
WHERE column_name IS NULL;

SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;

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 * FROM Customers


WHERE Country='Germany'
LIMIT 3;

SELECT * FROM Customers


WHERE Country='Germany' AND ROWNUM <= 3;

MIN MAX

SELECT MIN(Price) AS SmallestPrice


FROM Products;

SELECT MAX(Price) AS LargestPrice


FROM Products;
COUNT AVG SUM

SELECT COUNT(ProductID)
FROM Products;

SELECT AVG(Price)
FROM Products;

SELECT SUM(Quantity)
FROM OrderDetails;

LIKE

SELECT * FROM Customers


WHERE CustomerName LIKE 'a%';

LIKE Operator Description

WHERE CustomerName LIKE 'a%' Finds any values that starts with "a"

WHERE CustomerName LIKE '%a' Finds any values that ends with "a"

WHERE CustomerName LIKE '%or%' Finds any values that have "or" in any position

WHERE CustomerName LIKE '_r%' Finds any values that have "r" in the second
position

WHERE CustomerName LIKE Finds any values that starts with "a" and are
'a_%_%' at least 3 characters in length

WHERE ContactName LIKE 'a%o' Finds any values that starts with "a" and ends
with "o"
WILD CARD

SELECT * FROM Customers


WHERE City LIKE '%es%';

SELECT * FROM Customers


WHERE City LIKE '_erlin';

SELECT * FROM Customers


WHERE City LIKE 'L_n_on';

//STARTS FROM B OR S OR P

SELECT * FROM Customers


WHERE City LIKE '[bsp]%';

SELECT * FROM Customers


WHERE City LIKE '[a-c]%';
SELECT * FROM Customers
WHERE City LIKE '[!bsp]%';

SELECT * FROM Customers


WHERE City NOT LIKE '[bsp]%';

IN

SELECT * FROM Customers


WHERE Country IN ('Germany', 'France', 'UK');

SELECT * FROM Customers


WHERE Country IN (SELECT Country FROM Suppliers);

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 NOT BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'
ORDER BY ProductName;

ALIAS

SELECT column_name AS alias_name


FROM table_name;

SELECT column_name(s)
FROM table_name AS alias_name;

SELECT CustomerName, Address + ', ' + PostalCode + ' ' + City + ', ' +
Country AS Address
FROM Customers;

SELECT CustomerName, CONCAT(Address,', ',PostalCode,', ',City,',


',Country) AS Address
FROM Customers;
JOIN

INNER JOIN

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate


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 OR FULL OUTER JOIN

SELECT Customers.CustomerName, Orders.OrderID


FROM Customers
FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

SELF JOIN

CROSS JOIN

SELECT A.CustomerName AS CustomerName1,


B.CustomerName AS CustomerName2, A.City
FROM Customers A, Customers B

EQUI JOIN

SELECT A.CustomerName AS CustomerName1,


B.CustomerName AS CustomerName2, A.City
FROM Customers A, Customers B
WHERE A.City = B.City

NON EQUI JOIN

SELECT A.CustomerName AS CustomerName1,


B.CustomerName AS CustomerName2, A.City
FROM Customers A, Customers B
WHERE A.CustomerID <> B.CustomerID
AND A.City = B.City
ORDER BY A.City;

UNION

SELECT City FROM Customers


UNION
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;
UNION ALL

SELECT City FROM Customers


UNION ALL
SELECT City FROM Suppliers
ORDER BY City;

SELECT City, Country FROM Customers


WHERE Country='Germany'
UNION ALL
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;

GROUP BY

SELECT COUNT(CustomerID), Country


FROM Customers
GROUP BY Country;

SELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrders FROM Ord


ers
LEFT JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID
GROUP BY ShipperName;

HAVING

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;

EXIST

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

SELECT SupplierName
FROM Suppliers
WHERE EXISTS (SELECT ProductName FROM Products WHERE SupplierId =
Suppliers.supplierId AND Price = 22);
ANY OR ALL

SELECT ProductName
FROM Products
WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity
= 10);

SELECT ProductName
FROM Products
WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity
> 99);

SELECT ProductName
FROM Products
WHERE ProductID = ALL (SELECT ProductID FROM OrderDetails WHERE Quantity
= 10);

SELECT INTO

SELECT * INTO CustomersBackup2017


FROM Customers;

SELECT * INTO CustomersBackup2017 IN 'Backup.mdb'


FROM Customers;

SELECT CustomerName, ContactName INTO CustomersBackup2017


FROM Customers;

SELECT Customers.CustomerName, Orders.OrderID


INTO CustomersOrderBackup2017
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

INSERT INTO SELECT

INSERT INTO Customers (CustomerName, City, Country)


SELECT SupplierName, City, Country FROM Suppliers;

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


PostalCode, Country)
SELECT SupplierName, ContactName, Address, City,
PostalCode, Country FROM Suppliers;

INSERT INTO Customers (CustomerName, City, Country)


SELECT SupplierName, City, Country FROM Suppliers
WHERE Country='Germany';
SQL IFNULL(), ISNULL(), COALESCE(), and NVL() Functions

The SQL Server ISNULL() function lets you return an alternative value when an
expression is NULL:

SELECT ProductName, UnitPrice * (UnitsInStock + ISNULL(UnitsOnOrder, 0))


FROM Products

--Select all:
/*Select all the columns
of all the records
in the Customers table:*/
SELECT * FROM Customers WHERE (CustomerName LIKE 'L%'
OR CustomerName LIKE 'R%' /*OR CustomerName LIKE 'S%'
OR CustomerName LIKE 'T%'*/ OR CustomerName LIKE 'W%')
AND Country='USA'
ORDER BY CustomerName;

S-ar putea să vă placă și