āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™  SQL  āđ€āļšāļ·āđ‰āļ­āļ‡āļ•āđ‰āļ™ Introduction to SQL āļœāļđāđ‰āļŠāđˆāļ§āļĒāļĻāļēāļŠāļ•āļĢāļēāļˆāļēāļĢāļĒāđŒ āļ”āļĢ . āđ„āļžāļĻāļēāļĨ āļŠāļąāļ™āļ•āļīāļ˜āļĢāļĢāļĄāļ™āļ™āļ—āđŒ āļ„āļ“āļ°āļ§āļīāļĻāļ§āļāļĢāļĢāļĄāļĻāļēāļŠāļ•āļĢāđŒ āļˆāļļāļŽāļēāļĨāļ‡āļāļĢāļ“āđŒāļĄāļŦāļēāļ§āļīāļ—āļĒāļēāļĨāļąāļĒ āļ–āļ™āļ™āļžāļāļēāđ„āļ— āļ›āļ—āļļāļĄāļ§āļąāļ™ āļāļĢāļļāļ‡āđ€āļ—āļžāļŊ  10330 Email : phisan_chula@yahoo.com
SQL  āđ€āļšāļ·āđ‰āļ­āļ‡āļ•āđ‰āļ™ SELECT, WHERE, INSERT, UPDATE, DELETE
SQL  āđ€āļšāļ·āđ‰āļ­āļ‡āļ•āđ‰āļ™ āļŠāļĄāļĄāļļāļ•āļīāļ§āđˆāļēāļĄāļĩāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™āļĢāļđāļ›āđāļšāļšāļ•āļēāļĢāļēāļ‡āļŠāļ·āđˆāļ­  Prov_geo āđ€āļĨāļĒ 3 āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID
āļāļēāļĢāđ€āļĢāļĩāļĒāļāļ”āļđ  SELECT āđƒāļŠāđ‰āđ€āļĢāļĩāļĒāļāļ”āļđāļ‚āđ‰āļ­āļĄāļđāļĨāļ•āļēāļĄāđ€āļ‡āļ·āđˆāļ­āļ™āđ„āļ‚ Syntax SELECT column_name ( s )  FROM table_name   āđ€āļŠāđˆāļ™  SELECT Prov_ID, Prov_Name FROM Prov_geo āļŦāļĢāļ·āļ­  SELECT * FROM Prov_geo āļˆāļ°āđ„āļ”āđ‰  select-set  āđ€āļ›āđ‡āļ™ āđ€āļĨāļĒ 3 āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID
āļāļēāļĢāđ€āļĢāļĩāļĒāļāļ”āļđ  SELECT   āđāļšāļšāļĄāļĩāđ€āļ‡āļ·āđˆāļ­āļ™āđ„āļ‚ āđƒāļŠāđ‰āđ€āļĢāļĩāļĒāļāļ”āļđāļ‚āđ‰āļ­āļĄāļđāļĨāļ•āļēāļĄāđ€āļ‡āļ·āđˆāļ­āļ™āđ„āļ‚ Syntax SELECT column FROM table WHERE column operator value  āđ€āļŠāđˆāļ™  SELECT * FROM Prov_geo WHERE Prov_ID=2 āļŦāļĢāļ·āļ­  SELECT * FROM Prov_geo WHERE Prov_Name=‘ āļŠāļĢāļ°āļšāļļāļĢāļĩ ’ āļˆāļ°āđ„āļ”āđ‰ āļœāļĨāļĨāļąāļžāļ˜āđŒāđ€āļŦāļĄāļ·āļ­āļ™āļāļąāļ™āļ„āļ·āļ­ āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 Prov_Name Prov_ID
āļāļēāļĢāļāļĢāļ°āļ—āļģ āļ—āļĩāđˆāļĢāļ°āļšāļļāđ„āļ”āđ‰āđƒāļ™  WHERE If you know the exact value you want to return for at least one of the columns IN Search for a pattern LIKE Between an inclusive range BETWEEN Less than or equal <= Greater than or equal >= Less than < Greater than > Not equal <> Equal =
āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡  WHERE
āļāļēāļĢāđāļ—āļĢāļāļ‚āđ‰āļ­āļĄāļđāļĨ  INSERT āđƒāļŠāđ‰āđāļ—āļĢāļāļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļ‚āđ‰āļēāđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ Syntax  INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,....) āđ€āļŠāđˆāļ™  INSERT INTO Prov_geo(Prov_ID, Prov_Name) VALUES (4, “ āļ•āļĢāļąāļ‡ â€ ) āđ€āļĄāļ·āđˆāļ­āđƒāļŠāđ‰āļ„āļģāļŠāļąāđˆāļ‡āđ„āļ›āđāļĨāđ‰āļ§ āļŦāļĨāļąāļ‡āļˆāļēāļ  SELECT  āļ”āļđāļ—āļļāļāđ€āļĢāļ„āļ„āļ­āļĢāđŒāļ”āļˆāļ°āđ„āļ”āđ‰  āđ€āļĨāļĒ 3 āļ•āļĢāļąāļ‡ 4 āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID
āļāļēāļĢāđāļ—āļĢāļāļ‚āđ‰āļ­āļĄāļđāļĨ  UPDATE āđƒāļŠāđ‰āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡   attribute  āđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ Syntax  UPDATE table_name SET column_name = new_value WHERE column_name = some_value  āđ€āļŠāđˆāļ™ āļ•āđ‰āļ­āļ‡āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļŠāļ·āđˆāļ­āļˆāļąāļ‡āļŦāļ§āļąāļ”  “ āļ•āļĢāļąāļ‡ .  āđƒāļŦāđ‰āđ€āļ›āđ‡āļ™  “ āļ•āļĢāļēāļ” â€ āļ„āļģāļŠāļąāđˆāļ‡  UPDATE Prov_geo SET Prov_Name=‘ āļ•āļĢāļēāļ” â€™  WHERE Prov_ID = 4 āđ€āļĄāļ·āđˆāļ­āđƒāļŠāđ‰āļ„āļģāļŠāļąāđˆāļ‡āđ„āļ›āđāļĨāđ‰āļ§ āļŦāļĨāļąāļ‡āļˆāļēāļ  SELECT  āļ”āļđāļ—āļļāļāđ€āļĢāļ„āļ„āļ­āļĢāđŒāļ”āļˆāļ°āđ„āļ”āđ‰  āđ€āļĨāļĒ 3 āļ•āļĢāļąāļ‡ 4 āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID āđ€āļĨāļĒ 3 āļ•āļĢāļēāļ” 4 āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID
āļāļēāļĢāļĨāļšāļ‚āđ‰āļ­āļĄāļđāļĨ  DELETE āđƒāļŠāđ‰āļĨāļšāļ‚āđ‰āļ­āļĄāļđāļĨ āđ‚āļ”āļĒāļĢāļ°āļšāļļāļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļ›āđ‰āļēāļŦāļĄāļēāļĒāļ•āļēāļĄāđ€āļ‡āļ·āđˆāļ­āļ™āđ„āļ‚ Syntax DELETE FROM table_name WHERE column_name = some_value āđ€āļŠāđˆāļ™  DELETE  FROM Prov_geo WHERE ProvID=2 āļˆāļ°āđ„āļ”āđ‰āļœāļĨāļĨāļąāļžāļ˜āđŒ  select-set  āđ€āļ›āđ‡āļ™ āđ€āļĨāļĒ 3 āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID āđ€āļĨāļĒ 3 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID
āļ āļēāļĐāļē  SQL  āļ‚āļąāđ‰āļ™āļŠāļđāļ‡ SELECT INTO, CREATE, DataType, DROP, CREAT VIEW, Aggregate Functions, Math Functions, JOIN, Transaction Processing, String Pattern, Data and Time
SELECT INTO āđ€āļžāļ·āđˆāļ­āļŠāļĢāđ‰āļēāļ‡āļ•āļēāļĢāļēāļ‡āđƒāļŦāļĄāđˆ āļˆāļēāļāļāļēāļĢ  SELECT  āļ—āļĩāđˆāđ„āļ”āđ‰ SELECT column_name ( s )  INTO newtable  [ IN externaldatabase ]  FROM source
āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļ•āļēāļĢāļēāļ‡  CREATE āļŠāļĢāđ‰āļēāļ‡āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļŦāļĄāđˆ CREATE DATABASE database_name   āļŠāļĢāđ‰āļēāļ‡āļ•āļēāļĢāļēāļ‡ āļžāļĢāđ‰āļ­āļĄāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āđƒāļŦāļĄāđˆ CREATE TABLE table_name   (  column_name1 data_type,   column_name2 data_type, .......  )
āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡ āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļ•āļēāļĢāļēāļ‡āđƒāļŦāļĄāđˆ CREATE TABLE Person   (  LastName varchar ( 30 ) , FirstName varchar, Address varchar, Age int ( 3 )    )
āļŠāļ™āļīāļ”āļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ  (PostgreSQL 8.3) Bigint – int8 Bigserial – int8 autoincrementing Boolean – bool  Character varying [(n)] – varchar[(n)] Date Double precision – float8 Integer int,int4 signed 4-byte int C
āļŠāļ™āļīāļ”āļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ  (PostgreSQL 8.3) Real float4 single prec. Num Serial  serial4 autoincr. 4byte int. Text variable length string Time time of day timestamp
āļāļēāļĢāļĨāđ‰āļēāļ‡āļ—āļīāđ‰āļ‡  DROP āļĨāļšāļ•āļēāļĢāļēāļ‡āļ—āļīāđ‰āļ‡ DROP Table_name āļĨāļšāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļīāđ‰āļ‡ DROP Database_name
Aggregate Functions āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļŠāļģāļŦāļĢāļąāļšāļŠāļĢāļļāļ›āļœāļĨāļ—āļĩāđˆāđ„āļ”āđ‰āļˆāļēāļāļāļēāļĢ  SELECT āđ„āļ”āđ‰āđāļāđˆ   count(), sum(), average(), min(), max() āđ€āļŠāđˆāļ™  SELECT count(*) FROM Prov_geo āļˆāļ°āđ„āļ”āđ‰  count  āđ€āļ›āđ‡āļ™  4   āđāļĨāļ°āļĄāļĩ  select-set  āđ€āļ›āđ‡āļ™  1 row āđ€āļĨāļĒ 3 āļ•āļĢāļąāļ‡ 4 āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID
Aggregate Function DISTINCT  āđ€āļžāļ·āđˆāļ­āļ„āļąāļ”āļāļĢāļ­āļ‡āđ€āļ­āļēāđ€āļ‰āļžāļēāļ°āļ•āļąāļ§āļ—āļĩāđˆāđ„āļĄāđˆāļ‹āđ‰āļģāļĄāļēāļ„āļģāļ™āļ§āļ“āļ•āđˆāļ­ āđ€āļŠāđˆāļ™  SELECT COUNT (DISTINCT student_name ) FROM student_enroll
āļŸāļąāļ‡āļāđŒāļŠāļąāđˆāļ™āļ„āļ“āļīāļ•āļĻāļēāļŠāļ•āļĢāđŒ Abs absolute value Ceil smallest integer ceil(-42.8)    42  Floor largest integer floor(-42.8)   -43 Round(v,s) round v to s dec.places Round(42.4382,2)    42.44 Trunc(v,s) truncate v to s deci.places Trunc(42.4382,2 )    42.43
āļŸāļąāļ‡āļāđŒāļŠāļąāđˆāļ™āļ„āļ“āļīāļ•āļĻāļēāļŠāļ•āļĢāđŒ Pi() PI value Degrees(dp) rad  deg Radians(dp) deg  rad Sqrt() 1 arc second (1/3600. degree) = 30   meter Decimal point ~ 5 digit.  100.12345
JOIN āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāđ‚āļĒāļ‡āļ•āļēāļĢāļēāļ‡ āļĄāļĩāļŦāļĨāļēāļĒāļ›āļĢāļ°āđ€āļ āļ—āđƒāļŦāđ‰āđ€āļĨāļ·āļ­āļāđƒāļŠāđ‰ INNER JOIN LEFT OUTER JOIN RIGHT OUTER JOIN FULL OUTER JOIN āļ—āļĩāđˆāđƒāļŠāđ‰āļšāđˆāļ­āļĒāđāļĨāļ°āļ™āđˆāļēāļŠāļ™āđƒāļˆ  INNER JOIN  āđāļĨāļ°  LEFT JOIN
āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡  INNER JOIN
LEFT JOIN
āļŠāļ·āđˆāļ­āđ€āļ—āļĩāļĒāļšāļ‚āļ­āļ‡āļ„āļ­āļĨāļąāļĄāļ—āđŒ  (Column Aliases) āđ€āļžāļ·āđˆāļ­āļ„āļ§āļēāļĄāļŠāļ°āļ”āļ§āļāđƒāļ™āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™  SQL  āđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ—āļĩāđˆāļāļĢāļ°āļŠāļąāļš āļŠāļ·āđˆāļ­āļ„āļ§āļēāļĄāļŦāļĄāļēāļĒ āđ€āļŠāđˆāļ™  SELECT (area(the_geom)/1600.) as area_rai FROM prov_geo āļŦāļĄāļēāļĒāđ€āļŦāļ•āļļ  1600  āļ•āļēāļĢāļēāļ‡āđ€āļĄāļ•āļĢ āđ€āļ—āđˆāļēāļāļąāļš  1  āđ„āļĢ
āļŠāļ·āđˆāļ­āđ€āļ—āļĩāļĒāļšāļ‚āļ­āļ‡āļ•āļēāļĢāļēāļ‡  (Table Aliases) āđ€āļžāļ·āđˆāļ­āļ„āļ§āļēāļĄāļŠāļ°āļ”āļ§āļāđƒāļ™āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™  SQL  āđƒāļ™āļāļēāļĢāđ€āļĢāļĩāļĒāļāļŠāļ·āđˆāļ­āļ•āļēāļĢāļēāļ‡āļ—āļĩāđˆāđ„āļĄāđˆāļŠāļ·āđˆāļ­ āļŦāļĢāļ·āļ­ āļĒāļēāļ§āļĄāļēāļāđ† āđ€āļŠāđˆāļ™  SELECT p.name, p.area FROM prov_geo as p āļˆāļ°āđ€āļŦāđ‡āļ™āļ§āđˆāļēāđƒāļŠāđ‰ āļ­āļąāļāļĐāļĢ  p  āļ•āļąāļ§āđ€āļ”āļĩāļĒāļ§āđāļ—āļ™  prov_geo  āđƒāļ™āļāļēāļĢāļ­āđ‰āļēāļ‡āļ­āļīāļ‡
āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡  View āđ€āļžāļ·āđˆāļ­āđ€āļ•āļĢāļĩāļĒāļĄāļ•āļēāļĢāļēāļ‡āđƒāļŦāļĄāđˆ āđ‚āļ”āļĒāđ„āļĄāđˆāđ„āļ”āđ‰āļŠāļĢāđ‰āļēāļ‡āļ•āļēāļĢāļēāļ‡āļ‚āļķāđ‰āļ™āļĄāļē āđ€āļžāļ·āđˆāļ­āļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āđ€āļ­āļāļ āļēāļž āļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļĄāļĩāļĢāļđāļ›āđāļšāļšāļāļēāļĢāđāļŠāļ”āļ‡āļ•āļēāļĢāļēāļ‡āļ—āļĩāđˆāļ‡āđˆāļēāļĒāļ•āđˆāļ­āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰ āļ„āļĨāđ‰āļēāļĒāļāļąāļšāļāļēāļĢ  SELECT  āđ„āļ§āđ‰āļĨāđˆāļ§āļ‡āļŦāļ™āđ‰āļē āđāļĨāđ‰āļ§āļŠāļĢāđ‰āļēāļ‡āđ€āļ›āđ‡āļ™āļ•āļēāļĢāļēāļ‡āđƒāļŦāļĄāđˆ āļ‚āļķāđ‰āļ™āļ­āļĒāļđāđˆāļāļąāļš  RDBMS  āļ§āđˆāļēāļˆāļąāļ”āļāļēāļĢāđ„āļ”āđ‰āļ”āļĩāđ€āļžāļĩāļĒāļ‡āđƒāļ” āđ€āļŠāđˆāļ™ āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡  cache  āđ„āļ§āđ‰āļāđˆāļ­āļ™āđ€āļžāļ·āđˆāļ­āđ€āļžāļīāđˆāļĄāļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§ āļŦāļēāļāļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡ āļˆāļ°āļŠāļĢāđ‰āļēāļ‡āđƒāļŦāđ‰āđƒāļŦāļĄāđˆāļ—āļąāļ™āļ—āļĩ Syntax CREATE VIEW  view_name AS SELECT [â€Ķ.]
āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡  View SELECT  * FROM Prov_geo WHERE Prov_ID = 1 or Prov_ID = 2 CREATE VIEW Central_Prov AS SELECT  * FROM Prov_geo WHERE Prov_ID = 1 or Prov_ID = 2 āļ„āļĢāļąāđ‰āļ‡āļ•āđˆāļ­āđ„āļ›āđ€āļžāļĩāļĒāļ‡āđ€āļĢāļĩāļĒāļ  SELECT * FROM Central_Prov  āļāđ‡āļˆāļ°āđ„āļ”āđ‰āļœāļĨāđ€āļŠāđˆāļ™āđ€āļ”āļīāļĄ Prov_geo Central_Prov āđ€āļĨāļĒ 3 āļ•āļĢāļąāļ‡ 4 āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID
āļāļēāļĢāļĒāļāđ€āļĨāļīāļ  View āđƒāļŠāđ‰āļ„āļģāļŠāļąāđˆāļ‡  DROP VIEW  name_of_view āļ‚āđ‰āļ­āļĄāļđāļĨāļ•āđˆāļēāļ‡āđ†āļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡ āđ„āļĄāđˆāļĄāļĩāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āđāļ•āđˆāļ­āļĒāđˆāļēāļ‡āđƒāļ”
āļāļēāļĢāļ—āļģ  Transaction āļšāļēāļ‡āļ„āļĢāļąāđ‰āļ‡āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ āļĄāļĩāļ„āļ§āļēāļĄāļ‹āļąāļšāļ‹āđ‰āļ­āļ™ āđƒāļŠāđ‰āđ€āļ§āļĨāļē āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđāļ™āđˆāđƒāļˆāļ§āđˆāļēāļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļˆāļ°āđ€āļŠāļĢāđ‡āļˆāļŠāļīāđ‰āļ™āļŠāļĄāļšāļđāļĢāļ“āđŒ āļ•āđ‰āļ­āļ‡āđƒāļŠāđ‰  Transaction  āđƒāļ™āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢ āđ€āļĢāļēāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āđƒāļŦāđ‰āļœāļđāđ‰āđƒāļŠāđ‰āļ­āļ·āđˆāļ™āđ† āļĢāļąāļšāļĢāļđāđ‰  (ACID) āļ„āļģāļŠāļąāđˆāļ‡  BEGIN, COMMIT, SAVEPOINT, ROLLBACK [To SavePoint]
ROLLBACK and COMMIT
āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļāļēāļĢ  COMMIT āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļĄāļąāđˆāļ™āđƒāļˆāļ§āđˆāļē āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢ  SQL  āđ€āļŠāļĢāđ‡āļˆāļŠāļĄāļšāļđāļĢāļ“āđŒ BEGIN INSET INTO MyTable (col1,col2) value (5,’ āļŠāļļāļĄāļžāļĢ â€™ ) â€Ķ .  āļ„āļģāļŠāļąāđˆāļ‡āļˆāļģāļ™āļ§āļ™āļĄāļēāļ COMMIT;
āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡ āļāļēāļĢ ROLLBACK
Pattern Matching āđ€āļ‡āļ·āđˆāļ­āļ™āđ„āļ‚āļŠāļģāļŦāļĢāļąāļš  WHERE  āđ€āļžāļ·āđˆāļ­āļāļēāļĢāļ„āđ‰āļ™āļŦāļē  string  āļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢ āļ•āļąāļ§āļāļĢāļ°āļ—āļģāļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļŠāđ‰  LIKE āļ­āļąāļāļĐāļĢāļ—āļĩāđˆāđƒāļŠāđ‰āđāļ—āļ™āļĢāļđāļ›āđāļšāļš  string  āļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāļ„āđ‰āļ™āļŦāļēāļ„āļ·āļ­  %   āļŦāļĢāļ·āļ­   _ āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāļāļąāļš  dos command : *  āđāļĨāļ°  ?  āļ•āļēāļĄāļĨāļģāļ”āļąāļš ILIKE  āļŠāļģāļŦāļĢāļąāļš  case in-sensitive āļ—āļēāļ‡āđ€āļĨāļ·āļ­āļāļ­āļ·āđˆāļ™  POSIX Regular Expression
āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡  Pattern Matching â€Ķ  WHERE Prov_Name LIKE ‘ āļ %’  āļˆāļąāļ‡āļŦāļ§āļąāļ”āļ—āļĩāđˆāļ‚āļķāđ‰āļ™āļ•āđ‰āļ™āļ”āđ‰āļ§āļĒ āļ â€Ķ  WHERE Prov_Name LIKE ‘% āļĒ â€™ āļˆāļąāļ‡āļŦāļ§āļąāļ”āļ—āļĩāđˆāļĨāļ‡āļ—āđ‰āļēāļĒāļ”āđ‰āļ§āļĒ āļĒ â€Ķ  WHERE Prov_Name LIKE ‘_ _ _’ āļˆāļąāļ‡āļŦāļ§āļąāļ”āļ—āļĩāđˆāļĄāļĩ  3  āļ•āļąāļ§āļ­āļąāļāļĐāļĢ â€Ķ  WHERE Prov_Name LIKE ‘ āđ€   _ _’ āļˆāļąāļ‡āļŦāļ§āļąāļ”āļ—āļĩāđˆāļĄāļĩ  3  āļ•āļąāļ§āļ­āļąāļāļĐāļĢ āđāļĨāļ°āļ‚āļķāđ‰āļ™āļ•āđ‰āļ™āļ”āđ‰āļ§āļĒ āļŠāļĢāļ°āđ€āļ­
LIKE  āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš āđƒāļ™āļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ•āļĢāļĢāļāļ° āļĒāļąāļ‡āļĄāļĩāļāļēāļĢāđƒāļŠāđ‰  LIKE  āđƒāļ™āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļĨāļ­āļĩāļāļ”āđ‰āļ§āļĒ āļ”āļąāļ‡āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡
āļ§āļąāļ™āđāļĨāļ°āđ€āļ§āļĨāļē SQL  āļĄāļĩāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨ āļ§āļąāļ™āđāļĨāļ°āđ€āļ§āļĨāļē āļāļēāļĢāļˆāļąāļ”āđ€āļāđ‡āļšāļ§āļąāļ™āđ€āļ§āļĨāļē āļāļēāļĢāļ„āļģāļ™āļ§āļ“āļŠāđˆāļ§āļ‡āđ€āļ§āļĨāļē āļŠāļ°āļ”āļ§āļ āļ„āļģāļ™āļ§āļ“āđ„āļ”āđ‰āđ‚āļ”āļĒāļ•āļĢāļ‡ āđ€āļŠāđˆāļ™  Duration = Time_t2-Time_t1 āļāļēāļĢāļ„āđ‰āļ™āļ„āļ·āļ™ āļˆāļ°āļĄāļĩāļ„āļ§āļēāļĄāļŠāļ°āļ”āļ§āļāļ—āļģāđ„āļ”āđ‰āļ‡āđˆāļēāļĒ
āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡  DATE
āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļŠāļģāļŦāļĢāļąāļš  date time āļĄāļĩāļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļĄāļēāļāđƒāļ™āļāļēāļĢāđ€āļĢāļĩāļĒāļāļ‚āđ‰āļ­āļĄāļđāļĨ  date time  āđ€āļžāļ·āđˆāļ­āđāļŠāļ”āļ‡āļœāļĨāđƒāļ™āļĢāļđāļ›āđāļšāļšāļ•āđˆāļēāļ‡āđ†
āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļ§āļąāļ™āļ—āļĩāđˆāđ€āļ§āļĨāļē
āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļœāļđāđ‰āđƒāļŠāđ‰āļāļģāļŦāļ™āļ”āđ€āļ­āļ‡ āđ€āļŠāđˆāļ™ āļžāļ·āđ‰āļ™āļ—āļĩāđˆāļ•āļĢ . āļĄ .     āđ„āļĢāļ‡āļēāļ™āļ§āļē āļ—āļģāđ„āļ”āđ‰  Procedure Language SQL (PL/SQL)  1  āļ§āļē  = 2  āđ€āļĄāļ•āļĢ  ; 1  āļ•āļēāļĢāļēāļ‡āļ§āļē  = 4  āļ•āļĢ . āļĄ . 1  āđ„āļĢāđˆ  = 4  āļ‡āļēāļ™  = 400  āļ•āļēāļĢāļēāļ‡āļ§āļē
āđ€āļ§āļ›āđ„āļ‹āļ—āđŒ āđāļ™āļ°āļ™āļģ āđƒāļ™āļāļēāļĢāđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰  SQL W3Schools     Server Scripting     Learn SQL http :// www . w3schools . com / SQL / sql_intro . asp
 
 
āđ€āļ­āļāļŠāļēāļĢ  pdf   āđ€āļ›āđ‡āļ™āļ—āļēāļ‡āļāļēāļĢ  1900  āļŦāļ™āđ‰āļē

