Monday, December 25, 2017

Kumpulan beberapa syntac dasar SQL

SELECT Syntax

Example

SELECT column_name,column_name
FROM table_name;
and
SELECT * FROM table_name;


SELECT Column Example

Example

SELECT CustomerName,City FROM Customers;


SELECT * Example

Example

SELECT * FROM Customers;


SELECT DISTINCT Syntax

Example

SELECT DISTINCT column_name,column_name
FROM table_name;


SELECT DISTINCT Example

Example

SELECT DISTINCT City FROM Customers;


SQL WHERE Syntax

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;


WHERE Clause Example

Example

SELECT * FROM Customers
WHERE Country='Mexico';


Text Fields vs. Numeric Fields

Example

SELECT * FROM Customers
WHERE CustomerID=1;


SELECT DISTINCT Example

Example

SELECT DISTINCT City FROM Customers;


AND Operator Exampl

Example

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


OR Operator Example

Example

SELECT * FROM Customers
WHERE City='Berlin'
OR City='München';


Combining AND & OR

Example

SELECT * FROM Customers
WHERE Country='Germany'
AND (City='Berlin' OR City='München');


ORDER BY Example

Example

SELECT * FROM Customers
ORDER BY Country;


ORDER BY DESC Example

Example

SELECT * FROM Customers
ORDER BY Country DESC;


ORDER BY Several Columns Example

Example

SELECT * FROM Customers
ORDER BY Country, CustomerName;


ORDER BY Several Columns Example 2

Example

SELECT * FROM Customers
ORDER BY Country ASC, CustomerName DESC;


INSERT INTO Example

Example

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


Insert Data Only in Specified Columns

Example

INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal', 'Stavanger', 'Norway');


SQL UPDATE Statement

Example

Change the value of the "City" column of a record in the "Customers" table:
UPDATE Customers
SET City='Hamburg'
WHERE CustomerID=1;


UPDATE Multiple Columns

Example

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


UPDATE Multiple Records

Example

UPDATE Customers
SET ContactName='Juan'
WHERE Country='Mexico';


Update Warning!

Example

UPDATE Customers
SET ContactName='Juan';


SQL DELETE Example

Example

DELETE FROM Customers
WHERE CustomerName='Alfreds Futterkiste' AND ContactName='Maria Anders';


Delete All Data

Example

DELETE FROM table_name;


or


DELETE * FROM table_name;


SQL Injection Based on 1=1 is Always True

Server Result

Example

SELECT * FROM Users WHERE UserId = 105 or 1=1;

Example

The SQL statement above is much the same as this:
SELECT UserId, Name, Password FROM Users WHERE UserId = 105 or 1=1;




SQL Injection Based on ""="" is Always True

Here is a common construction, used to verify user login to a web site:
User Name:John Doe
Password:myPass

server Code

uName = getRequestString("UserName");
uPass = getRequestString("UserPass");


Example
'SELECT * FROM Users WHERE Name ="' + uName + '" AND Pass ="' + uPass + '"'

Result

SELECT * FROM Users WHERE Name ="John Doe" AND Pass ="myPass"

User Name: " or ""="
Password: " or ""="


The code at the server will create a valid SQL statement like this:

Result

SELECT * FROM Users WHERE Name ="" or ""="" AND Pass ="" or ""="";


SQL Injection Based on Batched SQL Statements

Most databases support batched SQL statement, separated by semicolon.

Example

SELECT * FROM Users; DROP TABLE Suppliers


And the following input:
User id:
105; DROP TABLE Suppliers
The code at the server would create a valid SQL statement like this:

Result

SELECT * FROM Users WHERE UserId = 105; DROP TABLE Suppliers;


Parameters for Protection

ASP.NET Razor Example

txtUserId = getRequestString("UserId");
txtSQL = "SELECT * FROM Users WHERE UserId = @0";
db.Execute(txtSQL,txtUserId);
Note that parameters are represented in the SQL statement by a @ marker.
The SQL engine checks each parameter to ensure that it is correct for its column and are treated literally, and not as part of the SQL to be executed.

Another Example

txtNam = getRequestString("CustomerName");
txtAdd = getRequestString("Address");
txtCit = getRequestString("City");
txtSQL = "INSERT INTO Customers (CustomerName,Address,City) Values(@0,@1,@2)";
db.Execute(txtSQL,txtNam,txtAdd,txtCit);

Examples

