You are on page 1of 57

Alapok

2017. április 8. 14:25

Structured Query Language Databese-->Tables-->rows/columns

Primary key : unique value, never NULL

Alapok – 1. lap
Alap utasítások
2017. április 8. 14:28

SHOW SELECT oszlop FROM táblanév SELECT City FROM customers;


több is lehet ','-vel elválasztva SELECT customers.City FROM customers;
SHOW DATABASES SELECT * FROM táblanév
SHOW TABLES asterisk(*) = all
SHOW COLUMNS FROM táblanév SELECT * FROM *

SHOW COLUMNS FROM táblanév


Field: column name LIMIT
Type: data type SELECT oszlop FROM tábla LIMIT szám
Key: primary key/index csak a szám db. sor mutatása (pl 5nél az első 5 sor)
Default: alap érték (pl.:NULL) SELECT oszlop FROM tábla LIMIT szám-tól,számig
Extra: + info
SELECT oszlop FROM tábla WHERE ROWNUM <= 10;

DISTINCT
SELECT DISTINCT oszlop FROM tábla
only unique records (halmaz)

ORDER BY
SELECT * FROM tábla ORDER BY oszlop ASD/DSC;
ASD is main
SELECT * FROM tábla ORDER BY oszlop,oszlop2

Alapok – 2. lap
Jelölések
2017. április 8. 14:28

all = *
valami több és 0 = %
valami 1 = _
(keresésénél ha csak részletet tudunk, akkor kell a % és az _)

Alapok – 3. lap
Comment
2017. április 21. 17:23

-- --Ez egy sql comment

Alapok – 4. lap
Where
2017. április 8. 15:30

SELECT * FROM tábla WHERE oszlop = 7 OR AND : T & T = T Egyenlő =


SELECT * FROM tábla WHERE oszlop BETWEEN 3 AND 7 OR: F & F = F
SELECT * FROM tábla WHERE oszlop = 'Szentendre' T&T=T IN: = = T Nem e. !=
SELECT * FROM tábla WHERE oszlop = 7 OR oszlop = 9 T&F=T NOT: != = T nagyobb >
SELECT * FROM tábla WHERE City= 'Szentendre' AND (Age = 10 OR Age = 20) F&T=T
kissebb <
SELECT * FROM tábla WHERE Age IN (10,20) F&F=F
SELECT * FROM tábla WHERE Age NOT IN (5,15) na. egyenlő >=
ki. egyenlő <=
között BETWEEN

Filtering^JFunctions – 5. lap
Custom Columns
2017. április 8. 15:45

SELECT CONCAT(oszlop1, ',' ,oszlop3) FROM tabla


SELECT CONCAT(oszlop1, ',' ,oszlop3) AS újoszlopneve FROM tabla

Filtering^JFunctions – 6. lap
Érték változtatás kiírásnál
2017. április 8. 15:48

SELECT oszlop1,oszlop2+100 AS oszlop2 FROM tabla


az oszlop2 értéke a kiírtnál 100-al kissebb

Filtering^JFunctions – 7. lap
Functions
2017. április 8. 15:50

UPPER/LOWER

SELECT UPPER(oszlop1) AS oszlop1 FROM tábla

Gyök
SELECT oszlop, SQRT(oszlop) AS gyökoszlop FROM tábla
Átlag
SELECT oszlop, AVG(oszlop) AS gyökoszlop FROM tábla
Össz:
SELECT oszlop, SUM(oszlop) AS gyökoszlop FROM tábla
Legkisebb:
SELECT MIN(oszlop) AS oszlop FROM tabla

Filtering^JFunctions – 8. lap
Allista (subquery)
2017. április 8. 17:08

SELECT AVG(oszlop) FROM tabla


SELECT oszlop FROM tabla WHERE oszlop > 2000 ORDER BY oszlop DESC

SELECT oszlop FROM tabla WHERE oszlop > (SELECT AVG(oszlop) FROM tabla) ORDER BY oszlop DESC

