Cau Lenh Truy Van SQL

Embed Size (px)

Citation preview

  • SQL Tutorial

    Dng Thin T 1

    Welcome to SQL tutorial

    Mc lc

    SQL cn bn Gii thiu SQL M t th no l SQL, cch dng SQL. SQL Select Cch dng pht biu SELECT chn d liu t mt bng trong SQL. SQL Where Cch dng mnh WHERE ch nh tiu chun chn. SQL And & Or Cch dng AND v OR kt ni hai hay nhiu iu kin trong mnh WHERE. SQL Between Cch dng BETWEEN....AND tm d liu trong mt khong gii hn. SQL Distinct Cch dng t kha DISTINCT ch tr v cc tr khc nhau trong mt ct. SQL Order By Cch dng t kha ORDER BY tr v cc hng c sp xp theo mt th t nh trc. SQL Insert Cch dng pht biu INSERT chn hng mi vo trong mt bng. SQL Update Cch dng pht biu UPDATE cp nht hay thay i cc hng trong mt bng. SQL Delete Cch dng pht biu DELETE xa cc hng trong mt bng. SQL Count Gii thch cc hm COUNT to sn trong SQL.

    SQL nng cao Cc hm SQL Gii thch cch dng cc hm to sn trong SQL. SQL Group By Gii thch cch dng hm GROUP BY to sn trong SQL. Cc b danh SQL Gii thch cch dng cc b danh (alias) cho cc tn ct v cc tn bng. SQL Join Gii thch cch chn thng tin t nhiu bng. SQL Create Cch to cc c s d liu v cc bng, v cch xa chng. SQL Alter Cch dng pht biu ALTER TABLE thm hay loi cc ct trong mt bng cho trc.

    Gii thiu SQL

    SQL l mt ngn ng theo chun ANSI truy xut cc c s d liu.

    SQL l g?

    SQL l Structured Query Language Ngn ng Truy vn c Cu trc SQL cho php bn truy xut mt c s d liu SQL l mt ng theo chun ANSI SQL c th thc hin cc truy vn n mt c s d liu SQL c th truy tm d liu t mt c s d liu SQL c th chn cc mu tin mi vo trong mt c s d liu SQL c th xa cc mu tin trong mt c s d liu

  • SQL Tutorial

    Dng Thin T 2

    SQL c th cp nht cc mu tin trong mt c s d liu SQL rt d hc

    SQL l mt chun SQL l mt chun ANSI (American National Standards Institute - Vin Tiu chun Quc gia M) cho cc h thng truy xut c s d liu. Cc pht biu SQL dng truy tm v cp nht d liu trong mt c s d liu. SQL lm vic vi cc trnh qun l c s d liu nh Access, DB2, Informix, Microsoft SQL Server, Oracle, Sybase, v nhiu trnh khc (ng tic l a s trong chng c cc phn m rng ngn ng SQL ring).

    Cc bng c s d liu C s d liu cha cc i tng gi l cc Bng (Tables). Cc Mu tin (Records) lu trong cc bng ny. Cc bng c gi theo tn bng (nh "Persons", "Orders", "Suppliers"). Cc bng cha cc Ct (Columns) v cc Dng (Rows) d liu. Dng cha cc mu tin (nh mu tin v mt ngi). Ct cha d liu (nh First Name, Last Name, Address, v City). Mt v d l bng "Persons" sau: LastName FirstName Address City Hansen Ola Timoteivn 10 Sandnes Svendson Tove Borgvn 23 Sandnes Pettersen Kari Storgt 20 Stavanger LastName, FirstName, Address, v City l cc ct ca bng. Cc dng cha ba mu tin ca 3 ngi.

    Cc truy vn SQL Vi SQL, chng ta c th truy vn mt c s d liu v nhn c mt kt qu tr v vi dng bng. Mt truy vn ging nh sau: SELECT LastName FROM Persons S tr v mt kt qu ging nh sau: LastName Hansen Svendson Pettersen Ch : Vi h c s d liu cn mt du ; cui pht biu SQL. Chng ta khng dng du ; trong bi vit ny.

    Thao tc d liu SQL SQL l mt c php thc hin cc truy vn. Nhng ngn ng SQL cng cha cc c php cp nht cc mu tin (record), chn cc mu tin mi v xa cc mu tin ang tn ti. Cc lnh truy vn v cp nht ny thuc dng Ngn ng Thao tc D liu (Data Manipulation Language - DML) mt phn ca SQL:

    SELECT trch d liu t mt c s d liu UPDATE cp nht d liu trong mt c s d liu DELETE xa d liu t mt c s d liu INSERT chn d liu mi vo trong mt c s d liu

    nh ngha d liu SQL Ngn ng nh ngha D liu (Data Definition Language - DDL) mt phn ca SQL, cho php to hay xa cc bng c s d liu. Chng ta cng c th nh ngha cc ch mc (cc kha - key), ch nh lin kt gia cc bng, v rng but gia cc bng c s d liu. Cc pht biu DDL quan trng nht trong SQL l::

    CREATE TABLE to mt bng c s d liu mi ALTER TABLE thay i (alters) mt bng c s d liu

  • SQL Tutorial

    Dng Thin T 3

    DROP TABLE xa mt bng c s d liu CREATE INDEX to mt ch mc (kha tm kim) DROP INDEX xo mt ch mc

    SQL v ASP SQL l mt phn quan trng ca ASP (Active Server Pages), v ADO (Active Data Object) c dng trong ASP truy xut c s d liu, ADO da trn SQL truy xut d liu.

    Pht biu SQL Select

    Pht biu SELECT chn cc ct d liu t mt c s d liu.

    Kt qu dng bng c lu trong mt bng kt qu (gi l tp kt qu - result set).

    Pht biu SELECT Pht biu SELECT chn cc ct d liu t mt c s d liu. Dng pht biu ny chn (SELECT) thng tin t (FROM) mt bng nh sau: SELECT column_name(s) FROM table_name

    V d: Chn cc ct t mt bng chn cc ct c tn "LastName" v "FirstName", dng mt pht biu SELECT nh sau: SELECT LastName,FirstName FROM Persons Bng "Persons": LastName FirstName Address City Hansen Ola Timoteivn 10 Sandnes Svendson Tove Borgvn 23 Sandnes Pettersen Kari Storgt 20 Stavanger Kt qu: LastName FirstName Hansen Ola Svendson Tove Pettersen Kari

    V d: Chn tt c cc ct chn tt c cc ct t bng "Person", dng mt k hiu * thay th cho tn cc ct nh sau: SELECT * FROM Persons Kt qu: LastName FirstName Address City Hansen Ola Timoteivn 10 Sandnes Svendson Tove Borgvn 23 Sandnes Pettersen Kari Storgt 20 Stavanger

    Bng kt qu Kt qu t mt truy vn SQL c lu tr trong mt tp kt qu. Tp kt qu c th xem nh mt bng kt qu. a s cc

  • SQL Tutorial

    Dng Thin T 4

    trnh qun l c s d liu cho php duyt tp kt qu vi cc hm lp trnh nh: Move-To-First-Record, Get-Record-Content, Move-To-Next-Record......

    Mnh SQL Where

    Mnh WHERE dng ch nh mt tiu chun (criteria) chn.

    Mnh WHERE chn c iu kin d liu t mt bng, mt mnh WHERE c th thm vo pht biu SELECT vi c php sau: SELECT column FROM table WHERE column condition value Vi mnh WHERE, cc iu kin sau c th c dng: Operator Condition = Bng Khng bng > Ln hn < Nh hn >= Ln hn hoc bng 1965 Vit sai: SELECT * FROM Persons WHERE Year>'1965'

  • SQL Tutorial

    Dng Thin T 5

    iu kin LIKE iu kin LIKE dng ch nh vic tm mt mu trong mt ct. C php: SELECT column FROM table WHERE column LIKE pattern Mt du "%" c th dng nh k t i din (wildcards) c trc ln sau mu.

    V d: Chn trong bng Persons vi mu tn Pht biu SQL s tr v nhng ngi c firstname bt u vi mt k t 'O'. SELECT * FROM Persons WHERE FirstName LIKE 'O%' Pht biu SQl s tr v nhng ngi c firstname kt thc vi mt k t 'a'. SELECT * FROM Persons WHERE FirstName LIKE '%a' Pht biu SQL s tr v nhng ngi c firstname cha mu 'la'. SELECT * FROM Persons WHERE FirstName LIKE '%la%' Tt c cc v d trn s tr v kt qu sau: LastName FirstName Address City Year Hansen Ola Timoteivn 10 Sandnes 1951

    SQL And & Or

    AND & OR AND v OR kt ni hai hay nhiu iu kin trong mt mnh WHERE. Ton t AND hin th mt ct nu TT C cc iu kin lit k u ng. Ton t OR hin th mt ct nu MT TRONG cc iu kin lit k l ng.

    Bng gc (dng trong cc v d) LastName FirstName Address City Hansen Ola Timoteivn 10 Sandnes Svendson Tove Borgvn 23 Sandnes Svendson Stephen Kaivn 18 Sandnes

    V d Dng AND hin th ngi c firstname l "Tove", v lastname l "Svendson": SELECT * FROM Persons WHERE FirstName='Tove' AND LastName='Svendson' Kt qu: LastName FirstName Address City Svendson Tove Borgvn 23 Sandnes

    V d Dng OR hin th ngi c firstname l "Tove", hoc c lastname l "Svendson": SELECT * FROM Persons WHERE firstname='Tove' OR lastname='Svendson' Kt qu:

  • SQL Tutorial

    Dng Thin T 6

    LastName FirstName Address City Svendson Tove Borgvn 23 Sandnes Svendson Stephen Kaivn 18 Sandnes

    V d Bn cng c th dng phi hp AND v OR (dng du ngoc n bao cc biu thc phc tp): SELECT * FROM Persons WHERE (FirstName='Tove' OR FirstName='Stephen') AND LastName='Svendson' Kt qu: LastName FirstName Address City Svendson Tove Borgvn 23 Sandnes Svendson Stephen Kaivn 18 Sandnes

    SQL Between...And

    BETWEEN ... AND Ton t BETWEEN ... AND chn tt c cc tr trong khong gii hn gia hai tr. Cc tr ny c th l cc s, vn bn, hay ngy thng. SELECT column_name FROM table_name WHERE column_name BETWEEN value1 AND value2

    Bng gc (dng trong cc v d) LastName FirstName Address City Hansen Ola Timoteivn 10 Sandnes Svendson Tove Borgvn 23 Sandnes Nordmann Anna Neset 18 Sandnes Pettersen Kari Storgt 20 Stavanger

    V d 1 hin th cc tn theo th t alphabet gia hai tn (k c hai tn ny) "Hansen" v "Pettersen", dng SQL sau: SELECT * FROM Persons WHERE LastName BETWEEN 'Hansen' AND 'Pettersen' Kt qu: LastName FirstName Address City Hansen Ola Timoteivn 10 Sandnes Nordmann Anna Neset 18 Sandnes Pettersen Kari Storgt 20 Stavanger

    V d 2 hin th cc tn ngoi cc tn trong v d trn, dng ton t NOT: SELECT * FROM Persons WHERE LastName NOT BETWEEN 'Hansen' AND 'Pettersen' Kt qu:

  • SQL Tutorial

    Dng Thin T 7

    LastName FirstName Address City Svendson Tove Borgvn 23 Sandnes

    SQL Select Distinct

    T kha DISTINCT dng tr v ch cc tr khc bit (distinct).

    T kha DISTINCT Pht biu SQL SELECT tr v thng tin t cc ct ca bng. Nhng lm th no nu chng ta ch mun chn cc kt qu khng trng nhau? Vi SQL, chng ta ch cn thm vo mt t kha DISTINCT cho pht biu SELECT vI c php sau: SELECT DISTINCT column-name(s) FROM table-name

    V d: Chn tn cng ty t bng Orders V d: Bng t hng n gin: Company OrderNumber Sega 3412 W3Schools 2312 Trio 4678 W3Schools 6798 Pht biu SQL sau: SELECT Company FROM Orders S tr v kt qu: Company Sega W3Schools Trio W3Schools Ch rng cng ty W3Schools xut hin hai ln trong kt qu. i lc chng ta khng mun iu ny.

    V d: Chn tn cng ty (khng trng tn) t bng Orders Pht biu SQL sau: SELECT DISTINCT Company FROM Orders S tr v kt qu: Company Sega W3Schools Trio By gi tn cng ty W3Schools ch xut hin mt ln trong kt qu.

    SQL Order By

    T kha ORDER BY dng sp xp kt qu th t kt qu.

  • SQL Tutorial

    Dng Thin T 8

    Sp xp cc Dng Mnh ORDER BY dng sp xp cc dng. Mt s cch sp xp: Company OrderNumber Sega 3412 ABC Shop 5678 W3Schools 2312 W3Schools 6798

    V d hin th tn cng ty (Company) theo th t alphabet: SELECT Company, OrderNumber FROM Orders ORDER BY Company Kt qu: Company OrderNumber ABC Shop 5678 Sega 3412 W3Schools 6798 W3Schools 2312

    V d hin th tn cng ty (Company) theo th t alphabet, nu tn cng ty ging nhau th sp xp theo s th t (OrderNumber): SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber Kt qu: Company OrderNumber ABC Shop 5678 Sega 3412 W3Schools 2312 W3Schools 6798

    V d hin th tn cng ty (Company) theo th t alphabet o ngc (t Z n A): SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC Kt qu: Company OrderNumber W3Schools 6798 W3Schools 2312 Sega 3412 ABC Shop 5678

    SQL INSERT INTO

    Chn cc dng mi Pht biu INSERT INTO chn cc dng mi vo trong mt bng: INSERT INTO table_name VALUES (value1, value2,....)

  • SQL Tutorial

    Dng Thin T 9

    Bn c th ch nh cc ct bn mun chn chn d liu vo: INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,....)

    Chn mt dng mi Bng "Persons": LastName FirstName Address City Pettersen Kari Storgt 20 Stavanger Pht biu SQL chn vo bng trn: INSERT INTO Persons VALUES ('Hetland', 'Camilla', 'Hagabakka 24', 'Sandnes') S cho kt qu nh sau: LastName FirstName Address City Pettersen Kari Storgt 20 Stavanger Hetland Camilla Hagabakka 24 Sandnes

    Chn d liu vo trong cc ct ch nh Bng "Persons": LastName FirstName Address City Pettersen Kari Storgt 20 Stavanger Hetland Camilla Hagabakka 24 Sandnes Pht biu SQL chn d liu vo cc ct ch nh: INSERT INTO Persons (LastName, Address) VALUES ('Rasmussen', 'Storgt 67') S cho kt qu nh sau:: LastName FirstName Address City Pettersen Kari Storgt 20 Stavanger Hetland Camilla Hagabakka 24 Sandnes Rasmussen Storgt 67

    SQL Update

    Update Rows Pht biu UPDATE cp nht hoc thay i cc dng: UPDATE table_name SET column_name = new_value WHERE column_name = some_value

    Bng Person: LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger Rasmussen Storgt 67

    Cp nht mt ct trong mt dng Chng ta s thm mt first name Nina n ngi c lastname="Rasmussen":

  • SQL Tutorial

    Dng Thin T 10

    UPDATE Person SET FirstName = 'Nina' WHERE LastName = 'Rasmussen'

    Cp nht vi ct trong mt dng Chng ta s thay i a ch (Address) v thm tn thnh ph. UPDATE Person SET Address = 'Stien 12', City = 'Stavanger' WHERE LastName = 'Rasmussen' Kt qu LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger Rasmussen Nina Stien 12 Stavanger

    SQL Delete

    Xa cc ct Pht biu DELETE dng xa mt hay nhiu dng trong mt bng. DELETE FROM table_name WHERE column_name = some_value

    Bng Person: LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger Rasmussen Nina Stien 12 Stavanger

    Xa mt dng "Nina Rasmussen" s b xa: DELETE FROM Person WHERE LastName = 'Rasmussen' Kt qu LastName FirstName Address City Nilsen Fred Kirkegt 56 Stavanger

    Cc hm SQL Count

    SQL c cc hm to sn m cc mu tin c s d liu.

    C php hm Count C php ca cc hm COUNT to sn nh sau: SELECT COUNT(column) FROM table

    Hm COUNT(*) Hm COUNT(*) tr v s hng chn c trong mt php chn. Vi bng "Persons" sau:

  • SQL Tutorial

    Dng Thin T 11

    Name Age Hansen, Ola 34 Svendson, Tove 45 Pettersen, Kari 19 V d ny tr v s hng trong bng: SELECT COUNT(*) FROM Persons Kt qu: 3 V d ny tr v s ngi ln hn 20 tui: SELECT COUNT(*) FROM Persons WHERE Age>20 Kt qu: 2

    Hm COUNT(column) Hm COUNT(column) tr v s hng (ngoi tr hng c gi tr NULL) trong ct ch nh. Vi bng "Persons": Name Age Hansen, Ola 34 Svendson, Tove 45 Pettersen, Kari V d ny tm s ngi c ghi tui ti field Age trong bng "Persons": SELECT COUNT(Age) FROM Persons Kt qu: 2 Hm COUNT(column) cng dng tnh s hng khng cha tr. Ch kt qu s nh hn s hng trong bng.

    COUNT DISTINCT T kha DISTINCT vi COUNT c th dng m s kt qu khc nhau (khng trng nhau). C php nh sau: SELECT DISTINCT COUNT(column(s)) FROM table Vi bng "Orders": Company OrderNumber Sega 3412 W3Schools 2312 Trio 4678 W3Schools 6798 Vi pht biu SQL sau: SELECT COUNT(Company) FROM Orders S tr v kt qu: 4 Vi pht biu SQL sau: SELECT DISTINCT COUNT(Company) FROM Orders S tr v kt qu: 3

    Cc hm SQL

  • SQL Tutorial

    Dng Thin T 12

    SQL c mt s hm to sn m v tnh ton.

    C php dng hm C php cho cc hm SQL to sn nh sau:: SELECT function(column) FROM table

    Bng gc (dng trong cc v d) Name Age Hansen, Ola 34 Svendson, Tove 45 Pettersen, Kari 19

    Hm AVG(column) Hm AVG tr trung bnh ca d liu trong mt ct c u7c nh php chn. Cc tr NULL s khng c tnh ton. V d V d ny tr v tui trung bnh ca nhng ngi trong bng "Persons": SELECT AVG(Age) FROM Persons Kt qu 32.67 V d V d ny tr v tui trung bnh ca nhng ngi c tui ln hn 20 tui: SELECT AVG(Age) FROM Persons where Age>20 Kt qu 39.5

    Hm MAX(column) Hm MAX tr v tr ln nht trong mt ct. Cc tr NULL s khng c tnh ton. V d SELECT MAX(Age) FROM Persons Kt qu: 45

    Hm MIN(column) Hm MIN tr v tr ln nht trong mt ct. Cc tr NULL s khng c tnh ton. V d SELECT MIN(Age) FROM Persons Kt qu: 19 Ch : Cc hm MIN v MAX cng c th dng trn cc ct vn bn, tm tr ln nht v nh nht theo th t alphabet.

    Hm SUM(column) Hm SUM tng ca mt ct c c nh php chn. Cc tr NULL s khng c tnh ton. V d V d ny tr v tng s tui ca nhng ngi trong bng "Persons": SELECT SUM(Age) FROM Persons Kt qu:

  • SQL Tutorial

    Dng Thin T 13

    98 V d V d ny tr v tng s tui ca nhng ngi ln hn 20 tui. SELECT SUM(Age) FROM Persons where Age>20 Kt qu: 79

    SQL Group By v SQL Having

    Cc hm tng (nh SUM) thng km theo chc nng GROUP BY.

    T kha GROUP BY T kha GROUP BY c thm vo SQL v cc hm tng (nh SUM) tr v tng ca tt c cc tr trong ct mi khi chng ta gi n. Thiu chc nng GROUP BY, khng th tm tng ca mi nhm tr ring trong ct. C php ca GROUP BY nh sau: SELECT column,SUM(column) FROM table GROUP BY column

    V d GROUP BY Bng "Sales": Company Amount W3Schools 5500 IBM 4500 W3Schools 7100 Vi SQL: SELECT Company, SUM(Amount) FROM Sales Tr v kt qu nh sau: Company SUM(Amount) W3Schools 17100 IBM 17100 W3Schools 17100 SQL trn khng tr v tng ring bit ca tng cng ty. Dng mnh GROUP BY nh sau: SELECT Company,SUM(Amount) FROM Sales GROUP BY Company S tr v kt qu ng: Company SUM(Amount) W3Schools 12600 IBM 4500

    T kha The HAVING T kha HAVING c thm vo SQL v t kha WHERE khng th dng vi cc hm tng (nh hm SUM). Thiu t kha HAVING s khng th kim tra cc iu kin dng hm tng. C php ca HAVING nh sau: SELECT column,SUM(column) FROM table GROUP BY column HAVING SUM(column) condition value

  • SQL Tutorial

    Dng Thin T 14

    Bng "Sales": Company Amount W3Schools 5500 IBM 4500 W3Schools 7100 Vi SQL: SELECT Company,SUM(Amount) FROM Sales GROUP BY Company HAVING SUM(Amount)>10000 Tr v kt qu Company SUM(Amount) W3Schools 12600

    Cc b danh (Alias) SQL

    Vi SQL, cc b danh (alias) c th dng thay cc tn ct v cc tn bng.

    B danh tn Ct C php nh sau: SELECT column AS column_alias FROM table

    B danh tn Bng C php nh sau: SELECT column FROM table AS table_alias

    V d: Dng b danh tn Ct Bng Persons: LastName FirstName Address City Hansen Ola Timoteivn 10 Sandnes Svendson Tove Borgvn 23 Sandnes Pettersen Kari Storgt 20 Stavanger Vi SQL sau: SELECT LastName AS Family, FirstName AS Name FROM Persons S tr v kt qu sau: Family Name Hansen Ola Svendson Tove Pettersen Kari

    V d: Dng b danh tn Bng Bng Persons: LastName FirstName Address City Hansen Ola Timoteivn 10 Sandnes Svendson Tove Borgvn 23 Sandnes

  • SQL Tutorial

    Dng Thin T 15

    Pettersen Kari Storgt 20 Stavanger Vi SQL sau: SELECT LastName, FirstName FROM Persons AS Employees S tr v kt qu sau: Bng Employees: LastName FirstName Hansen Ola Svendson Tove Pettersen Kari

    SQL Join

    Joins and cc Kha (Key) i khi chng ta chn d liu t hai bng to kt qu, Chng ta thc hin mt kt ni (join). Cc bng trong c s d liu c th lin h vi cc bng khc thng qua cc kha. Mt kha chnh (primary key) l mt ct vi cc tr duy nht cho mi hng. Mc tiu l rng buc d liu, tham chiu cho cc bng, khng cn lp li tt c d liu trong tng bng. Trong bng "Employees" pha di, ct "ID" l kha chnh, ngha l ct ny khng c hai hng cng ID. ID dng phn bit hai ngi nu c hai c cng tn. Khi bn xem bng v d pha di, ch rng:

    Ct "ID" l kha chnh ca bng "Employees" Ct "ID" trong bng "Orders" dng tham chiu cc tn trong bng "Employees" khng cn a cc tn ny vo

    bng Orders

    Employees: ID Name 01 Hansen, Ola 02 Svendson, Tove 03 Svendson, Stephen 04 Pettersen, Kari Orders: ID Product 01 Printer 03 Table 03 Chair

    Tham chiu n hai Bng Chng ta c th chn d liu t hai bng bng cch tham chiu n hai bng, nh sau:

    V d Ai ng k mt sn phm v ng k sn phm no? SELECT Employees.Name, Orders.Product FROM Employees, Orders WHERE Employees.ID = Orders.ID Kt qu Name Product Hansen, Ola Printer Svendson, Stephen Table

  • SQL Tutorial

    Dng Thin T 16

    Svendson, Stephen Chair

    V d Ai ng k mt my in? SELECT Employees.Name FROM Employees, Orders WHERE Employees.ID = Orders.ID AND Orders.Product = 'Printer' Kt qu Name Hansen, Ola

    Dng cc Kt ni (Join) HOC, chng ta c th chn d liu t hai bng vi t kha JOIN, ging nh sau:

    V d INNER JOIN C php SELECT field1, field2, field3 FROM first_table INNER JOIN second_table ON first_table.keyfield = second_table.foreign_keyfield Ai ng k mt sn phm v ng k sn phm no? SELECT Employees.Name, Orders.Product FROM Employees INNER JOIN Orders ON Employees.ID = Orders.ID INNER JOIN tr v tt c cc hng t hai bng khi iu kin c so trng. Nu cc hng trong bng Employees khng so trng trong bng Orders, hng s khng c lit k ra. Kt qu Name Product Hansen, Ola Printer Svendson, Stephen Table Svendson, Stephen Chair

    V d LEFT JOIN C php SELECT field1, field2, field3 FROM first_table LEFT JOIN second_table ON first_table.keyfield = second_table.foreign_keyfield Lit k tt c nhn vin, v cc ng k mua ca h nu c. SELECT Employees.Name, Orders.Product FROM Employees LEFT JOIN Orders ON Employees.ID = Orders.ID LEFT JOIN tr v tt c cc hng t bng th nht (Employees), cho d n khng c so trng trong bng th hai (Orders). Nu cc hng trong bng Employees khng so trng trong bng Orders, nhng hng ny cng c lit k. Kt qu Name Product Hansen, Ola Printer Svendson, Tove Svendson, Stephen Table Svendson, Stephen Chair Pettersen, Kari

    V d RIGHT JOIN

  • SQL Tutorial

    Dng Thin T 17

    C php SELECT field1, field2, field3 FROM first_table RIGHT JOIN second_table ON first_table.keyfield = second_table.foreign_keyfield Lit k tt c nhn vin, v cc ng k mua ca h nu c. SELECT Employees.Name, Orders.Product FROM Employees RIGHT JOIN Orders ON Employees.ID = Orders.ID RIGHT JOIN tr v tt c cc hng t bng th hai (Orders), cho d n khng c so trng trong bng th nht (Employees). Nu c bt k hng no trong bng Orders khng c so trng trong bng Employees, cc hng ny cng c lit k. Kt qu Name Product Hansen, Ola Printer Svendson, Stephen Table Svendson, Stephen Chair

    V d Ai ng k mt my in? SELECT Employees.Name FROM Employees INNER JOIN Orders ON Employees.ID = Orders.ID WHERE Orders.Product = 'Printer' Kt qu Name Hansen, Ola

    SQL To C s d liu v Bng

    To mt C s d liu to mt c s d liu: CREATE DATABASE database_name

    To mt bng to mt bng trong mt c s d liu: CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, ....... )

    V d V d ny minh ha cc bn to mt bng tn "Person", vi bn ct tn:"LastName", "FirstName", "Address", v "Age": CREATE TABLE Person ( LastName varchar, FirstName varchar, Address varchar, Age int ) V d ny minh ha cch bn ch nh kch thc ti a ca vi ct:

  • SQL Tutorial

    Dng Thin T 18

    CREATE TABLE Person ( LastName varchar(30), FirstName varchar, Address varchar, Age int(3) ) Kiu d liu c ch nh l kiu d liu cha trong ct. Bng di cha cc kiu d liu thng gp nht trong SQL: Kiu d liu M t integer(size) int(size) smallint(size) tinyint(size)

    Ch cha s nguyn. S k t s ti a c ch nh trong du ngoc n

    decimal(size, d) numeric(size,d)

    Cha s vi phn s. S k t s ti a c ch nh trong "size". S k t s ti a bn phi (phn phn s) c ch nh trong "d"

    char(size) Cha chui c kch thc c nh (c th cha k t ch, s, v cc k t c bit). Kch thc c nh c ch nh trong du ngoc n

    varchar(size) Cha mt chui c chiu di thay i (c th cha k t ch, s, v cc k t c bit). Kch thc ti a c ch nh trong du ngoc n

    date(yyyymmdd) Cha mt ngy

    To Ch mc (Index) Ch mc c to ra trn mt bng c sn nh v thm nhanh v hiu qu cc hng. C th to mt ch mc trn mt hoc nhiu ct ca mt bng, vi mt ch mc cho mt tn. Ngi dng khng nhn thy cc ch mc, chng ch dng tng tc truy vn. Ch : Cp nht mt bng cha ch mc cn nhiu thi gian hn cp nht mt bng khng cha ch mc, v ch mc cng cn cp nht. Tuy nhin, tng tt l to ch mc ch trn cc ct thng tm kim nht. Mt Ch mc duy nht To mt ch mc duy nht trn mt bng. mt ch mc duy nht ngha l khng th c hai hng c cng mt tr ch mc. CREATE UNIQUE INDEX index_name ON table_name (column_name) "column_name" ch nh ct bn mun ch mc. Mt Ch mc n gin To mt ch mc n gin trn mt bng. Khi t kha UNIQUE khng c, cc tr trng s c cho php. CREATE INDEX index_name ON table_name (column_name) "column_name" ch nh ct bn mun ch mc.

    V d V d ny to mt ch mc n gin, c tn "PersonIndex", trn field LastName ca bng Person: CREATE INDEX PersonIndex ON Person (LastName) Nu bn mun ch mc cc tr trong mt ct theo th t gim (descending), bn c th thm t DESC sau tn ct: CREATE INDEX PersonIndex ON Person (LastName DESC) Nu bn mun ch mc nhiu hn mt ct bn c th lit k cc tn ct trong du ngoc n, tch chng bng du phy: CREATE INDEX PersonIndex ON Person (LastName, FirstName)

    Xa ch mc Bn c th xa mt ch mc c trong mt bng vi pht biu DROP. DROP INDEX table_name.index_name

    Xa mt c s d liu hoc bng xa mt c s d liu:

  • SQL Tutorial

    Dng Thin T 19

    DROP DATABASE database_name xa mt bng: DROP TABLE table_name xa ton b d liu trong bng m khng xa bng: DELETE TABLE table_name

    SQL Alter Table

    Alter Table Pht biu ALTER TABLE dng thm hay loi b cc ct trong mt bng cho trc. ALTER TABLE table_name ADD column_name datatype ALTER TABLE table_name DROP column_name

    Person: LastName FirstName Address Pettersen Kari Storgt 20

    V d thm mt ct tn "City" vo bng "Person": ALTER TABLE Person ADD City varchar(30) Kt qu: LastName FirstName Address City Pettersen Kari Storgt 20

    V d loi ct "Address" khi bng "Person": ALTER TABLE Person DROP Address Kt qu: LastName FirstName City Pettersen Kari

    Sch SQL

    Sch M t

    Teach Yourself SQL in 10 Minutes

    September 1999

    Loi sch tutorial, t chc thnh chui cc bi hc-10 pht n gin.

  • SQL Tutorial

    Dng Thin T 20

    SQL Queries for Mere Mortals

    August 2000

    Gip ngi dng mi hc c bn v cc truy vn SQL, v cung cp mt hng dn tham chiu cn thit vi ngi dng c trnh cao hn.

    SQL: The Complete Reference

    October 1999

    Cung cp tt c nhng g bn cn bit v SQL.

    Professional SQL Server 2000 Programming

    December 2000

    Cung cp mt hng dn ton din lp trnh vi SQL Server 2000.

    Professional SQL Server 7.0 Programming

    September 1999

    Cung cp tng quan v tt c cc b phn ca SQL Server.