The following examples shows how to build parameterized queries in some common web languages.
SELECT STATEMENT IN ASP.NET:
txtUserId = getRequestString("UserId");
sql = "SELECT * FROM Customers WHERE CustomerId = @0";
command = new SqlCommand(sql);
command.Parameters.AddWithValue("@0",txtUserID);
command.ExecuteReader();
or
INSERT INTO STATEMENT IN ASP.NET:
txtNam = getRequestString("CustomerName");
txtAdd = getRequestString("Address");
txtCit = getRequestString("City");
txtSQL = "INSERT INTO Customers (CustomerName,Address,City) Values(@0,@1,@2)";
command = new SqlCommand(txtSQL);
command.Parameters.AddWithValue("@0",txtNam);
command.Parameters.AddWithValue("@1",txtAdd);
command.Parameters.AddWithValue("@2",txtCit);
command.ExecuteNonQuery();
or
INSERT INTO STATEMENT IN PHP:
$stmt = $dbh->prepare("INSERT INTO Customers (CustomerName,Address,City)
VALUES (:nam, :add, :cit)");
$stmt->bindParam(':nam', $txtNam);
$stmt->bindParam(':add', $txtAdd);
$stmt->bindParam(':cit', $txtCit);
$stmt->execute();


The SQL SELECT TOP Clause

SQL Server / MS Access Syntax

Example

SELECT TOP number|percent column_name(s)
FROM table_name;


SQL SELECT TOP Equivalent in MySQL and Oracle

MySQL Syntax

Example

SELECT column_name(s)
FROM table_name
LIMIT number;

Example

SELECT *
FROM Persons
LIMIT 5;

Oracle Syntax

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;

Example

SELECT *
FROM Persons
WHERE ROWNUM <=5;


SQL SELECT TOP Example

Example

SELECT TOP 2 * FROM Customers;


SQL SELECT TOP PERCENT Example

Example

SELECT TOP 50 PERCENT * FROM Customers;


SQL LIKE Syntax

Example

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;


SQL LIKE Operator Examples

The following SQL statement selects all customers with a City starting with the letter "s":

Example

SELECT * FROM Customers
WHERE City LIKE 's%';

Example

SELECT * FROM Customers
WHERE City LIKE '%s';

Example

SELECT * FROM Customers
WHERE Country LIKE '%land%';

Example

SELECT * FROM Customers
WHERE Country NOT LIKE '%land%';


Using the SQL % Wildcard

Example

SELECT * FROM Customers
WHERE City LIKE 'ber%';

Example

SELECT * FROM Customers
WHERE City LIKE '%es%';


Using the SQL _ Wildcard

Example

SELECT * FROM Customers
WHERE City LIKE '_erlin';

Example

SELECT * FROM Customers
WHERE City LIKE 'L_n_on';


Using the SQL [charlist] Wildcard

The following SQL statement selects all customers with a City starting with "b", "s", or "p":

Example

SELECT * FROM Customers
WHERE City LIKE '[bsp]%';

Example

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

Example

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

Example

SELECT * FROM Customers
WHERE City NOT LIKE '[bsp]%';


IN Operator Example

Example

SELECT * FROM Customers
WHERE City IN ('Paris','London');


BETWEEN Operator Example

The following SQL statement selects all products with a price BETWEEN 10 and 20:

Example

SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;


NOT BETWEEN Operator Example

To display the products outside the range of the previous example, use NOT BETWEEN:

Example

SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;


BETWEEN Operator with IN Example

Example

SELECT * FROM Products
WHERE (Price BETWEEN 10 AND 20)
AND NOT CategoryID IN (1,2,3);


BETWEEN Operator with Text Value Example

Example

SELECT * FROM Products
WHERE ProductName BETWEEN 'C' AND 'M';


NOT BETWEEN Operator with Text Value Example

Example

SELECT * FROM Products
WHERE ProductName NOT BETWEEN 'C' AND 'M';


BETWEEN Operator with Date Value Example

Example

SELECT * FROM Orders
WHERE OrderDate BETWEEN #07/04/1996# AND #07/09/1996#;

Alias Example for Table Columns

Example

SELECT CustomerName AS Customer, ContactName AS [Contact Person]
FROM Customers;

Example

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


Alias Example for Tables

Example

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;

Example

SELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName
FROM Customers, Orders
WHERE Customers.CustomerName="Around the Horn" AND Customers.CustomerID=Orders.CustomerID;


SQL JOIN

Example

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;

SQL INNER JOIN Syntax

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;
or:
SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;


SQL INNER JOIN Example

The following SQL statement will return all customers with orders:

Example

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

SQL LEFT JOIN Syntax

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;
or:
SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;


SQL LEFT JOIN Example

The following SQL statement will return all customers, and any orders they might have:

Example

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;


SQL RIGHT JOIN Keyword

SQL RIGHT JOIN Syntax

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;
or:
SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;


SQL RIGHT JOIN Example

The following SQL statement will return all employees, and any orders they have placed:

Example

SELECT Orders.OrderID, Employees.FirstName
FROM Orders
RIGHT JOIN Employees
ON Orders.EmployeeID=Employees.EmployeeID
ORDER BY Orders.OrderID;


SQL FULL OUTER JOIN Keyword

SQL FULL OUTER JOIN Syntax

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;


SQL FULL OUTER JOIN Example

The following SQL statement selects all customers, and all orders:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;


The SQL UNION Operator

SQL UNION Syntax

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;


SQL UNION ALL Syntax

SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;


SQL UNION Example

Example

SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;


SQL UNION ALL Example

Example

SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;


SQL UNION ALL With WHERE

Example

SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;


SQL SELECT INTO Syntax

Example

SELECT *
INTO newtable [IN externaldb]
FROM table1;

Example

SELECT column_name(s)
INTO newtable [IN externaldb]
FROM table1;


SQL SELECT INTO Examples

Example

SELECT *
INTO CustomersBackup2013
FROM Customers;

Example

SELECT *
INTO CustomersBackup2013 IN 'Backup.mdb'
FROM Customers;

Example

SELECT CustomerName, ContactName
INTO CustomersBackup2013
FROM Customers;

Example

SELECT *
INTO CustomersBackup2013
FROM Customers
WHERE Country='Germany';

Example

SELECT Customers.CustomerName, Orders.OrderID
INTO CustomersOrderBackup2013
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID=Orders.CustomerID;

Example

SELECT *
INTO newtable
FROM table1
WHERE 1=0;


SQL INSERT INTO SELECT Syntax

Example

INSERT INTO table2
SELECT * FROM table1;

Example

INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;


SQL INSERT INTO SELECT Examples

Example

INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers;

Example

INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers
WHERE Country='Germany';

SQL CREATE DATABASE Syntax

CREATE DATABASE dbname;


SQL CREATE DATABASE Example

The following SQL statement creates a database called "my_db":
CREATE DATABASE my_db;


SQL CREATE TABLE Syntax

CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);