Spat Db 3 Intro Sql

  • 1.
    āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™ SQL āđ€āļšāļ·āđ‰āļ­āļ‡āļ•āđ‰āļ™ Introduction to SQL āļœāļđāđ‰āļŠāđˆāļ§āļĒāļĻāļēāļŠāļ•āļĢāļēāļˆāļēāļĢāļĒāđŒ āļ”āļĢ . āđ„āļžāļĻāļēāļĨ āļŠāļąāļ™āļ•āļīāļ˜āļĢāļĢāļĄāļ™āļ™āļ—āđŒ āļ„āļ“āļ°āļ§āļīāļĻāļ§āļāļĢāļĢāļĄāļĻāļēāļŠāļ•āļĢāđŒ āļˆāļļāļŽāļēāļĨāļ‡āļāļĢāļ“āđŒāļĄāļŦāļēāļ§āļīāļ—āļĒāļēāļĨāļąāļĒ āļ–āļ™āļ™āļžāļāļēāđ„āļ— āļ›āļ—āļļāļĄāļ§āļąāļ™ āļāļĢāļļāļ‡āđ€āļ—āļžāļŊ 10330 Email : phisan_chula@yahoo.com
  • 2.
  • 3.
    SQL āđ€āļšāļ·āđ‰āļ­āļ‡āļ•āđ‰āļ™āļŠāļĄāļĄāļļāļ•āļīāļ§āđˆāļēāļĄāļĩāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™āļĢāļđāļ›āđāļšāļšāļ•āļēāļĢāļēāļ‡āļŠāļ·āđˆāļ­ Prov_geo āđ€āļĨāļĒ 3 āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID
  • 4.
    āļāļēāļĢāđ€āļĢāļĩāļĒāļāļ”āļđ SELECTāđƒāļŠāđ‰āđ€āļĢāļĩāļĒāļāļ”āļđāļ‚āđ‰āļ­āļĄāļđāļĨāļ•āļēāļĄāđ€āļ‡āļ·āđˆāļ­āļ™āđ„āļ‚ Syntax SELECT column_name ( s ) FROM table_name āđ€āļŠāđˆāļ™ SELECT Prov_ID, Prov_Name FROM Prov_geo āļŦāļĢāļ·āļ­ SELECT * FROM Prov_geo āļˆāļ°āđ„āļ”āđ‰ select-set āđ€āļ›āđ‡āļ™ āđ€āļĨāļĒ 3 āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID
  • 5.
    āļāļēāļĢāđ€āļĢāļĩāļĒāļāļ”āļđ SELECT āđāļšāļšāļĄāļĩāđ€āļ‡āļ·āđˆāļ­āļ™āđ„āļ‚ āđƒāļŠāđ‰āđ€āļĢāļĩāļĒāļāļ”āļđāļ‚āđ‰āļ­āļĄāļđāļĨāļ•āļēāļĄāđ€āļ‡āļ·āđˆāļ­āļ™āđ„āļ‚ Syntax SELECT column FROM table WHERE column operator value āđ€āļŠāđˆāļ™ SELECT * FROM Prov_geo WHERE Prov_ID=2 āļŦāļĢāļ·āļ­ SELECT * FROM Prov_geo WHERE Prov_Name=‘ āļŠāļĢāļ°āļšāļļāļĢāļĩ ’ āļˆāļ°āđ„āļ”āđ‰ āļœāļĨāļĨāļąāļžāļ˜āđŒāđ€āļŦāļĄāļ·āļ­āļ™āļāļąāļ™āļ„āļ·āļ­ āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 Prov_Name Prov_ID
  • 6.
    āļāļēāļĢāļāļĢāļ°āļ—āļģ āļ—āļĩāđˆāļĢāļ°āļšāļļāđ„āļ”āđ‰āđƒāļ™ WHERE If you know the exact value you want to return for at least one of the columns IN Search for a pattern LIKE Between an inclusive range BETWEEN Less than or equal <= Greater than or equal >= Less than < Greater than > Not equal <> Equal =
  • 7.
  • 8.
    āļāļēāļĢāđāļ—āļĢāļāļ‚āđ‰āļ­āļĄāļđāļĨ INSERTāđƒāļŠāđ‰āđāļ—āļĢāļāļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļ‚āđ‰āļēāđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ Syntax INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,....) āđ€āļŠāđˆāļ™ INSERT INTO Prov_geo(Prov_ID, Prov_Name) VALUES (4, “ āļ•āļĢāļąāļ‡ â€ ) āđ€āļĄāļ·āđˆāļ­āđƒāļŠāđ‰āļ„āļģāļŠāļąāđˆāļ‡āđ„āļ›āđāļĨāđ‰āļ§ āļŦāļĨāļąāļ‡āļˆāļēāļ SELECT āļ”āļđāļ—āļļāļāđ€āļĢāļ„āļ„āļ­āļĢāđŒāļ”āļˆāļ°āđ„āļ”āđ‰ āđ€āļĨāļĒ 3 āļ•āļĢāļąāļ‡ 4 āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID
  • 9.
    āļāļēāļĢāđāļ—āļĢāļāļ‚āđ‰āļ­āļĄāļđāļĨ UPDATEāđƒāļŠāđ‰āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡ attribute āđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ Syntax UPDATE table_name SET column_name = new_value WHERE column_name = some_value āđ€āļŠāđˆāļ™ āļ•āđ‰āļ­āļ‡āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļŠāļ·āđˆāļ­āļˆāļąāļ‡āļŦāļ§āļąāļ” â€œ āļ•āļĢāļąāļ‡ . āđƒāļŦāđ‰āđ€āļ›āđ‡āļ™ â€œ āļ•āļĢāļēāļ” â€ āļ„āļģāļŠāļąāđˆāļ‡ UPDATE Prov_geo SET Prov_Name=‘ āļ•āļĢāļēāļ” â€™ WHERE Prov_ID = 4 āđ€āļĄāļ·āđˆāļ­āđƒāļŠāđ‰āļ„āļģāļŠāļąāđˆāļ‡āđ„āļ›āđāļĨāđ‰āļ§ āļŦāļĨāļąāļ‡āļˆāļēāļ SELECT āļ”āļđāļ—āļļāļāđ€āļĢāļ„āļ„āļ­āļĢāđŒāļ”āļˆāļ°āđ„āļ”āđ‰ āđ€āļĨāļĒ 3 āļ•āļĢāļąāļ‡ 4 āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID āđ€āļĨāļĒ 3 āļ•āļĢāļēāļ” 4 āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID
  • 10.
    āļāļēāļĢāļĨāļšāļ‚āđ‰āļ­āļĄāļđāļĨ DELETEāđƒāļŠāđ‰āļĨāļšāļ‚āđ‰āļ­āļĄāļđāļĨ āđ‚āļ”āļĒāļĢāļ°āļšāļļāļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļ›āđ‰āļēāļŦāļĄāļēāļĒāļ•āļēāļĄāđ€āļ‡āļ·āđˆāļ­āļ™āđ„āļ‚ Syntax DELETE FROM table_name WHERE column_name = some_value āđ€āļŠāđˆāļ™ DELETE FROM Prov_geo WHERE ProvID=2 āļˆāļ°āđ„āļ”āđ‰āļœāļĨāļĨāļąāļžāļ˜āđŒ select-set āđ€āļ›āđ‡āļ™ āđ€āļĨāļĒ 3 āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID āđ€āļĨāļĒ 3 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID
  • 11.
    āļ āļēāļĐāļē SQL āļ‚āļąāđ‰āļ™āļŠāļđāļ‡ SELECT INTO, CREATE, DataType, DROP, CREAT VIEW, Aggregate Functions, Math Functions, JOIN, Transaction Processing, String Pattern, Data and Time
  • 12.
    SELECT INTO āđ€āļžāļ·āđˆāļ­āļŠāļĢāđ‰āļēāļ‡āļ•āļēāļĢāļēāļ‡āđƒāļŦāļĄāđˆāļˆāļēāļāļāļēāļĢ SELECT āļ—āļĩāđˆāđ„āļ”āđ‰ SELECT column_name ( s ) INTO newtable [ IN externaldatabase ] FROM source
  • 13.
    āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āļ•āļēāļĢāļēāļ‡ CREATEāļŠāļĢāđ‰āļēāļ‡āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļŦāļĄāđˆ CREATE DATABASE database_name āļŠāļĢāđ‰āļēāļ‡āļ•āļēāļĢāļēāļ‡ āļžāļĢāđ‰āļ­āļĄāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āđƒāļŦāļĄāđˆ CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, ....... )
  • 14.
  • 15.
    āļŠāļ™āļīāļ”āļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ (PostgreSQL8.3) Bigint – int8 Bigserial – int8 autoincrementing Boolean – bool Character varying [(n)] – varchar[(n)] Date Double precision – float8 Integer int,int4 signed 4-byte int C
  • 16.
    āļŠāļ™āļīāļ”āļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ (PostgreSQL8.3) Real float4 single prec. Num Serial serial4 autoincr. 4byte int. Text variable length string Time time of day timestamp
  • 17.
    āļāļēāļĢāļĨāđ‰āļēāļ‡āļ—āļīāđ‰āļ‡ DROPāļĨāļšāļ•āļēāļĢāļēāļ‡āļ—āļīāđ‰āļ‡ DROP Table_name āļĨāļšāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļīāđ‰āļ‡ DROP Database_name
  • 18.
    Aggregate Functions āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļŠāļģāļŦāļĢāļąāļšāļŠāļĢāļļāļ›āļœāļĨāļ—āļĩāđˆāđ„āļ”āđ‰āļˆāļēāļāļāļēāļĢ SELECT āđ„āļ”āđ‰āđāļāđˆ count(), sum(), average(), min(), max() āđ€āļŠāđˆāļ™ SELECT count(*) FROM Prov_geo āļˆāļ°āđ„āļ”āđ‰ count āđ€āļ›āđ‡āļ™ 4 āđāļĨāļ°āļĄāļĩ select-set āđ€āļ›āđ‡āļ™ 1 row āđ€āļĨāļĒ 3 āļ•āļĢāļąāļ‡ 4 āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID
  • 19.
    Aggregate Function DISTINCT āđ€āļžāļ·āđˆāļ­āļ„āļąāļ”āļāļĢāļ­āļ‡āđ€āļ­āļēāđ€āļ‰āļžāļēāļ°āļ•āļąāļ§āļ—āļĩāđˆāđ„āļĄāđˆāļ‹āđ‰āļģāļĄāļēāļ„āļģāļ™āļ§āļ“āļ•āđˆāļ­ āđ€āļŠāđˆāļ™ SELECT COUNT (DISTINCT student_name ) FROM student_enroll
  • 20.
    āļŸāļąāļ‡āļāđŒāļŠāļąāđˆāļ™āļ„āļ“āļīāļ•āļĻāļēāļŠāļ•āļĢāđŒ Abs absolutevalue Ceil smallest integer ceil(-42.8)  42 Floor largest integer floor(-42.8)  -43 Round(v,s) round v to s dec.places Round(42.4382,2)  42.44 Trunc(v,s) truncate v to s deci.places Trunc(42.4382,2 )  42.43
  • 21.
    āļŸāļąāļ‡āļāđŒāļŠāļąāđˆāļ™āļ„āļ“āļīāļ•āļĻāļēāļŠāļ•āļĢāđŒ Pi() PIvalue Degrees(dp) rad  deg Radians(dp) deg  rad Sqrt() 1 arc second (1/3600. degree) = 30 meter Decimal point ~ 5 digit. 100.12345
  • 22.
    JOIN āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāđ‚āļĒāļ‡āļ•āļēāļĢāļēāļ‡ āļĄāļĩāļŦāļĨāļēāļĒāļ›āļĢāļ°āđ€āļ āļ—āđƒāļŦāđ‰āđ€āļĨāļ·āļ­āļāđƒāļŠāđ‰INNER JOIN LEFT OUTER JOIN RIGHT OUTER JOIN FULL OUTER JOIN āļ—āļĩāđˆāđƒāļŠāđ‰āļšāđˆāļ­āļĒāđāļĨāļ°āļ™āđˆāļēāļŠāļ™āđƒāļˆ INNER JOIN āđāļĨāļ° LEFT JOIN
  • 23.
  • 24.
  • 25.
    āļŠāļ·āđˆāļ­āđ€āļ—āļĩāļĒāļšāļ‚āļ­āļ‡āļ„āļ­āļĨāļąāļĄāļ—āđŒ (ColumnAliases) āđ€āļžāļ·āđˆāļ­āļ„āļ§āļēāļĄāļŠāļ°āļ”āļ§āļāđƒāļ™āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™ SQL āđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ—āļĩāđˆāļāļĢāļ°āļŠāļąāļš āļŠāļ·āđˆāļ­āļ„āļ§āļēāļĄāļŦāļĄāļēāļĒ āđ€āļŠāđˆāļ™ SELECT (area(the_geom)/1600.) as area_rai FROM prov_geo āļŦāļĄāļēāļĒāđ€āļŦāļ•āļļ 1600 āļ•āļēāļĢāļēāļ‡āđ€āļĄāļ•āļĢ āđ€āļ—āđˆāļēāļāļąāļš 1 āđ„āļĢ
  • 26.
    āļŠāļ·āđˆāļ­āđ€āļ—āļĩāļĒāļšāļ‚āļ­āļ‡āļ•āļēāļĢāļēāļ‡ (TableAliases) āđ€āļžāļ·āđˆāļ­āļ„āļ§āļēāļĄāļŠāļ°āļ”āļ§āļāđƒāļ™āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™ SQL āđƒāļ™āļāļēāļĢāđ€āļĢāļĩāļĒāļāļŠāļ·āđˆāļ­āļ•āļēāļĢāļēāļ‡āļ—āļĩāđˆāđ„āļĄāđˆāļŠāļ·āđˆāļ­ āļŦāļĢāļ·āļ­ āļĒāļēāļ§āļĄāļēāļāđ† āđ€āļŠāđˆāļ™ SELECT p.name, p.area FROM prov_geo as p āļˆāļ°āđ€āļŦāđ‡āļ™āļ§āđˆāļēāđƒāļŠāđ‰ āļ­āļąāļāļĐāļĢ p āļ•āļąāļ§āđ€āļ”āļĩāļĒāļ§āđāļ—āļ™ prov_geo āđƒāļ™āļāļēāļĢāļ­āđ‰āļēāļ‡āļ­āļīāļ‡
  • 27.
    āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ Viewāđ€āļžāļ·āđˆāļ­āđ€āļ•āļĢāļĩāļĒāļĄāļ•āļēāļĢāļēāļ‡āđƒāļŦāļĄāđˆ āđ‚āļ”āļĒāđ„āļĄāđˆāđ„āļ”āđ‰āļŠāļĢāđ‰āļēāļ‡āļ•āļēāļĢāļēāļ‡āļ‚āļķāđ‰āļ™āļĄāļē āđ€āļžāļ·āđˆāļ­āļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āđ€āļ­āļāļ āļēāļž āļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļĄāļĩāļĢāļđāļ›āđāļšāļšāļāļēāļĢāđāļŠāļ”āļ‡āļ•āļēāļĢāļēāļ‡āļ—āļĩāđˆāļ‡āđˆāļēāļĒāļ•āđˆāļ­āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰ āļ„āļĨāđ‰āļēāļĒāļāļąāļšāļāļēāļĢ SELECT āđ„āļ§āđ‰āļĨāđˆāļ§āļ‡āļŦāļ™āđ‰āļē āđāļĨāđ‰āļ§āļŠāļĢāđ‰āļēāļ‡āđ€āļ›āđ‡āļ™āļ•āļēāļĢāļēāļ‡āđƒāļŦāļĄāđˆ āļ‚āļķāđ‰āļ™āļ­āļĒāļđāđˆāļāļąāļš RDBMS āļ§āđˆāļēāļˆāļąāļ”āļāļēāļĢāđ„āļ”āđ‰āļ”āļĩāđ€āļžāļĩāļĒāļ‡āđƒāļ” āđ€āļŠāđˆāļ™ āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ cache āđ„āļ§āđ‰āļāđˆāļ­āļ™āđ€āļžāļ·āđˆāļ­āđ€āļžāļīāđˆāļĄāļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§ āļŦāļēāļāļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡ āļˆāļ°āļŠāļĢāđ‰āļēāļ‡āđƒāļŦāđ‰āđƒāļŦāļĄāđˆāļ—āļąāļ™āļ—āļĩ Syntax CREATE VIEW view_name AS SELECT [â€Ķ.]
  • 28.
    āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ ViewSELECT * FROM Prov_geo WHERE Prov_ID = 1 or Prov_ID = 2 CREATE VIEW Central_Prov AS SELECT * FROM Prov_geo WHERE Prov_ID = 1 or Prov_ID = 2 āļ„āļĢāļąāđ‰āļ‡āļ•āđˆāļ­āđ„āļ›āđ€āļžāļĩāļĒāļ‡āđ€āļĢāļĩāļĒāļ SELECT * FROM Central_Prov āļāđ‡āļˆāļ°āđ„āļ”āđ‰āļœāļĨāđ€āļŠāđˆāļ™āđ€āļ”āļīāļĄ Prov_geo Central_Prov āđ€āļĨāļĒ 3 āļ•āļĢāļąāļ‡ 4 āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID āļŠāļĢāļ°āļšāļļāļĢāļĩ 2 āļāļēāļāļˆāļ™āļšāļļāļĢāļĩ 1 Prov_Name Prov_ID
  • 29.
    āļāļēāļĢāļĒāļāđ€āļĨāļīāļ ViewāđƒāļŠāđ‰āļ„āļģāļŠāļąāđˆāļ‡ DROP VIEW name_of_view āļ‚āđ‰āļ­āļĄāļđāļĨāļ•āđˆāļēāļ‡āđ†āļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡ āđ„āļĄāđˆāļĄāļĩāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āđāļ•āđˆāļ­āļĒāđˆāļēāļ‡āđƒāļ”
  • 30.
    āļāļēāļĢāļ—āļģ Transactionāļšāļēāļ‡āļ„āļĢāļąāđ‰āļ‡āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ āļĄāļĩāļ„āļ§āļēāļĄāļ‹āļąāļšāļ‹āđ‰āļ­āļ™ āđƒāļŠāđ‰āđ€āļ§āļĨāļē āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđāļ™āđˆāđƒāļˆāļ§āđˆāļēāļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļˆāļ°āđ€āļŠāļĢāđ‡āļˆāļŠāļīāđ‰āļ™āļŠāļĄāļšāļđāļĢāļ“āđŒ āļ•āđ‰āļ­āļ‡āđƒāļŠāđ‰ Transaction āđƒāļ™āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢ āđ€āļĢāļēāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āđƒāļŦāđ‰āļœāļđāđ‰āđƒāļŠāđ‰āļ­āļ·āđˆāļ™āđ† āļĢāļąāļšāļĢāļđāđ‰ (ACID) āļ„āļģāļŠāļąāđˆāļ‡ BEGIN, COMMIT, SAVEPOINT, ROLLBACK [To SavePoint]
  • 31.
  • 32.
    āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļāļēāļĢ COMMITāđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļĄāļąāđˆāļ™āđƒāļˆāļ§āđˆāļē āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢ SQL āđ€āļŠāļĢāđ‡āļˆāļŠāļĄāļšāļđāļĢāļ“āđŒ BEGIN INSET INTO MyTable (col1,col2) value (5,’ āļŠāļļāļĄāļžāļĢ â€™ ) â€Ķ . āļ„āļģāļŠāļąāđˆāļ‡āļˆāļģāļ™āļ§āļ™āļĄāļēāļ COMMIT;
  • 33.
  • 34.
    Pattern Matching āđ€āļ‡āļ·āđˆāļ­āļ™āđ„āļ‚āļŠāļģāļŦāļĢāļąāļš WHERE āđ€āļžāļ·āđˆāļ­āļāļēāļĢāļ„āđ‰āļ™āļŦāļē string āļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢ āļ•āļąāļ§āļāļĢāļ°āļ—āļģāļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļŠāđ‰ LIKE āļ­āļąāļāļĐāļĢāļ—āļĩāđˆāđƒāļŠāđ‰āđāļ—āļ™āļĢāļđāļ›āđāļšāļš string āļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāļ„āđ‰āļ™āļŦāļēāļ„āļ·āļ­ % āļŦāļĢāļ·āļ­ _ āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāļāļąāļš dos command : * āđāļĨāļ° ? āļ•āļēāļĄāļĨāļģāļ”āļąāļš ILIKE āļŠāļģāļŦāļĢāļąāļš case in-sensitive āļ—āļēāļ‡āđ€āļĨāļ·āļ­āļāļ­āļ·āđˆāļ™ POSIX Regular Expression
  • 35.
    āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡ PatternMatching â€Ķ WHERE Prov_Name LIKE ‘ āļ %’ āļˆāļąāļ‡āļŦāļ§āļąāļ”āļ—āļĩāđˆāļ‚āļķāđ‰āļ™āļ•āđ‰āļ™āļ”āđ‰āļ§āļĒ āļ â€Ķ WHERE Prov_Name LIKE ‘% āļĒ â€™ āļˆāļąāļ‡āļŦāļ§āļąāļ”āļ—āļĩāđˆāļĨāļ‡āļ—āđ‰āļēāļĒāļ”āđ‰āļ§āļĒ āļĒ â€Ķ WHERE Prov_Name LIKE ‘_ _ _’ āļˆāļąāļ‡āļŦāļ§āļąāļ”āļ—āļĩāđˆāļĄāļĩ 3 āļ•āļąāļ§āļ­āļąāļāļĐāļĢ â€Ķ WHERE Prov_Name LIKE ‘ āđ€ _ _’ āļˆāļąāļ‡āļŦāļ§āļąāļ”āļ—āļĩāđˆāļĄāļĩ 3 āļ•āļąāļ§āļ­āļąāļāļĐāļĢ āđāļĨāļ°āļ‚āļķāđ‰āļ™āļ•āđ‰āļ™āļ”āđ‰āļ§āļĒ āļŠāļĢāļ°āđ€āļ­
  • 36.
    LIKE āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļ™āļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ•āļĢāļĢāļāļ° āļĒāļąāļ‡āļĄāļĩāļāļēāļĢāđƒāļŠāđ‰ LIKE āđƒāļ™āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļĨāļ­āļĩāļāļ”āđ‰āļ§āļĒ āļ”āļąāļ‡āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡
  • 37.
    āļ§āļąāļ™āđāļĨāļ°āđ€āļ§āļĨāļē SQL āļĄāļĩāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨ āļ§āļąāļ™āđāļĨāļ°āđ€āļ§āļĨāļē āļāļēāļĢāļˆāļąāļ”āđ€āļāđ‡āļšāļ§āļąāļ™āđ€āļ§āļĨāļē āļāļēāļĢāļ„āļģāļ™āļ§āļ“āļŠāđˆāļ§āļ‡āđ€āļ§āļĨāļē āļŠāļ°āļ”āļ§āļ āļ„āļģāļ™āļ§āļ“āđ„āļ”āđ‰āđ‚āļ”āļĒāļ•āļĢāļ‡ āđ€āļŠāđˆāļ™ Duration = Time_t2-Time_t1 āļāļēāļĢāļ„āđ‰āļ™āļ„āļ·āļ™ āļˆāļ°āļĄāļĩāļ„āļ§āļēāļĄāļŠāļ°āļ”āļ§āļāļ—āļģāđ„āļ”āđ‰āļ‡āđˆāļēāļĒ
  • 38.
  • 39.
    āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļŠāļģāļŦāļĢāļąāļš datetime āļĄāļĩāļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļĄāļēāļāđƒāļ™āļāļēāļĢāđ€āļĢāļĩāļĒāļāļ‚āđ‰āļ­āļĄāļđāļĨ date time āđ€āļžāļ·āđˆāļ­āđāļŠāļ”āļ‡āļœāļĨāđƒāļ™āļĢāļđāļ›āđāļšāļšāļ•āđˆāļēāļ‡āđ†
  • 40.
  • 41.
    āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļœāļđāđ‰āđƒāļŠāđ‰āļāļģāļŦāļ™āļ”āđ€āļ­āļ‡ āđ€āļŠāđˆāļ™ āļžāļ·āđ‰āļ™āļ—āļĩāđˆāļ•āļĢ. āļĄ .  āđ„āļĢāļ‡āļēāļ™āļ§āļē āļ—āļģāđ„āļ”āđ‰ Procedure Language SQL (PL/SQL) 1 āļ§āļē = 2 āđ€āļĄāļ•āļĢ ; 1 āļ•āļēāļĢāļēāļ‡āļ§āļē = 4 āļ•āļĢ . āļĄ . 1 āđ„āļĢāđˆ = 4 āļ‡āļēāļ™ = 400 āļ•āļēāļĢāļēāļ‡āļ§āļē
  • 42.
    āđ€āļ§āļ›āđ„āļ‹āļ—āđŒ āđāļ™āļ°āļ™āļģ āđƒāļ™āļāļēāļĢāđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰ SQL W3Schools  Server Scripting  Learn SQL http :// www . w3schools . com / SQL / sql_intro . asp
  • 43.
  • 44.
  • 45.
    āđ€āļ­āļāļŠāļēāļĢ pdf āđ€āļ›āđ‡āļ™āļ—āļēāļ‡āļāļēāļĢ 1900 āļŦāļ™āđ‰āļē