Filtering^JFunctions – 9. lap
Adott értékrész
2017. április 8. 17:13

SELECT *FROM tabla WHERE oszlop LIKE 'A%'


SELECT *FROM tabla WHERE oszlop LIKE 'A%s'
SELECT *FROM tabla WHERE oszlop LIKE 'A_'

Filtering^JFunctions – 10. lap


COUNT
2017. április 21. 15:18

SELECT Count(*) AS DistinctCountries


FROM (SELECT DISTINCT Country FROM Customers);

Filtering^JFunctions – 11. lap


ORDER BY
2017. április 21. 15:18

SELECT * FROM Customers SELECT * FROM Customers


ORDER BY Country, CustomerName; ORDER BY Country ASC, CustomerName DESC;

Filtering^JFunctions – 12. lap


NULL
2017. április 21. 15:18

SELECT column_names
FROM table_name
WHERE column_name IS NULL;

SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;

Filtering^JFunctions – 13. lap


TOP
2017. április 21. 15:21

SELECT TOP 3 * FROM Customers;

SELECT * FROM Customers LIMIT 3;

SELECT * FROM Customers WHERE ROWNUM <= 3;

Filtering^JFunctions – 14. lap


MIN/MAX
2017. április 21. 15:23

SELECT MIN(column_name)
FROM table_name
WHERE condition;

SELECT MAX(column_name)
FROM table_name
WHERE condition;

Filtering^JFunctions – 15. lap


COUNT/AVG/SUM
2017. április 21. 15:23

SELECT COUNT(column_name) SELECT AVG(column_name) SELECT SUM(column_name)


FROM table_name FROM table_name FROM table_name
WHERE condition; WHERE condition; WHERE condition;

SELECT Count(*) AS DistinctCountries


FROM (SELECT DISTINCT Country FROM
Customers);

Filtering^JFunctions – 16. lap


LIKE
2017. április 21. 15:25

SELECT column1, column2, ...


FROM table_name
WHERE columnN LIKE pattern;

SELECT * FROM Customers


WHERE CustomerName LIKE 'a%';

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 'a_%_%' Finds any values that starts with "a" and min 3 characters length
WHERE ContactName LIKE 'a%o' Finds any values that starts with "a" and ends with "o"

Filtering^JFunctions – 17. lap


IN
2017. április 21. 15:31

SELECT column_name(s) SELECT * FROM Customers


FROM table_name WHERE Country NOT IN ('Germany', 'France', 'UK');
WHERE column_name IN (value1, value2, ...);

SELECT column_name(s)
FROM table_name SELECT * FROM Customers
WHERE column_name IN (SELECT STATEMENT); WHERE Country IN (SELECT Country FROM Suppliers);

Filtering^JFunctions – 18. lap


BETWEEN
2017. április 21. 16:42

SELECT column_name(s) SELECT * FROM Products


FROM table_name WHERE Price NOT BETWEEN 10 AND 20;
WHERE column_name BETWEEN value1 AND value2;

Filtering^JFunctions – 19. lap


Alias (custom column,table)
2017. április 21. 16:42

SELECT column_name AS alias_name SELECT column_name(s)


FROM table_name; FROM table_name AS alias_name;

SELECT Orders.OrderID, Orders.OrderDate,


SELECT CustomerName AS Customer, ContactName AS Customers.CustomerName
[Contact Person] FROM Customers, Orders
FROM Customers; WHERE Customers.CustomerName="Around the Horn"
AND Customers.CustomerID=Orders.CustomerID;
[] kell ha a névben space van
=(+alias)

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