SQL CREATE TABLE Example

Example

CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);


SQL CREATE TABLE + CONSTRAINT Syntax

Example

CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);


SQL NOT NULL Constraint

Example

CREATE TABLE PersonsNotNull
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);


SQL UNIQUE Constraint on CREATE TABLE

SQL Server / Oracle / MS Access:

Example

CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);


MySQL:Example
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
);


MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
);


SQL UNIQUE Constraint on ALTER TABLE



MySQL / SQL Server / Oracle / MS Access:

Example

ALTER TABLE Persons
ADD UNIQUE (P_Id);




MySQL / SQL Server / Oracle / MS Access:

Example

ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName);


To DROP a UNIQUE Constraint

MySQL:
ALTER TABLE Persons
DROP INDEX uc_PersonID
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID;


SQL PRIMARY KEY Constraint on CREATE TABLE



MySQL:Example
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
);


SQL Server / Oracle / MS Access:Example
CREATE TABLE Persons
(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);


MySQL / SQL Server / Oracle / MS Access:Example
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
);


SQL PRIMARY KEY Constraint on ALTER TABLE



MySQL / SQL Server / Oracle / MS Access:Example
ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)


MySQL / SQL Server / Oracle / MS Access:Example
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName);




To DROP a PRIMARY KEY Constraint

MySQL:Example
ALTER TABLE Persons
DROP PRIMARY KEY
SQL Server / Oracle / MS Access:Example
ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID

SQL FOREIGN KEY Constraint on CREATE TABLE

MySQL:Example
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
);


SQL Server / Oracle / MS Access:Example
CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)
To allow naming of a FOREIGN KEY constraint, and for defining a FOREIGN KEY constraint on multiple columns, use the following SQL syntax:
MySQL / SQL Server / Oracle / MS Access:Example
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
);


SQL FOREIGN KEY Constraint on ALTER TABLE

To create a FOREIGN KEY constraint on the "P_Id" column when the "Orders" table is already created, use the following SQL:
MySQL / SQL Server / Oracle / MS Access:Example
ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
To allow naming of a FOREIGN KEY constraint, and for defining a FOREIGN KEY constraint on multiple columns, use the following SQL syntax:
MySQL / SQL Server / Oracle / MS Access:Example
ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)


To DROP a FOREIGN KEY Constraint

To drop a FOREIGN KEY constraint, use the following SQL:
MySQL:Example
ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders
SQL Server / Oracle / MS Access:Example
ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders;


SQL CHECK Constraint on CREATE TABLE

The following SQL creates a CHECK constraint on the "P_Id" column when the "Persons" table is created. The CHECK constraint specifies that the column "P_Id" must only include integers greater than 0.
MySQL:Example
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (P_Id>0)
)
SQL Server / Oracle / MS Access:Example
CREATE TABLE Persons
(
P_Id int NOT NULL CHECK (P_Id>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
To allow naming of a CHECK constraint, and for defining a CHECK constraint on multiple columns, use the following SQL syntax:
MySQL / SQL Server / Oracle / MS Access:Example
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
)


SQL CHECK Constraint on ALTER TABLE

To create a CHECK constraint on the "P_Id" column when the table is already created, use the following SQL:
MySQL / SQL Server / Oracle / MS Access:Example
ALTER TABLE Persons
ADD CHECK (P_Id>0)
To allow naming of a CHECK constraint, and for defining a CHECK constraint on multiple columns, use the following SQL syntax:
MySQL / SQL Server / Oracle / MS Access:Example
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')


To DROP a CHECK Constraint

To drop a CHECK constraint, use the following SQL:
SQL Server / Oracle / MS Access:Example
ALTER TABLE Persons
DROP CONSTRAINT chk_Person
MySQL:
ALTER TABLE Persons
DROP CHECK chk_Person;


SQL DEFAULT Constraint on CREATE TABLE

The following SQL creates a DEFAULT constraint on the "City" column when the "Persons" table is created:
My SQL / SQL Server / Oracle / MS Access:Example
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)
The DEFAULT constraint can also be used to insert system values, by using functions like GETDATE():
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
OrderDate date DEFAULT GETDATE()
);


SQL DEFAULT Constraint on ALTER TABLE

To create a DEFAULT constraint on the "City" column when the table is already created, use the following SQL:
MySQL:Example
ALTER TABLE Persons
ALTER City SET DEFAULT 'SANDNES'
SQL Server / MS Access:Example
ALTER TABLE Persons
ALTER COLUMN City SET DEFAULT 'SANDNES'
Oracle:Example
ALTER TABLE Persons
MODIFY City DEFAULT 'SANDNES'


To DROP a DEFAULT Constraint

To drop a DEFAULT constraint, use the following SQL:
MySQL:Example
ALTER TABLE Persons
ALTER City DROP DEFAULT;


SQL Server / Oracle / MS Access:Example
ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT;


SQL CREATE INDEX Syntax

Creates an index on a table. Duplicate values are allowed:
CREATE INDEX index_name
ON table_name (column_name);


SQL CREATE UNIQUE INDEX Syntax

Creates a unique index on a table. Duplicate values are not allowed:
CREATE UNIQUE INDEX index_name
ON table_name (column_name)
Note: The syntax for creating indexes varies among different databases. Therefore: Check the syntax for creating indexes in your database.


CREATE INDEX Example

The SQL statement below creates an index named "PIndex" on the "LastName" column in the "Persons" table:
CREATE INDEX PIndex
ON Persons (LastName)
If you want to create an index on a combination of columns, you can list the column names within the parentheses, separated by commas:
CREATE INDEX PIndex
ON Persons (LastName, FirstName);


DROP INDEX Syntax for MS Access:Example

DROP INDEX index_name ON table_name;


DROP INDEX Syntax for MS SQL Server:Example

DROP INDEX table_name.index_name;


DROP INDEX Syntax for DB2/Oracle:Example

DROP INDEX index_name;


DROP INDEX Syntax for MySQL:

ALTER TABLE table_name DROP INDEX index_name


The DROP TABLE Statement

Example

DROP TABLE table_name


The DROP DATABASE Statement

Example

DROP DATABASE database_name


The TRUNCATE TABLE Statement

Example

TRUNCATE TABLE table_name;


SQL ALTER TABLE Syntax

Example