SELECT CustomerName, CONCAT(Address,', FROM Customers AS c, Orders AS o
',PostalCode,', ',City,', ',Country) AS Address WHERE c.CustomerName="Around the Horn" AND
FROM Customers; c.CustomerID=o.CustomerID;

Filtering^JFunctions – 20. lap


JOIN
2017. április 21. 16:47

SELECT Orders.OrderID, Customers.CustomerName,


Orders.OrderDate
FROM Orders
INNER JOIN Customers ON
Orders.CustomerID=Customers.CustomerID;

SQL JOIN types:


(INNER) JOIN csak a közös rész
LEFT (OUTER) JOIN első tábla + a közös
RIGHT (OUTER) JOIN második tábla+ a közös
FULL (OUTER) JOIN első+második+közös

Filtering^JFunctions – 21. lap


INNER JOIN
2017. április 21. 16:52

SELECT column_name(s) SELECT Orders.OrderID, Customers.CustomerName


FROM table1 FROM Orders
INNER JOIN table2 ON table1.column_name = INNER JOIN Customers ON Orders.CustomerID =
table2.column_name; Customers.CustomerID;

Filtering^JFunctions – 22. lap


LEFT JOIN
2017. április 21. 16:52

SELECT column_name(s) SELECT Customers.CustomerName, Orders.OrderID


FROM table1 FROM Customers
LEFT JOIN table2 ON table1.column_name = LEFT JOIN Orders ON Customers.CustomerID =
table2.column_name; Orders.CustomerID
ORDER BY Customers.CustomerName;

Filtering^JFunctions – 23. lap


RIGHT JOIN
2017. április 21. 16:52

SELECT column_name(s) SELECT Orders.OrderID, Employees.LastName,


FROM table1 Employees.FirstName
RIGHT JOIN table2 ON table1.column_name = FROM Orders
table2.column_name; RIGHT JOIN Employees ON Orders.EmployeeID =
Employees.EmployeeID
ORDER BY Orders.OrderID;

Filtering^JFunctions – 24. lap


FULL OUTER JOIN
2017. április 21. 16:53

SELECT column_name(s) SELECT Customers.CustomerName, Orders.OrderID


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

Filtering^JFunctions – 25. lap


Self JOIN
2017. április 21. 16:55

SELECT column_name(s) SELECT A.CustomerName AS CustomerName1,


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

Filtering^JFunctions – 26. lap


UNION
2017. április 21. 16:57

NO DUPLICATE: SELECT City FROM Customers


UNION
SELECT column_name(s) FROM table1 SELECT City FROM Suppliers
UNION ORDER BY City;
SELECT column_name(s) FROM table2;

DUPLICATES: SELECT City, Country FROM Customers


WHERE Country='Germany'
SELECT column_name(s) FROM table1 UNION ALL
UNION ALL SELECT City, Country FROM Suppliers
SELECT column_name(s) FROM table2; WHERE Country='Germany'
ORDER BY City;

Filtering^JFunctions – 27. lap


GROUP BY
2017. április 21. 17:00

SELECT column_name(s) SELECT COUNT(CustomerID), Country


FROM table_name FROM Customers
WHERE condition GROUP BY Country
GROUP BY column_name(s) ORDER BY COUNT(CustomerID) DESC;
ORDER BY column_name(s);

SELECT Shippers.ShipperName, COUNT(Orders.OrderID)


AS NumberOfOrders FROM Orders
LEFT JOIN Shippers ON Orders.ShipperID =
Shippers.ShipperID
GROUP BY ShipperName;

Filtering^JFunctions – 28. lap


HAVING
2017. április 21. 17:09

SELECT column_name(s) SELECT COUNT(CustomerID), Country


FROM table_name FROM Customers
WHERE condition GROUP BY Country
GROUP BY column_name(s) HAVING COUNT(CustomerID) > 5;
HAVING condition
ORDER BY column_name(s);

SELECT COUNT(CustomerID), Country


FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5
ORDER BY COUNT(CustomerID) DESC;

Filtering^JFunctions – 29. lap


EXISTS
2017. április 21. 17:10

true/false

SELECT column_name(s) SELECT SupplierName


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

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

Filtering^JFunctions – 30. lap


ANY/ALL
2017. április 21. 17:11

SELECT ProductName
SELECT column_name(s) FROM Products
FROM table_name WHERE ProductID = ANY (SELECT ProductID FROM
WHERE column_name operator ANY OrderDetails WHERE Quantity = 10);
(SELECT column_name FROM table_name WHERE condition);

operator : =, <>, !=, >, >=, <, <=

SELECT column_name(s) SELECT ProductName


FROM table_name FROM Products
WHERE column_name operator ALL WHERE ProductID = ALL (SELECT ProductID FROM
(SELECT column_name FROM table_name WHERE OrderDetails WHERE Quantity = 10);
condition);

Filtering^JFunctions – 31. lap


INTO
2017. április 21. 17:14

Új tábla az adatbázisban: Új tábla egy másik adatbázisba:


SELECT column1, column2, column3, ...
INTO newtable [IN externaldb] SELECT * INTO CustomersBackup2017 SELECT * INTO CustomersBackup2017 IN 'Backup.mdb'
FROM oldtable FROM Customers; FROM Customers;
WHERE condition;

Csak bizonyos oszlopok:

SELECT CustomerName, ContactName INTO


CustomersBackup2017
Új üres tábla, egy másik oszlopaival: FROM Customers;

SELECT * INTO newtable Több tábla:


FROM oldtable
WHERE 1 = 0; SELECT Customers.CustomerName, Orders.OrderID
INTO CustomersOrderBackup2017
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID =
Orders.CustomerID;

Filtering^JFunctions – 32. lap


INSERT INTO SELECT
2017. április 21. 17:21

Másol minden oszlop új tábla: INSERT INTO Customers (CustomerName, City, Country)
SELECT SupplierName, City, Country FROM Suppliers;
INSERT INTO table2
SELECT * FROM table1
WHERE condition;

Csak pár oszlop: INSERT INTO Customers (CustomerName, ContactName,


Address, City, PostalCode, Country)
INSERT INTO table2 (column1, column2, column3, ...) SELECT SupplierName, ContactName, Address, City,
SELECT column1, column2, column3, ... PostalCode, Country FROM Suppliers;
FROM table1
WHERE condition;
INSERT INTO Customers (CustomerName, City, Country)
SELECT SupplierName, City, Country FROM Suppliers
WHERE Country='Germany';

Filtering^JFunctions – 33. lap


JOIN
2017. április 8. 17:19

SELECT tabla1.oszlop1,tabla1.oszlop2,tabla2.oszlop1 FROM tabla1,tabla2 WHERE tabla1.oszlop1 = tabla2.oszlop1 ORDER


BY tabla1.oszlop1;

table "nicknames"

SELECT t1.oszlop1,t1.oszlop2,t1.oszlop1 FROM tabla1 AS t1 ,tabla2 AS t2 WHERE t1.oszlop1 = t2.oszlop1


ORDER BY t1.oszlop1;

INNER JOIN (a két tábla metszetét adja vissza)


SELECT tabla1.oszlop1,tabla1.oszlop2,tabla2.oszlop1 FROM tabla1 INNER JOIN tabla2
ON tabla1.oszlop1 = tabla2.oszlop1

LEFT OUTER JOIN (a tabla 1-et teljesen vissza adja, közös ponttól függetlenül (tehát a 2. oszlopban az RIGHT OUTER JOIN
első oszlop párja lehet NULL) SELECT
SELECT tabla1.oszlop1,tabla1.oszlop2,tabla2.oszlop1 FROM tabla1 LEFT OUTER JOIN tabla2 tabla1.oszlop1,tabla1.oszlop2,tabla2.oszlop1
ON tabla1.oszlop1 = tabla2.oszlop1 FROM tabla1 RIGHT OUTER JOIN tabla2
ON tabla1.oszlop1 = tabla2.oszlop1

Táblák – 34. lap


UNION
2017. április 8. 17:35

UNION = több adat egybe, duplikáció nincs SELECT oszlopok FROM tabla1
UNION ALL = több adat egybe, duplikáció lehet UNION
SELECT oszlopok FROM tabla2;

A táblák oszlopneveinek egyezniük kell (ha valahol több van akkor a párja
(NULL) SELECT oszlop1,oszlop2,oszlop3 FROM tabla1
UNION
SELECT oszlop1,oszlop2,NULL FROM tabla2;

Táblák – 35. lap


INSERT
2017. április 8. 17:55

Sor hozzáadására

INSERT INTO tabla VALUES ('8','Mr','Joe','35)


A sorrendnek meg kell egyeznie a tabla oszlopainak sorrendjével
a végéről kihagyott elemek autómatikusan default/null értéket kapnak
INSERT INTO tabla (oszlop1,o2,o3,o4) VALUES ('8','Mr','Joe','35)

Táblák – 36. lap


UPDATE
2017. április 8. 18:10

UPDATE tabla SET oszlop=500 WHERE oszlop=1;


UPDATE tabla SET oszlop3=500, o1 = 'Many' WHERE oszlop=1;

Táblák – 37. lap


DELETE
2017. április 8. 18:12

DELETE FROM tabla WHERE condition


DELETE FROM tabla
minde adat törlődik

Táblák – 38. lap


CREATE
2017. április 8. 18:13

CREATE TABLE tabla(name tipus(hossz),name tipus(hossz));

CREATE TABLE tabla(id int,name varchar(100), PRIMARY KEY(id));

constrains id int NOT NULL AUTO_INCREMENT,PRIMARY KEY(id)


az AUTO_INCREMENT folyamatos egyedülálló értéket generál
NOT NULL nem lehet null értékű
UNIQUE nem lehet duplikált érték
PRIMARY KEY unique index
CHECK value is valid and not from logical expression
DEFAULT ha úk sor berakása közben nem adunk meg értéket, ez lesz alapból a mezőben

Táblák – 39. lap


Data Types
2017. április 8. 18:15

Numeric Date and Time String

INT DATE CHAR(M)


FLOAT(M,D) YYYY-MM-DD length
M: megjelenítés hossza DATETIME VARCHAR(M)
D: törtrész hossza YYYY-MM-DD HH:MM:SS BLOB
DOUBLE(M,D) TIMESTAMP Binary Large Objects
calculated from 1970 01 01 midnight store large amount of data
TIME pic,vid,other files
HH:MM:SS TEXT
large amount of text data

Táblák – 40. lap


Tábla módosítása
2017. április 8. 18:27

ALTER TABLE

ALTER TABLE tabla ADD nev tipus;


van alap értéke (most NULL)
ALTER TABLE tabla DROP nev;
törlés
DROP TABLE tabla;
tabla törlés
ALTER TABLE tabla CHANGE regioszlopnev újoszlopnev tipus;
oszlopnév változtatás
RENAME TABLE tabla TO tabla_new
táblanév változtatás

Táblák – 41. lap


View
2017. április 8. 18:32

külső megjelenítés, ami nem engedi a felhasználóknak a háttér megtekintését

CREATE VIEW viewnev AS SELECT columns FROM table WHERE condition;

CREATE VIEW list AS SELECT oszlop1,oszlop2 FROM table; SELECT * FROM list;

frissítés: törlés:

CREATE OR REPLACE VIEW list AS SELECT oszlop1,oszlop2,oszlop3 FROM table; DROP VIEW list

Táblák – 42. lap


DROP
2017. április 21. 15:18

DROP DATABASE databasename;

Táblák – 43. lap


Aggregate Functions
2017. április 21. 17:27

AVG() Returns the average value


COUNT() Returns the number of rows
FIRST() Returns the first value * only MS access
LAST() Returns the last value * only MS access
MAX() Returns the largest value
MIN() Returns the smallest value
ROUND() Rounds a numeric field to the number of decimals specified
SUM() Returns the sum

Functions – 44. lap


AVG
2017. április 21. 17:30

SELECT AVG(column_name) FROM table_name SELECT ProductName, Price FROM Products


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

Functions – 45. lap


COUNT
2017. április 21. 17:32

SELECT COUNT(column_name) FROM table_name; SELECT COUNT(CustomerID) AS OrdersFromCustomerID7


FROM Orders
WHERE CustomerID=7;

SELECT COUNT(*) FROM table_name;


SELECT COUNT(*) AS NumberOfOrders FROM Orders;

SELECT COUNT(DISTINCT column_name) FROM SELECT COUNT(DISTINCT CustomerID) AS


table_name; NumberOfCustomers FROM Orders;

Functions – 46. lap


MAX/MIN
2017. április 21. 17:36

SELECT MAX(column_name) FROM table_name; SELECT MAX(Price) AS


HighestPrice FROM Products;

SELECT MIN(column_name) FROM table_name; SELECT MIN(Price) AS


HighestPrice FROM Products;

Functions – 47. lap


ROUND
2017. április 21. 17:37

SELECT ProductName, ROUND(Price,0) AS RoundedPrice


SELECT ROUND(column_name,decimals) FROM table_name; FROM Products;

Functions – 48. lap


SUM
2017. április 21. 17:39

SELECT SUM(column_name) FROM table_name; SELECT SUM(Quantity) AS TotalItemsOrdered


FROM OrderDetails;

Functions – 49. lap


String Functions
2017. április 21. 17:40

CHARINDEX Searches an expression in a string expression and returns its starting position if found
CONCAT()
LEFT()
LEN() / LENGTH() Returns the length of the value in a text field
LOWER() / LCASE() Converts character data to lower case
LTRIM()
SUBSTRING() / MID() Extract characters from a text field
PATINDEX()
REPLACE()
RIGHT()
RTRIM()
UPPER() / UCASE() Converts character data to upper case

Functions – 50. lap


LEN
2017. április 21. 17:42

Érték hossza
SELECT CustomerName,LEN(Address) as LengthOfAddress
SELECT LEN(column_name) FROM table_name; FROM Customers;

Functions – 51. lap


LCASE
2017. április 21. 17:43

SELECT LCASE(column_name) FROM table_name; SELECT LCASE(CustomerName) AS Customer, City


FROM Customers;

Functions – 52. lap


UCASE
2017. április 21. 17:44

SELECT UCASE(column_name) FROM table_name; SELECT UCASE(CustomerName) AS Customer, City


FROM Customers;

Functions – 53. lap


MID
2017. április 21. 17:44

szövegrész kivágására (substring) SELECT MID(City,1,4) AS ShortCity


FROM Customers;
SELECT MID(column_name,start,length) AS some_name FROM
table_name;
SELECT MID(City,3) AS ShortCity
FROM Customers;

Functions – 54. lap


Date/Time Functions
2017. április 21. 17:48

SQL datatypes: SELECT * FROM Orders WHERE OrderDate='2008-11-11'


DATE - format YYYY-MM-DD
DATETIME - format: YYYY-MM-DD HH:MI:SS
TIMESTAMP - format: YYYY-MM-DD HH:MI:SS
YEAR - format YYYY or YY

NOW() Returns the current date and time


CURDATE() Returns the current date
CURTIME() Returns the current time
DATE() Extracts the date part of a date or date/time expression

EXTRACT() Returns a single part of a date/time


DATE_ADD() Adds a specified time interval to a date
DATE_SUB() Subtracts a specified time interval from a date

DATEDIFF() Returns the number of days between two dates

DATE_FORMAT() Displays date/time data in different formats

Functions – 55. lap


NOW
2017. április 21. 17:52

NOW() SELECT NOW(),CURDATE(),CURTIME()

CREATE TABLE Orders


(
OrderId int NOT NULL,
ProductName varchar(50) NOT NULL,
OrderDate datetime NOT NULL DEFAULT NOW(),
PRIMARY KEY (OrderId)
)

Functions – 56. lap


CURDATE()
2017. április 21. 17:52

CURDATE() SELECT NOW(),CURDATE(),CURTIME()

CREATE TABLE Orders


(
OrderId int NOT NULL,
ProductName varchar(50) NOT NULL,
OrderDate datetime NOT NULL DEFAULT
CURRENT_TIMESTAMP,
PRIMARY KEY (OrderId)
)

Functions – 57. lap

You might also like