ALTER TABLE table_name
ADD column_name datatype
To delete a column in a table, use the following syntax (notice that some database systems don't allow deleting a column):
ALTER TABLE table_name
DROP COLUMN column_name
To change the data type of a column in a table, use the following syntax:


SQL Server / MS Access:

Example

ALTER TABLE table_name
ALTER COLUMN column_name datatype;


My SQL / Oracle (prior version 10G):

Example

ALTER TABLE table_name
MODIFY COLUMN column_name datatype
Oracle 10G and later:

Example

ALTER TABLE table_name
MODIFY column_name datatype


Change Data Type Example

Example

ALTER TABLE Persons
ALTER COLUMN DateOfBirth year

Example



DROP COLUMN Example

Example

ALTER TABLE Persons
DROP COLUMN DateOfBirth;


Syntax for MySQL

Example

CREATE TABLE Persons
(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (ID)
)

Example

ALTER TABLE Persons AUTO_INCREMENT=100
To insert a new record into the "Persons" table, we will NOT have to specify a value for the "ID" column (a unique value will be added automatically):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
The SQL statement above would insert a new record into the "Persons" table. The "ID" column would be assigned a unique value. The "FirstName" column would be set to "Lars" and the "LastName" column would be set to "Monsen".


Syntax for SQL Server

Example

CREATE TABLE Persons
(
ID int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);


Syntax for Access

Example

CREATE TABLE Persons
(
ID Integer PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);


Syntax for Oracle

Example

CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10

SQL CREATE VIEW Syntax

CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition;


SQL CREATE VIEW Examples

Example

CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No

Example

SELECT * FROM [Current Product List]

Example

CREATE VIEW [Products Above Average Price] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)

Example

SELECT * FROM [Products Above Average Price]

Example

CREATE VIEW [Category Sales For 1997] AS
SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
FROM [Product Sales for 1997]
GROUP BY CategoryName

Example

SELECT * FROM [Category Sales For 1997]

Example

SELECT * FROM [Category Sales For 1997]
WHERE CategoryName='Beverages'




SQL CREATE OR REPLACE VIEW Syntax

Example

CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

Example

CREATE OR REPLACE VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
WHERE Discontinued=No


SQL DROP VIEW Syntax

DROP VIEW view_name;


SQL Working with Dates

SELECT * FROM Orders WHERE OrderDate='2008-11-11';


Example

SELECT * FROM Orders WHERE OrderDate='2008-11-11';


SQL IS NULL

Example

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NULL;


SQL IS NOT NULL

Example

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NOT NULL;


SQL ISNULL(), NVL(), IFNULL() and COALESCE() Functions

Example

SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)
FROM Products;


MS Access
SELECT ProductName,UnitPrice*(UnitsInStock+IIF(ISNULL(UnitsOnOrder),0,UnitsOnOrder))
FROM Products;


SQL Server
SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products;


Oracle

Example

SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products;


MySQL

Example

SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products
or we can use the COALESCE() function, like this:
SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Products


Single Line Comments

Example

A single-line comment as an explanation:
--Select all:
SELECT * FROM Customers;

Example

A single-line comment to ignore the end of a line:
SELECT * FROM Customers -- WHERE City='Berlin';

Example

A single-line comment to ignore a statement:
--SELECT * FROM Customers;
SELECT * FROM Products;


Multi-line Comments

Example

A multi-line comment as an explanation:
/*Select all the columns
of all the records
in the Customers table:*/
SELECT * FROM Customers;

Example

A multi-line comment to ignore many statements:
/*SELECT * FROM Customers;
SELECT * FROM Products;
SELECT * FROM Orders;
SELECT * FROM Categories;*/
SELECT * FROM Suppliers;


Comments in Statements

Example

Ignore part of a line:
SELECT CustomerName, /*City,*/ Country FROM Customers;

Example

Ignore parts of a statment:
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;


The AVG() Function

Example

SELECT AVG(column_name) FROM table_name;


SQL AVG() Example

Example

SELECT AVG(Price) AS PriceAverage FROM Products;

Example

SELECT ProductName, Price FROM Products
WHERE Price>(SELECT AVG(Price) FROM Products);


SQL COUNT(column_name) Syntax

Example

SELECT COUNT(column_name) FROM table_name;


SQL COUNT(*) Syntax

Example

SELECT COUNT(*) FROM table_name;


SQL COUNT(DISTINCT column_name) Syntax

Example

SELECT COUNT(DISTINCT column_name) FROM table_name;


SQL COUNT(column_name) Example

Example

SELECT COUNT(CustomerID) AS OrdersFromCustomerID7 FROM Orders
WHERE CustomerID=7;


SQL COUNT(*) Example

Example

SELECT COUNT(*) AS NumberOfOrders FROM Orders;


SQL COUNT(DISTINCT column_name) Example

Example

SELECT COUNT(DISTINCT CustomerID) AS NumberOfCustomers FROM Orders;


SQL FIRST() Syntax

SELECT FIRST(column_name) FROM table_name;
Note: The FIRST() function is only supported in MS Access.


SQL Server Syntax

Example

SELECT TOP 1 column_name FROM table_name
ORDER BY column_name ASC;

Example

SELECT TOP 1 CustomerName FROM Customers
ORDER BY CustomerID ASC;

MySQL Syntax

Example

SELECT column_name FROM table_name
ORDER BY column_name ASC
LIMIT 1;

Example

SELECT CustomerName FROM Customers
ORDER BY CustomerID ASC
LIMIT 1;


Oracle Syntax

Example

SELECT column_name FROM table_name
WHERE ROWNUM <=1
ORDER BY column_name ASC;

Example

SELECT CustomerName FROM Customers
WHERE ROWNUM <=1
ORDER BY CustomerID ASC;


SQL FIRST() Example

Example

SELECT FIRST(CustomerName) AS FirstCustomer FROM Customers;


SQL LAST() Syntax

Example

SELECT LAST(column_name) FROM table_name;


SQL Server Syntax

Example

SELECT TOP 1 column_name FROM table_name
ORDER BY column_name DESC;


Example

SELECT TOP 1 CustomerName FROM Customers
ORDER BY CustomerID DESC;


MySQL Syntax

Example

SELECT column_name FROM table_name
ORDER BY column_name DESC
LIMIT 1;


Example

SELECT CustomerName FROM Customers
ORDER BY CustomerID DESC
LIMIT 1;


Oracle Syntax

Example

SELECT column_name FROM table_name
ORDER BY column_name DESC
WHERE ROWNUM <=1;

Example

SELECT CustomerName FROM Customers
ORDER BY CustomerID DESC
WHERE ROWNUM <=1;


SQL LAST() Example

Example

SELECT LAST(CustomerName) AS LastCustomer FROM Customers;


SQL MAX() Syntax

Example

SELECT MAX(column_name) FROM table_name;


SQL MIN() Syntax

Example

SELECT MIN(column_name) FROM table_name;


SQL MIN() Example

Example

SELECT MIN(Price) AS SmallestOrderPrice FROM Products;


SQL SUM() Syntax

Example

SELECT SUM(column_name) FROM table_name;

Example

SELECT SUM(Quantity) AS TotalItemsOrdered FROM OrderDetails;


SQL GROUP BY Syntax

Example

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

Example

SELECT Shippers.ShipperName,COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders
LEFT JOIN Shippers
ON Orders.ShipperID=Shippers.ShipperID
GROUP BY ShipperName;


SQL HAVING Syntax

Example

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value;

Example

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;

Example

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;


SQL UCASE() Syntax

Example

SELECT UCASE(column_name) FROM table_name;


Syntax for SQL Server

Example

SELECT UPPER(column_name) FROM table_name;

Example

SELECT UCASE(CustomerName) AS Customer, City
FROM Customers;


SQL LCASE() Syntax

Example

SELECT LCASE(column_name) FROM table_name;


Syntax for SQL Server

Example

SELECT LOWER(column_name) FROM table_name;

Example

SELECT LCASE(CustomerName) AS Customer, City
FROM Customers;


SQL MID() Syntax

Example

SELECT MID(column_name,start,length) AS some_name FROM table_name;

Example

SELECT SUBSTRING(column_name,start,length) AS some_name FROM table_name;

Example

SELECT SUBSTR(column_name,start,length) AS some_name FROM table_name;


SQL MID() Example

Example

SELECT MID(City,1,4) AS ShortCity
FROM Customers;


SQL LEN() Syntax

Example

SELECT LEN(column_name) FROM table_name;


Syntax for Oracle

Example

SELECT LENGTH(column_name) FROM table_name;

Example

SELECT CustomerName,LEN(Address) as LengthOfAddress
FROM Customers;


SQL ROUND() Syntax

Example

SELECT ROUND(column_name,decimals) FROM table_name;

Example

SELECT ProductName, ROUND(Price,0) AS RoundedPrice
FROM Products;

Example

SELECT ProductName, Price, Now() AS PerDate
FROM Products;


SQL FORMAT() Syntax

Example

SELECT FORMAT(column_name,format) FROM table_name;

Example

SELECT ProductName, Price, FORMAT(Now(),'YYYY-MM-DD') AS PerDate
FROM Products;