mk380-sql ระบบสารสนเทศทางการตลาด - ภาษา sql

72
MK380 - SQL ระบบสารสนเทศทางการตลาด ภาษา SQL - โครงสรางของภาษา SQL - ประเภทของคําสั่งในภาษา SQL - ชนิดขอมูลที่ใชในภาษา SQL - การใชงานภาษา SQL - การสรางตาราง - การบันทึก ปรับปรุง และลบขอมูลในตาราง - ฟงกชัน โครงสรางของภาษาเอสคิวแอล (SQL) ภาษา SQL (สามารถอานออกเสียงได 2 แบบ คือ เอสคิวแอล” (SQL) หรือ ซีเควล” (Sequel)) ยอ มาจาก Structured Query Language หรือภาษาในการสอบถามขอมูล เปนภาษาทางดานฐานขอมูล ทีสามารถสรางและปฏิบัติการกับฐานขอมูลแบบสัมพันธ(relational database)โดยเฉพาะ และ เปนภาษาที่มี ลักษณะคลายกับภาษาอังกฤษ ภาษา SQLถูกพัฒนาขึ้นจากแนวคิดของ relational calculus และ relational algebra เปนหลัก ภาษา SQL เริ่มพัฒนาครั้งแรกโดย almaden research center ของบริษัท IBM โดยมีชื่อ เริ่มแรกวา ซีเควล” (Sequel) ตอมาไดเปลี่ยนชื่อเปนเอสคิวแอล” (SQL) หลังจากนั้นภาษา SQLไดถูกนํมาพัฒนาโดยผูผลิตซอฟแวรดานระบบจัดการฐานขอมูลเชิงสัมพันธจนเปนที่นิยมกันอยางแพรหลายใน ปจจุบัน โดยผู ผลิตแตละรายก็พยายามที่จะพัฒนาระบบจัดการฐานขอมูลของตนใหมีลักษณะเดนเฉพาะขึ้น มา ทํ าใหรูปแบบการใชคําสั่ง SQL มีรูปแบบที่แตกตางกันไปบาง เชน ORACLE ACCESS SQL Base ของ Sybase INGRES หรือ SQL Server ของ Microsoft เปนตน ดังนั้นในป .. 1986 ทางดาน American National Standards Institute (ANSI) จึงไดกําหนดมาตรฐานของ SQL ขึ้น อยางไรก็ดี โปรแกรมฐานขอมูล ที่ขายในทองตลาด ไดขยาย SQL ออกไปจนเกินขอกําหนดของ ANSI โดยเพิ่มคุณสมบัติอื่นๆ ที่คิดวาเปน ประโยชนเขาไปอีกแตโดยหลักทั่วไปแลวก็ยังปฏิบัติตามมาตราฐานของ ANSI ANSI = American National Standards Institute

Upload: know2pro

Post on 27-Sep-2015

13 views

Category:

Documents


0 download

DESCRIPTION

MK380-SQL ระบบสารสนเทศทางการตลาด - ภาษา SQL

TRANSCRIPT

  • MK380 - SQL SQL

    - SQL- SQL- SQL- SQL- - -

    (SQL) SQL ( 2 (SQL) (Sequel))

    Structured Query Language (relational database) SQL relational calculus relational algebra SQL almaden research center IBM (Sequel) (SQL) SQL SQL ORACLE ACCESS SQL Base Sybase INGRES SQL Server Microsoft .. 1986 American National Standards Institute (ANSI) SQL SQL ANSI ANSI

    ANSI = American National Standards Institute

  • MK380 - SQL 2

    Ch 4 Data Base

    1. SQL SQL

    SQL (The subdivision of SQL) 3 1. (Data Definition Language : DDL)

    2. (Data Manipulation Language : DML)

    3. (Data Control Language : DCL)

    2. SQL SQL (data

    type)

    SQL

  • MK380 - SQL 3

    Ch 4 Data Base

    2.1 (character) SQL - (fixed-length character) char (n) character(n)

    n 255

    - (variable-length character) varchar (n) n 4000

    2.2 ( numeric)- (decimal) SQL dec(m,n) decimal(m,n)

    m () n

    - SQL int integer 10 2,147,483,648 +2,147,483,647 SQL smallint 5 32,768 + 32,767 integer

    - SQL number(n)

    2.3 - (Date/Time) SQL date

    yyyy-mm-dd (1999-10-31) dd.mm.yyyy(31. 10.1999) dd/mm/yyyy (31/10/1999)

    3. SQL SQL DBMS DBMS

    SQL SQL 2 SQL (interactive SQL) SQL (embedded SQL)

  • MK380 - SQL 4

    Ch 4 Data Base

    3.1 SQL SQL SALENAME SALECOM SALESTAB SQL

    SELECT SALENAME, SALECOMFROM SALESTAB; SALESTAB

    SALENO SALENAME ADDRESS SALECOM1001 Chaiwat Bangkok 0.121002 Mitree Puket 0.131004 Benjawan Bangkok 0.111007 Kanjana Chiangmai 0.151003 Ternjai Nonthaburi 0.10

    SALENAME SALECOMChaiwat 0.12Mitree 0.13Benjawan 0.11Kanjana 0.15Ternjai 0.10

    3.2 SQL SQL SQL SQL SQL (control statement) if..thenelse fordo loop while SQL SQL SQL SQL

  • MK380 - SQL 5

    Ch 4 Data Base

    while not end-of-file(input) dobeginreadin(id-num, salesperson,loc,comm);EXEC SQL INSERT INTO SALESTABVALUES(:id-num,:salesperson,:loc,:comm);end;

    INSERT INTO SALESTABVALUES (:id-num,:salesperson,: loc, :comm); id-num salesperson loc comm

    (loop) id-num, salesperson, loc, comm SALESTAB

    SQL SQL SQL

    SQL (The subdivision of sql) 3 - (Data Definition Language : DDL)- (Data Manipulation Language : DML)- (Data Control Language : DCL)

    1. SQL

    2 (rows) (columns)

  • MK380 - SQL 6

    Ch 4 Data Base

    (SALESTAB)SALENO SALENAME ADDRESS SALECOM1001 Chaiwat Bangkok 0.121002 Mitree Puket 0.131004 Benjawan Bangkok 0.111007 Kanjana Chiangmai 0.151003 Ternjai Nonthaburi 0.10

    SALENO Integer SALENAME Char(10) ADDRESS Char(10) SALECOM Decimal

    (Data Definition Language : DDL) SQL (schema) 2.

    SQL CREATE TABLE CREATE TABLE CREATE TABLE(< >[][[ constraint ]constraint_type][,data type>[],]);

  • MK380 - SQL 7

    Ch 4 Data Base

    CREATE TABLE table name column name data type constraint constraint_name constraint_type

    CREATE TABLE SALESTAB(SALENO integer,SALENAME char (10),ADDRESS char (10),SALECOM decimal); SALENO integer

    SALENAME char 10 ADDRESS char 10 SALECOM decimal

    SALENO SALENAME ADDRESS SALECOM

    3. (constraints)

    (integrity) (integrity)

  • MK380 - SQL 8

    Ch 4 Data Base

    3.1 (NOT NULL) NOT NULL

    (primary key)(NOT NULL ) NOT NULL NULL (DEFAULT) (NULL)

    SALENO SALENAME(NOT NULL )

    CREATE TABLE SALESTAB(SALENO integer NOT NULL,SALENAME char(10) NOT NULL,ADDRESS char(10),SALECOM decimal);

    3.2 (UNIQUE) UNIQUE

    UNIQUE

    SALENO SALENAME(NOT NULL )

    CREATE TABLE SALESPEOPLE(SALENO integer NOT NULL UNIQUE,SALENAME char(10) NOT NULL UNIQUE,ADDRESS char(10),SALECOM decimal);

  • MK380 - SQL 9

    Ch 4 Data Base

    3.3. (primary key) 2 1)

    SALENO (primary key) SALENAME(NOT NULL)

    CREATE TABLE SALESPEOPLE(SALENO integer NOT NULL UNIQUE PRIMARY KEY,SALENAME char(10) NOT NULL UNIQUE,ADDRESS char(10),SALECOM decimal);

    2) 1 1

    NAMEFIELD FIRSTNAME

    LASTNAME (primary key) NAMEFIELD CREATE TABLE NAMEFIELD(FIRSTNAME char(10) NOT NULL ,LASTNAME char(10) NOT NULL UNIQUE,CITY char(10),PRIMARY KEY (FIRSTNAME LASTNAME ));

    3.4 (foreign key )

    SALENO REFERENCE

  • MK380 - SQL 10

    SALENO ( SALENO ) SALENO

    ( CUSTOMERSTAB) CUSNO PRIMARY KEY SALENO (foreign key) ( SALESTAB) CREATE TABLE CUSTOMERSTAB

    (CUSNO integer NOT NULL PRIMARY KEY,CUSNAME char(10) ,ADDRESS char(10),SALENO integer,FOREIGN KEY (SALENO) REFERENCES SALESTAB(SALENO));

    CREATE TABLE CUSTOMERSTAB(CUSNO integer NOT NULL PRIMARY KEY,CUSNAME char(10) ,ADDRESS char(10),SALENO integer REFERENCES SALESTAB(SALENO)); Ch 4 Data Base

  • MK380 - SQL 11

    (foreign key ) CASCADES RESTRICTED 2 (referential integrity)

    CREATE TABLE CUSTOMERSTAB(CUSNO integer NOT NULL PRIMARY KEY,CUSNAME char(10) ,ADDRESS char(10),SALENO integer REFERENCES SALESTAB(SALENO)UPDATE OF SALESTAB CASCADES,DELETE OF SALESTAB RESTRICTED);

    Ch 4 Data Base

    - UPDATE OF SALESTAB CASCADES SALENO SALENO

    - DELETE OF SALESTAB RESTRICTED SALENO SALENO

    Chaiwat (SALESTAB) SALENO Arlee Surasit

  • MK380 - SQL 12

    Ch 4 Data Base

    SALENO SALENO Chaiwat 1009 Arlee Surasit SALENO

    3.5 (CHECK)(entity integrity)

    CHECK

    SNUM SNAME

    (NOT NULL ) SALENO SALENAME SALECOM

    CREATE TABLE SALESPEOPLE(SALENO integer NOT NULL UNIQUE,SALENAME char(10) NOT NULL UNIQUE,CITY char(10),SALECOM decimal CHECK (salecom < 1);

    4. 3.1 1 3.2 comma (,)3.3 semicolon (;)

    *

  • MK380 - SQL 13

    Ch 4 Data Base

    5. DROP TABLE

    DROP TABLE [CASCADE CONSTRAINTS];DROP TABLE table name CASCADE CONSTRAINTS (constraint)

    (SALESTAB) DROP TABLE SALESTAB; ( index)

    SALESTAB DBMS

    6.

    SQL ALTER TABLE 2

    - ALTER TABLE - ALTER TABLE ALTER TABLE

    ALTER TABLE

  • MK380 - SQL 14

    Ch 4 Data Base

    ALTER TABLE Database update( data type [SIZE]);ALTER TABLE table name Database update column_name data type [SIZE]

    ALTER TABLE SALESPEOPLE ADD SALESTAB_FAX CHAR(15); SALESTAB_FAX char

    15

    ALTER TABLE SALESPEOPLE RENAME ADDRESS TO COUNTRY; ADDRESS

    COUNTRY

    7. 1

    ( u n i q u e ) ( C U S N O ) (CUSTOMERTAB) (integrity) (unique)

  • MK380 - SQL 15

    Ch 4 Data Base

    DBMS

    8. (Index)

    DBMS

    DBMS 2999 2999 CUSNO CUSNO 2999

    CREATE INDEX ON (name>[,]..);CREATE INDEX index name table name

    ( SALENO)

  • MK380 - SQL 16

    Ch 4 Data Base

    CREATE UNIQUE INDEX CLIENTGROUP ON CUSTOMERSTAB(SALENO);

    UNIQUE ( index) CLIENTGROUP SALENO CLIENTGROUP ( index) SALENO index CLIENTGROUP

    9. DROP INDEX

    DROP INDEX ;DROP INDEX index name

    CLIENTGROUP DROP INDEX CLIENTGROUP ; CLIENTGROUP

    ***

    SQL (Data manipulation Language : DML) SQL SQL CREATE TABLE

  • MK380 - SQL 17

    Ch 4 Data Base

    (INSERT) (UPDATE) (DELETE) (SELECT)

    SQL (INSERT) (UPDATE) (DELETE) 3 SQL (SELECT)

    1. INSERT 2

    1.1 INSERT

    INSERT INTO [(column 1, column 2,)]VALUE();INSERT INTO tablename column 1, column 2,value1,value2,

    INSERT INTO SALESTABVALUES( 1001, Chaiwat, Bangkok,0.12);

    SALENO SALENAME ADDRESS SALECOM1001 Chaiwat Bangkok 0.12

  • MK380 - SQL 18

    Ch 4 Data Base

    Bangkok Arlee

    2001 INSERT INTO CUSTOMERSTAB(ADDRESS,CUSNAME,CUSNO)VALUES( 'Bangkok','Arlee', 2001); ADDRESS Bangkok CUSNAME Arlee CUSNO 2001

    CUSNO CUSNAME ADDRESS RATING SALENO2001 Arlee Bangkok

    RATING SALENO NULL

    1.2 SQL INSERT

    INSERT INTO [(column 1, column 2,)]SELECT statement;INSERT INTO tablename SELECT statement SELECT

    BANGKOKSTAFF

    BangkokINSERT INTO BANGKOKSTAFFSELECT *FROM SALESTABWHERE ADDRESS = Bangkok;

  • MK380 - SQL 19

    Bangkok ( ADDRESS = Bangkok) BANGKOKSTAFF BANGKOKSTAFF CREATE TABLE BANGKOKSTAFF 4 ( )

    2.

    SQL 1 WHERE UPDATE SET [, column 2,] = [WHERE];UPDATE table name SET

  • MK380 - SQL 20

    expression WHERE RATING 200 UPDATE CUSTOMERSTAB SET RATING = 200;

    RATING 200 Ch 4 Data Base

  • MK380 - SQL 21

    RATING

    (SALENO) 1001 RATING 200UPDATE CUSTOMERSTABSET RATING = 200WHERE SALENO = 1001;

    1001 RATING 200 Ch 4 Data Base

  • MK380 - SQL 22

    Ch 4 Data Base

    3.

    WHERE DELETE FROM [WHERE];DELETE FROM table name WHERE

    Ternjai

    (SALENO)=1003 DELETE FROM SALESTABWHERE SALENO = 1003;

    (SALESTAB)SALENO SALENAME ADDRESS SALECOM

    1001 Chaiwat Bangkok 0.121002 Mitree Puket 0.131004 Benjawan Bangkok 0.111007 Kanjana Chiangmai 0.151003 Ternjai Nonthaburi 0.10

    SALENO SALENAME ADDRESS SALECOM1001 Chaiwat Bangkok 0.121002 Mitree Puket 0.131004 Benjawan Bangkok 0.111007 Kanjana Chiangmai 0.15

  • MK380 - SQL 23

    Ch 4 Data Base

    DELETE

    DELETE FROM SALESTAB;

    DROP TABLE

    SALESTAB DROP TABLE SALESTAB;

    Query

    SQL SELECT

    1. SELECT SELECT *FROM ;SELECT * FROM table name 1 1

    (,) (*) SELECT SELECT FROM

    SELECT (*) SELECT

  • MK380 - SQL 24

    Ch 4 Data Base

    CHECKSCHECK# PAYEE AMOUNT REMARKS1. Malee Benjanee 150 Have sons next time2. Reading R.R 24534 Train to Chiangmai3. Malee Benjanee 20032 Cellular Phone4. Surasit Utities 98 Gas5. Jintana $ Mitree 150 Groesries6. Cash 25 Wild Night Out7. Benjawan Gas 251 Gas

    (*)

    select * from checks;

    CHECK# PAYEE AMOUNT REMARKS

    1. Malee Benjanee 150 Have sons next time2. Reading R.R 24534 Train to Chiangmai3. Malee Benjanee 20032 Cellular Phone4. Surasit Utities 98 Gas5. Jintana $ Mitree 150 Groesries6. Cash 25 Wild Night Out7. Benjawan Gas 251 Gas

    select * CHECKS (from checks)

  • MK380 - SQL 25

    Ch 4 Data Base

    2. SELECT

    SELECT SELECT FROM ;SELECT column 1, column 2,FROM table name

    CHECK# AMOUNT

    SELECT CHECK#, amount from checks;

    CHECK# AMOUNT1 1502 245343 200324 985 1506 257 251

  • MK380 - SQL 26

    Ch 4 Data Base

    SELECT PAYEE, REMARKS, AMOUNT, CHECK#FROM checks;

    PAYEE REMARKS AMOUNT CHECK#

    Malee Benjanee Have sons next time 150 1Reading R.R. Train to Chiangmai 24534 2Malee Benjanee Cellular Phone 20032 3Surasit Utilities Gas 98 4Jintana $ Mitree Groesries 150 5Cash Wild Night Out 25 6Benjawan Gas Gas 251 7

    3. Distinction CHECKS AMOUNT select amount from checks;

    AMOUNT15024534200329815025251

  • MK380 - SQL 27

    Ch 4 Data Base

    AMOUNT 150 Distinct SELECT

    select DISTINCT amount from checks;

    AMOUNT25251981502003224534

    6

    4. SELECT WHERESELECT FROM [WHERE];SELECT column 1, column 2,FROM table name WHERE WHERE SELECT

    SELECT

  • MK380 - SQL 28

    Ch 4 Data Base

    BIKESNAME FRAMESIZE COMPOSITION MILESRIDDEN TYPETREK 2300 22.5 CARBON FIBER 3500 RACINGBURLEY 22 STEEL 2000 TANDEMGIANT 19 STEEL 1500 COMMUTERFUJI 20 STEEL 500 TOURINGSPECIALIZED 16 STEEL 100 MOUNTAINCANNONDALE 22.5 ALUMINUM 3000 RACING

    BURLEY WHERE SELECT * FROM BIKESWHERE NAME = BURLEY ;

    NAME FRAMESIZE COMPOSITION MILESRIDDEN TYPEBURLEY 22 STEEL 2000 TANDEM

    5. SQL WHERE

    SQL 4 1. (Arithmetic Operators)2. (Comparison Operators)3. (Character Operators)4. (Logical Operators)

    1. (Arithmetic Operators) operators plus (+) minus (-), divide(/), multiply (*), and modulo (%)

    - Plus (+) 2 PRICE

  • MK380 - SQL 29

    Ch 4 Data Base

    ITEM WHOLESALETOMATOES 34POTATOES 51BANANAS 67TURNIPS 45CHEESE 89APPLES 23

    WHOLESALE 15

    WHOLESALE 15 WHOLESALE PRICE WHOLESALE PRICE

    WHOLESALE+15 WHOLESALE +15 RETAIL

    SELECT ITEM, WHOLESALE, (WHOLESALE + 0.15) RETAILFROM PRICE;

    ITEM WHOLESALE RETAIL

    TOMATOES 34 49POTATOES 51 66BANANAS 67 82TURNIPS 45 60CHEESE 89 104APPLES 23 38

    ITEM PRICE PRODUCE (,) ITEM PRODUCE SQL ITEM PRODUCE

  • MK380 - SQL 30

    Ch 4 Data Base

    SELECT ITEM PRODUCE, WHOLESALE, WHOLESALE * 0.25 RETAILFROM PRICE:

    PRODUCE WHOLESALE RETAILTOMATOES 34 59POTATOES 51 76BANNANAS 67 92TURNIPS 45 70CHEESE 89 114APPLES 23 48

    Minus (-) Minus 2 1. 2.

    1. HILOW HILOW

    STATE HIGHTEMP LOWTEMPCA 120 -50FL 110 20LA 101 15ND 99 -70NE 100 -60

    HIGHTEMP LOWTEMP

    HIGHTEMP LOWS LOWTEMP HIGHS

    SELECT STATE, - HIGHTEMP LOWS, -LOWTEMP HIGHSFROM HILOW;

  • MK380 - SQL 31

    Ch 4 Data Base

    STATE LOWS HIGHSCA -120 50FL -110 -20LA -101 -15ND -99 70NE -100 60

    2.

    HIGHTEMP LOWTEMP DIFFERENCE

    SELECT STATE,HIGHTEM LOWS,LOWTEMP HIGHS, (HIGHTEMP - LOWTEMP ) DIFFERENCEFROM HILOW;

    STATE LOWS HIGHS DIFFERENCECA -50 120 170FL 20 110 90LA 15 99 84ND -70 101 171NE -60 100 160

  • MK380 - SQL 32

    Ch 4 Data Base

    Divide (/) PRICE

    ITEM WHOLESALETOMATOES 34POTATOES 51BANNANAS 67TURNIPS 45CHEESE 89APPLES 23

    WHOLESALE 2 SALEPRICE

    SELECT ITEM, WHOLESALE, (WHOLESALE/2) SALEPRICEFROM PRICE;

    ITEM WHOLESALE SALEPRICETOMATOES 34 17POTATOES 51 25.5BANNANAS 67 33.5TURNIPS 45 22.5CHEESE 89 44.5APPLES 23 11.5

    SALEPRICE WHOLESALE 2

  • MK380 - SQL 33

    Ch 4 Data Base

    Multiply (*)

    PRICEITEM WHOLESALETOMATOES 34POTATOES 51BANANAS 67TURNIPS 45CHEESE 89APPLES 23

    WHOLESALE 0.9

    NEWPRICE SELECT ITEM, WHOLESALE, WHOLESALE * 0.9 NEWPRICEFROM PRICE;

    ITEM WHOLESALE NEWPRICETOMATOES 34 30.6POTATOES 51 45.9BANANAS 67 60.3TURNIPS 45 40.5CHEESE 89 80.1APPLES 23 20.7

  • MK380 - SQL 34

    Ch 4 Data Base

    Modulo (%) REMAINS

    NUMERATOR DENOMENATOR10 58 323 940 171024 1685 34

    REMAINDER

    NUMERATOR DENOMINATOR REMAINDER

    SELECT NUMERATOR,DENOMINATOR,NUMERATOR%DENOMINATOR REMAINDERFROM REMAINS;

    NUMERATOR DENOMENATOR REMAINDER10 5 08 3 223 9 540 17 61024 16 085 34 17

  • MK380 - SQL 35

    Ch 4 Data Base

    % Modulo SQL MOD %

    SELECT NUMERATOR,DENOMINATOR,MOD(NUMERATOR, DENOMONATOR) REMAINDERFROM REMAINS;

    4.2. (Comparison Operators Operator 3 (TRUE) (FALSE) (Unknown)

    NULL PRICE

    ITEM WHOLESALETOMATOES 34POTATOES 51BANANAS 67TURNIPS 45CHEESE 89APPLES 23ORANGES

    ITEM WHOLESALE WHOLESALE SELECT *FROM PRICEWHERE WHOLESALE IS NULL;

    SELECT *FROM PRICEWHERE WHOLESALE = NULL;

  • MK380 - SQL 36

    Ch 4 Data Base

    ITEM WHOLESALEORANGES

    4.3 (Character Operators) LIKE

    LIKE (WILD Card) % _()

    - % T WHERE SALENAME LIKE T%

    - _ 1 S 7

    WHERE SALENAME LIKE S______SELECT PAYEE, AMOUNT, REMARKSFROM CHECKSWHERE PAYEE LIKE (CA%);

    PAYEE AMOUNT REMARKSCash 25 Wild Night OutCash 60 Trip to SaraburiCash 34 Trip to Nonthaburi

    LIKE WITHSELECT PAYEE, AMOUNT, REMARKSFROM CHECKSWHERE PAYEE STARING WITH (Ca);

  • MK380 - SQL 37

    Ch 4 Data Base

    PAYEE AMOUNT REMARKSCash 25 Wild Night OutCash 60 Trip to SaraburiCash 34 Trip to Nonthaburi

    PAYEE Ca REMARKS G

    SELECT PAYEE, AMOUNT, REMARKSFROM CHECKSWHERE PAYEE STARTING WITH(Ca)

    ORREMARKS LIKE G%;

    PAYEE AMOUNT REMARKSSurasit Utilities 98 GasJintana $ Mitree 150 GroceriesCash 25 Wild Night OutBenjawan Gas 251 GasCash 60 Trip to SaraburiCash 34 Trip to NonthaburiBenjawan Gas 1575 Gas

  • MK380 - SQL 38

    Ch 4 Data Base

    4.4 (Logical Operator) 2

    VACATIONLASTNAME EMPLOYEENUM YEARS LEAVETAKENARLEE 101 2 4AMPORNI 104 5 23JINTANA 107 8 45BOLIVAR 233 4 80TANACHOTE 210 15 100TAWATCHI 211 10 78

    12 B 50

    SELECT * LASTNAME, YEARS * 12 LEAVETAKEN REMAININGFROM VACATIONWHERE LASTNAME LIKE B%ANDYEARS * 12 LEAVETAKEN > 50;

    LASTNAME REMAININGJINTANA 51TANACHOTE 80

    YEARS * 12 LEAVETAKEN

    AND 2 TURE TURE

    TRUE TURE FALSE FALSE 5 50%

  • MK380 - SQL 39

    Ch 4 Data Base

    SELECT LASTNAME WORKAHOLICSFROM VACATIONWHERE YEARS >=5AND((YEARS *12) LEAVETAKEN)/(YEARS *12) >=0.50;

    WORKAHOLICSAMPORNIJINTANA

    OR SELECT LASTNAME WORKAHOLICSFROM VACATIONWHERE YEARS >=5

    OR((YEARS *12) LEAVETAKEN)/(YEARS *12)>=0.50;

    WORKAHOLICSARLEEAMPORNIJINTANATANACHOTETAWATCHI

    NOT

    SELECT *FORM VACATIONWHERE LASTNAME NOT LIKE B%;

  • MK380 - SQL 40

    Ch 4 Data Base

    LASTNAME EMPLOYEENUM YEARS LEAVETAKENARLEE 101 2 4COSTALES 211 10 78

    NOT NULL not null PRICE

    ITEM WHOLESALETOMATOES 34POTATOES 51BANANAS 67TURNIPS 45CHEESE 89APPLES 23ORANGES

    not null null

    SELECT *FROM PRICEWHERE wholesale is not null;

    ITEM WHOLESALETOMATOES 34POTATOES 51BANANAS 67TURNIPS 45CHEESE 89APPLES 23

  • MK380 - SQL 41

    Ch 4 Data Base

    IN BETWEEN IN

    SELECT *FROM FRIENDSWHERE STATE= Chiangmai

    ORSTATE = Bangkok

    ORSTATE = Puket;

    LASTNAME FIRSTNAME PHONE ADDRESSSIRIWAN ARLEEWAN 555-6666 BangkokSURASIT CHAIYO 555-6767 PuketWICHAI AMPORNWAN 555-3116 Chiangmai

    SELECT *FROM FRIENDSWHERE STATE IN (Chiangmai , Bangkok , Puket );

    LASTNAME FIRSTNAME PHONE ADDRESSSIRIWAN ARLEEWAN 555-6666 BangkokSURASIT CHAIYO 555-6767 PuketWICHAI AMPORNWAN 555-3116 Chiangmai

    BETWEENAND

    BETWEENAND

  • MK380 - SQL 42

    Ch 4 Data Base

    SELECT *FROM PRICEWHERE WHOLESALE >25

    ANDWHOLESALE < 75;

    ITEM WHOLESALETOMATOES 34POTATOES 51BANANAS 67TURNIPS 45

    BETWEEN SELECT *FROM PRICEWHERE WHOLESALE BETWEEN 25 AND 75;

    ITEM WHOLESALETOMATOES 34POTATOES 51BANANAS 67TURNIPS 45

  • MK380 - SQL 43

    Ch 4 Data Base

    SQL SQL SQL 6

    1. (Aggregate functions)2. (Date and tune functions)3. (Arithmetic functions)4. (Character functions)5. (Conversion functions)6. (Miscellaneous functions)

    1.(Aggregate Functions) 1 (Aggregate

    Functions) COUNT,SUM,AVG,MAX MIN SQL

    COUNT 2

    COUNT (*) ( NULL)

    COUNT (DISTINCT ) ( NULL)

    SUM AVG

    (NULL VALUE) AVG ( DISTINCT AVG (DISTINCT )

    MAX MIN

  • MK380 - SQL 44

    Ch 4 Data Base

    1.1 COUNT (X) (X) TEAMGAME

    NAME AB HITS WALKS SINGLES DOUBLES TRIPLES HRJONES 145 45 34 31 8 1 5DONKNOW 175 65 50 50 10 1 4WORLEY 157 49 35 35 8 3 3DAVID 187 70 48 48 4 0 17HAMHOCKER 50 12 10 10 2 0 0CASEY 1 0 0 0 0 0 0

    TEAMGAME HIT AB 0.35

    SELECT COUNT(*)FROM TEAMGAMEWHERE HITS/AB < .35; HIT AB 0.35

    COUNT (*)4

    NUM_BELOW_350SELECT COUNT(*) NUM_BELOW_350FROM TEAMGAMEWHERE HITS/AB < .35;

    NUM_BELOW_3504

  • MK380 - SQL 45

    Ch 4 Data Base

    HIT AB 0.35SELECT COUNT(NAME) NUM_BELOW_350FROM TEAMGAMEWHERE HITS/AB < .35;

    -NUM_BELOW_3504

    TEAMGAME SELECT COUNT(*)FROM TEAMGAME;

    COUNT(*)6

    1.2 SUM (X) (X)

    SINGLES TEAMGAME TOTAL.SINGLES

    SELECT SUM(SINGLES) TOTAL_SINGLESFROM TEAMGAME;

    TOTAL_SINGLES174

    SINGLES, DOUBLES, TRIPLES, HR TEAMGAME TOTAL.SIGLES, TOTAL_DOUBLES, TOTAL_TRIPLES, TOTAL_HR

  • MK380 - SQL 46

    Ch 4 Data Base

    SELECT SUM(SINGLES) TOTAL_SINGLES, SUM(DOUBLES) TOTAL_DOUBLES,SUM(TRIPLES) TOTAL_TRIPLES, SUM(HR) TOTAL_HRFROM TEAMGAME; SINGLES, DOUBLES, TRIPLES, HR

    TOTAL_SIGLES TOTAL_DOUBLES, TOTAL_TRIPLES, TOTAL_HR

    TOTAL_SINGLES TOTAL_DOUBLES TOTAL_TRIPLES TOTAL_HR174 32 5 29

    SINGLES, DOUBLES, TRIPLES, HR TEAMGAME HITS AB .300 TOTAL_SIGLES, TOTAL_DOUBLES, TOTAL_TRIPLES, TOTAL_HR

    SELECT SUM(SINGLES) TOTAL_SINGLES, SUM(DOUBLES) TOTAL_DOUBLES,SUM(TRIPLES) TOTAL_TRIPLES, SUM(HR) TOTAL_HRFROM TEAMGAME;WHERE HITS/AB > = .300; HITS

    AB .300 TOTAL_SIGLES, TOTAL_DOUBLES, TOTAL_TRIPLES, TOTAL_HR

    TOTAL_SINGLES TOTAL_DOUBLES TOTAL_TRIPLES TOTAL_HR164 30 5 29

    NAMESELECT SUM(NAME)FROM TEAMGAME; ERROR NAME

    SUM SUM ERROR

  • MK380 - SQL 47

    Ch 4 Data Base

    ERROR:ORA-01722: invalid numberNo rows selected

    1.3 AVG (X) (X)

    HITS HIT_AVERAGESELECT AVG(HITS) HITS_AVERAGEFROM TEAMGAME; HITS HIT

    6HITS_AVERAGE40.166666

    1.4 MAX (X) (X)

    HITS SELECT MAX(HITS)FROM TEAMGAME; HITS 70

    MAX(HITS)70

    HITS SELECT NAMEFROM TEAMGAMEWHERE HITS = MAX(HITS); ERROR (Aggregate function)

    WHERE ERROR WHERE HITS = MAX(HITS); MAX(HITS)

  • MK380 - SQL 48

    Ch 4 Data Base

    WHERE CROUP BY HAVING

    ERROR at line 3:ORA 00934: group function is not allowed here

    MAX SELECT MAX (NAME)FROM TEAMGAME; (A-Z)

    MAX(NAME)WORLEY

    1.5 MIN (X) (X)

    ABSELECT MIN(AB)FROM TEAMGAME; AB

    MIN (AB)1

    MIN SELECT MIN(NAME)FROM TEAMGAME; (A-Z)

    MIN (NAME)CASEY

  • MK380 - SQL 49

    Ch 4 Data Base

    ABSELECT MIN(AB), MAX(AB)FROM TEAMGAME; AB

    MIN (AB) MAX (AB)1 187

    1.6 VARIANC (X) 2(S2) X

    VARIANC HITSSELECT VARIANCE(HITS)FROM TEAMGAME; VARIANCE HITS

    VARIANCE(HITS)802.96667

    VARIANCE NAMESELECT VARIANCE(NAME)FROM TEAMGAME; ERROR VARIANCE

    ERROR:ORA-01722: invalid numberNo rows selected

    1.7 STDDEV (X)

    (sum of squares) X

  • MK380 - SQL 50

    Ch 4 Data Base

    HITSSELECT STDDEV(HITS)FROM TEAMGAME; HITS

    STDDEV(HITS)28.336666

    SELECT STDDEV(NAME)FROM TEAMGAME;

    ERROR STDDEV ERROR:ORA-01722: invalid numberno rows selected

    AB

    SELECT COUNT(AB),AVG(AB),MIN(AB),MAX(AB),STDEV(AB),VARIANCE(AB),SUM(AB),FROM TEAMGAME;

    COUNT(AB)

    AVG(AB)

    MIN(AB)

    MAX(AB)

    STDDEV(AB)

    VARIANCE(AB)

    SUM(AB)

    6 119.167 1 187 75.589 5712.97 715

  • MK380 - SQL 51

    Ch 4 Data Base

    2. (Date and tune functions)

    PROJECTTASK STARTDATE ENDDATEKICKOFF MTG 01-APR-2001 01-APR-2001TECH SURVEY 02-APR-2001 01-MAY-2001USER MTGS 15-MAY-2001 30-MAY-2001DESIGN WIDGET 01-JUN-2001 30-JUN-2001CODE WIDGET 01-JUL-2001 02-SEP-2001TESTING 03-SEP-2001 17-JAN-2002

    2.1 ADD_MONTHS (X,Y) (Y) X

    ENDDATE 2 TASK, STARTDATE ENDDATE ORIGINALEND 2 ADD_MONTH

    SELECT TASK,STARTDATE, ENDDATE ORIGINAL_END,ADD_MONTHS(ENDDATE,2)FROM PROJECT; ADD_MONTHS 1 ENDDATE

    2

    TASK STARTDATE ORIGINAL ADD_MONTHKICKOFF MTG 01-APR-2001 01-APR-2001 01-JUN-2001TECH SURVEY 02-APR-2001 01-MAY-2001 01-JUN-2001USER MTGS 15-MAY-2001 30-MAY-2001 30-JUN-2001DESIGN WIDGET 01-JUN-2001 30-JUN-2001 31-AUG-2001CODE WIDGET 01-JUL-2001 02-SEP-2001 02-NOV-2001TESTING 03-SEP-2001 17-JAN-2002 17-MAR-2002

  • MK380 - SQL 52

    Ch 4 Data Base

    1 SELECT TASK, TASKS_SHORTER_THAN_ONE_MONTHFROM PROJECTWHERE ADD_MONTHS(STARTDATE, 1) > ENDDATE; TASKS_SHORTER_THAN_ONE_MONTH

    1 TASKS_SHORTER_THAN_ONE_MONTHKICKOFF MTGTECH SURVEYUSER MTGSDESIGN WIDGET

    2.2 LAST_DAY (X) (X)

    SELECT ENDDATE, LAST_DAY(ENDDATE)FROM PROJECT; LAST_DAY (ENDDATE)

    ENDDATEENDDATE LAST_DAY(ENDDATE)01-APR-2001 30-APR-200101-MAY-2001 31-MAY-200130-MAY-2001 31-MAY-200130-JUN-2001 30-JUN-200102-SEP-2001 30-SEP-200117-JAN-2002 31-JAN-2002

  • MK380 - SQL 53

    Ch 4 Data Base

    2.3 MONTHS_BETWEEN (X,Y) X Y STARIDATE ENDDATE

    SELECT TASK, STARTDATE, ENDDATE, MONTHS_BETWEEN(STARTDATE,

    ENDDATE)DURATIONFROM PROJECT; DURATION STARTDATE

    ENDDATE TASK STARTDATE ENDDATE DURATIONKICKOFF MTG 01-APR-2001 01-APR-2001 0TECH SURVEY 02-APR-2001 01-MAY-2001 -.9677419USER MTGS 15-MAY-2001 30-MAY-2001 -.483871DESIGNWIDGET

    01-JUN-2001 30-JUN-2001 -.9354839

    CODE WIDGET 01-JUL-2001 02-SEP-2001 -2.032258TESTING 03-SEP-2001 17-JAN-2002 -4.451613

    ENDDATE SELECT TASK, STARTDATE, ENDDATE,MONTHS_BETWEEN(ENDDATE ,STARTDATE) DURATIONFROM PROJECT; DURATION ENDDATE

    STARIDATE

  • MK380 - SQL 54

    Ch 4 Data Base

    TASK STARTDATE ENDDATE DURATOPNKICKOFF MTG 01-APR-2001 01-APR-2001 0TECH SURVEY 02-APR-2001 01-MAY-2001 .96774194USER MTGS 15-MAY-2001 30-MAY-2001 .48387097DESIGN WIDGET 01-JUN-2001 30-JUN-2001 .93548387CODE WIDGET 01-JUL-2001 02-SEP-2001 2.0322581TESTING 03-SEP-2001 17-JAN-2002 4.4516129

    15 MAY 2001SELECT *FROM PROJECTWHERE MONTHS_BETWEEN(19 MAY 2001,STARTDATE) > 0; 19 MAY 2001

    TASK STARTDATE ENDDATEKICKOFF MTG 01-APR-2001 01-APR-2001TECH SURVEY 02-APR-2001 01-MAY-2001USER MTGS 15-MAY-2001 30-MAY-2001

    ORA-01428: ARGUMENT -45 is out of range CEIL SELECT A, CEIL(B), POWER(A,CEIL(B))FROM NUMBERS; CELI (B) B

    POWER (A,CEIL(B)

  • MK380 - SQL 55

    Ch 4 Data Base

    A CEIL(B) POWER(A,CEIL(B))3.1415 4 97.3976-45 1 -455 9 1953125-57.667 42 9.098E+7315 55 4.842E+64-7.2 6 139314.07

    3.8 SIGN (X) - 1 X 0- 0 X 0- 1 X 0

    SIGN ASELECT A, SIGN(A)FROM NUMBERS;

    A SIGN (A)3.1415 1-45 -15 1-57.667 -115 1-7.2 -10 0

    SIGN 1 ASELECT AFROM NUMBERSWHERE SIGN(A) =1;

  • MK380 - SQL 56

    Ch 4 Data Base

    A SIGN 1A3.1415515

    3.9 SQRT (X) 2 X 2 A

    SELECT A, SQRT(A)FROM NUMBERS;

    ERROR 2 ERROR:ORA-01428: ARGUMENT -45 is out of range

    A 2SELECT ABS(A), SQRT(ABS(A))FROM NUMBERS; A 2

    AABS(A) SQRT(ABS(A))3.1415 1.772427745 -16.70820395 12.23606857.667 7.593879115 3.87298337.2 2.68328160 0

  • MK380 - SQL 57

    Ch 4 Data Base

    4. (Character functions)

    CHARACTERS

    LASTNAME FIRSTNAME M CODEPURVIS KELLY A 32TAYLOR CHUCK J 67CHRISTINE LAURA C 65ADAMS FESTER M 87COSTALES ARMANDO A 77KONG MAJOR G 52

    4.1 CHR ASCII

    ASCII CODE

    SELECT CODE, CH(CODE)FROM CHARACTERS;

    CODE CH3267 C65 A87 W77 M52 4

  • MK380 - SQL 58

    Ch 4 Data Base

    4.2 CONCAT (X,Y) (X Y) FIRSINAME LASTNAME

    SELECT CONCAT(FIRSTNAME, LASTNAME) FIRST AND LAST NAMESFROM CHARACTERS; FIRSTNAME LASTNAME

    FIRST AND LASTNAMESFIRST AND LAST NAMESKELLY PURVISCHUCK TAYLORLAURA CHRISTINEFESTER ADAMSARMANDO COSTALESMAJOR KONG

    4.3 INITCAP () (string) FIRSTNAME

    SELECT FIRSTNAME BEFORE, INITCAP(FIRSTNAME) AFTERFROM CHARACTERS;

    BEFORE AFTERKELLY KellyCHUCK ChuckLAURA LauraFESTER FesterARMANDO ArmandoMAJOR Major

  • MK380 - SQL 59

    Ch 4 Data Base

    4.4 LOWER () and UPPER () LOWER () () UPPER () ()

    FIRSTNAME UPDATE

    UPDATE CHARACTERSSET FIRSTNAME = kellyWHERE FIRSTNAME = KELLY;

    1 1 rows update.

    LOWER UPPER

    SELECT FIRSTNAME, UPPER(FIRSTNAME), LOWER(FIRSTNAME)FROM CHARACTERS; FIRSTNAME

    FIRSTNAME UPPER

    (FIRSTNAME)LOWER(FIRSTNAME}

    Kelly KELLY kellyCHUCK CHUCK chuckLAURA LAURA lauraFESTER FESTER festerARMANDO ARMANDO armandoMAJOR MAJOR major

  • MK380 - SQL 60

    Ch 4 Data Base

    4.7 REPLACE (,X,Y) X Y ST ST LASTNAME

    SELECT LASTNAME, REPLACE(LASTNAME, ST) REPLACEMENTFROM CHARACTERS; 3 6 LASTNAME ST

    LASTNAME REPLACEMENTPURVIS PURVISTAYLOR TAYLORCHRISTINE CHRIINEADAMS ADAMSCOSTALES COALESKONG KONG

    ST LASTNAME **SELECT LASTNAME, REPLACE(LASTNAME, ST, **) REPLACEMENTFROM CHARACTERS; 3 6 LASTNAME ST

    **LASTNAME REPLACEMENTPURVIS PURVISTAYLOR TAYLORCHRISTINE CHRI**INEADAMS ADAMSCOSTALES CO**ALESKONG KONG

  • MK380 - SQL 61

    Ch 4 Data Base

    4.8 SUBSTR (,x,y) () x

    2 3 FIRSTNAMESELECT FIRSTNAME, SUBSTR(FIRSTNAME,2,3)FROM CHARACTERS; FIRSTNAME 3

    3 FIRSTNAME SUBKelly EllCHUCK HUCLAURA AURFESTER ESTARMANDO RMAMAJOR AJO

    3 SELECT FIRSTNAME, SUBSTR(FIRSTNAME,3)FROM CHARACTERS; FIRSTNAME 3

    FIRSTNAME SUBSTR(FIRSTNKelly LlyCHUCK UCKLAURA URAFESTER STERARMANDO MANDOMAJOR JOR

  • MK380 - SQL 62

    Ch 4 Data Base

    5. (Conversion functions)5.1 TO_CHAR data type

    SELECT TESTNUM, TO_CHAR(TESTNUM)FROM CONVERSIONS;

    TESTNUM TO_CHAR(TESTNUM)95 9523 2368 68

    SELECT TESTNUM, LENGTH(TO_CHAR(TESTNUM))FROM CONVERSIONS;

    TESTNUM LEGTH(TO_CHAR(TESTNUM))

    95 223 268 2

  • MK380 - SQL 63

    Ch 4 Data Base

    1. SELECT FROM [WHERE][GROUP BY < grouping column>][HAVING];

    SELECT : column 1, column 2, : FROM : table name : WHERE GROUP BY < grouping column> HAVING GROUP BY GROUP BY

    GROUP BY GROUP BY GROUP BY GROUP BY

  • MK380 - SQL 64

    Ch 4 Data Base

    CHECKSCHECK# PAYEE AMOUNT REMARKS1 Malee Benjanee 150 Have sons next time2 Reading R.R. 24534 Train to Chiangmai3 Malee Benjanee 20032 Cellular Phone4 Surasit Utilities 98 Gas5 Jintana $ Mitree 150 Groceries16 Cash 25 Wild Night Out17 Benjawan Gas 251 Gas9 Arun Cleaners 2435 X-Tra Starch20 Arun Cleaners 105 All Dry clean8 Cash 60 Trip to Saraburi21 Cash 34 Trip to Nonthaburi30 Surasit Utilities 875 Water31 Surasit Utilities 34 Sewer25 Benjawan Gas 1575 Gas

    AMOUNT CHECKS SELECT PAYEE, SUM(AMOUNT)FROM CHECKS; GROUP BY AMOUNT ERROR

    Dynamic SQL Error-SQL error code = -104-invalid column reference

    PAYEE SELECT PAYEE, SUM(AMOUNT), COUNT(PAYEE)FROM CHECKSGROUP BY PAYEE;

  • MK380 - SQL 65

    Ch 4 Data Base

    PAYEE SUM COUNTArun Cleaners 2540 2Cash 119 3Benjawan Gas 1826 2Jintana $ Mitree 150 1Surasit Utilities 1007 3Malee Benjanee 10182 2Reading R.R. 24534 1

    ORGCHARTNAME TEAM SALARY SICKLEAVE ANNUALLEAVEASAMS RESEARCH 34000.00 34 12WILKES MARKETING 31000.00 40 9STOKES MARKETING 36000.00 20 19MEZA COLLECTIONS 40000.00 30 27SIRIWAN RESEARCH 45000.00 20 17RICHARDSON MARKETING 42000.00 25 18FURY COLLECTIONS 35000.00 22 14PRECOURT PR 37500.00 24 24

    SALARY TEAM TEAM SELECT TEAM, AVG(SALARY)FROM ORGCHARTGROUP BY TEAM;

  • MK380 - SQL 66

    Ch 4 Data Base

    TEAM AVGCOLLECTIONS 37500.00MARKETING 36333.33PR 37500.00RESEARCH 39500.00

    HAVING HAVING GROUP BY GROUP BY HAVING 38000

    SELECT TEAM, AVG(SALARY)FROM ORGCHARTGROUP BY TEAMHAVING AVG(SALARY) < 38000;

    TEAM AVGPR 37500.00

    GROUP BY HAVING AND SICKLEAVE 25 ANNUALLEAVE 20

    SELECT TEAM, AVG(SICKLEAVE), AVG(ANNUALLEAVE)FROM ORGCHARTGROUP BY TEAMHAVING AVG(SICKLEAVE) >25 ANDAVG(ANNUALLEAVE)

  • MK380 - SQL 67

    Ch 4 Data Base

    SICKLEAVE ANNUALLEAVE row 1

    SELECT TEAM, AVG(SICKLEAVE), AVG(ANNUALLEAVE)FROM ORGCHARTGROUP BY TEAMHAVING COUNT(TEAM) > 1;

    TEAM AVG AVGCOLLECTIONS 26 21MARKETING 28 15RESEARCH 27 15

    2.

    (normalization) (master table) (transaction table) (address table) SQL WHERE WHERE SELECT FROM TABLE1

    ROW REMARKRow 1 Table 1Row 2 Table 1Row 3 Table 1Row 4 Table 1Row 5 Table 1Row 6 Table 1

  • MK380 - SQL 68

    Ch 4 Data Base

    TABLE 2ROW REMARKRow 1 Table 2Row 2 Table 2Row 3 Table 2Row 4 Table 2Row 5 Table 2Row 6 Table 2

    2 SELECT * FROM TABLE1, TABLES2 ROW REMARK ROW REMARKRow 1 Table 1 Row 1 Table 2Row 1 Table 1 Row 2 Table 2Row 1 Table 1 Row 3 Table 2Row 1 Table 1 Row 4 Table 2Row 1 Table 1 Row 5 Table 2Row 1 Table 1 Row 6 Table 2Row 2 Table 1 Row 1 Table 2Row 2 Table 1 Row 2 Table 2Row 2 Table 1 Row 3 Table 2Row 2 Table 1 Row 4 Table 2Row 2 Table 1 Row 5 Table 2Row 2 Table 1 Row 6 Table 2Row 3 Table 1 Row 1 Table 2Row 3 Table 1 Row 2 Table 2Row 3 Table 1 Row 3 Table 2Row 3 Table 1 Row 4 Table 2Row 3 Table 1 Row 5 Table 2

  • MK380 - SQL 69

    Ch 4 Data Base

    ROW REMARK ROW REMARKRow 3 Table 1 Row 6 Table 2Row 4 Table 1 Row 1 Table 2Row 4 Table 1 Row 2 Table 2Row 4 Table 1 Row 3 Table 2Row 4 Table 1 Row 4 Table 2Row 4 Table 1 Row 5 Table 2Row 4 Table 1 Row 6 Table 2Row 5 Table 1 Row 1 Table 2Row 5 Table 1 Row 2 Table 2Row 5 Table 1 Row 3 Table 2Row 5 Table 1 Row 4 Table 2Row 5 Table 1 Row 5 Table 2Row 5 Table 1 Row 6 Table 2Row 6 Table 1 Row 1 Table 2Row 6 Table 1 Row 2 Table 2Row 6 Table 1 Row 3 Table 2Row 6 Table 1 Row 4 Table 2Row 6 Table 1 Row 5 Table 2Row 6 Table 1 Row 6 Table 2

    3.(subqueries) SELECT

    WHERE

    SELECT [*] FROM [WHERE

  • MK380 - SQL 70

    Ch 4 Data Base

    SELECT column 1, column 2, FROM table name WHERE Select Statement

    ( SELECT ) Bangkok

    SELECT *FROM ORDERSTABWHERE SALENO IN(SELECT SALENOFROM SALETABWHERE ADDRESS = Bangkok);

    ORDERNO AMT ORDERDATE CUSNO SALENO3001 1869 6/03/2000 2008 10073003 76719 6/03/2000 2001 10013002 190010 6/03/2000 2007 10043005 516045 6/03/2000 2003 10023006 109816 6/03/2000 2008 10073009 171323 6/04/2000 2002 10033007 7573 6/04/2000 2004 10023008 472300 6/05/2000 2006 10013010 130995 6/06/2000 2004 10023011 989198 6/06/2000 2006 1001

  • MK380 - SQL 71

    Ch 4 Data Base

    SALENO SALENAME ADDRESS SALECOM1001 Chaiwat Bangkok 0.121002 Mitree Puket 0.131004 Benjawan Bangkok 0.111007 Kanjana Chiangmai 0.151003 Ternjai Nonthaburi 0.10

    ORDERNO AMT ORDERDATE CUSNO SALENO3003 76719 6/03/2000 2001 10013002 190010 6/03/2000 2007 10043008 472300 6/05/2000 2006 10013011 989198 6/06/2000 2006 1001

    SELECT ORDERNO AMT ORDERDATE CUSNO ORDERSTAB. SALENOFROM ORDERSTAB, SALETABWHERE ORDERSTAB.SALENO SALETAB.SALENOAND SALETAB.ADDRESS = Bangkok;

    PARTPARTNUM DESCRIPTION PRICE54 PEDALS 54.2542 SEATS 24.5046 TIRES 15.2523 MOUNTAIN

    BIKE350.45

    76 ROAD BIKE 530.0010 TANDEM 1200.00

  • MK380 - SQL 72

    Ch 4 Data Base

    ORDERSORDEREDON NAME PARTNUM QUANTITY REMARKS15-MAY-2001 TRUE WHEEL 23 6 PAID19-MAY-2001 TRUE WHEEL 76 3 PAID2-SEP-2001 TRUE WHEEL 10 1 PAID30-JUN-2001 BIKE SPEC 54 10 PAID30-MAY-2001 BIKE SPEC 10 2 PAID30-MAY-2001 BIKE SPEC 23 8 PAID17-JAN-2001 BIKE SPEC 76 11 PAID17-JAN-2001 LE SHOPPE 76 5 PAID1-JUN-2001 LE SHOPPE 10 3 PAID1-JUN-2001 AAA BIKE 10 1 PAID1-JUN-2001 AAA BIKE 76 4 PAID1-JUN-2001 AAA BIKE 46 14 PAID11-JUN-2001 JACKS BIKE 76 14 PAID

    SELECT *FROM ORDERSWHERE PARTNUM =(SELECT PARTNUMFROM PARTWHERE DESCRIPTION LIKE ROAD%)

    ORDEREDON NAME PARTNUM QUANTITY REMARKS19-MAY-2001 TRUE WHEEL 76 3 PAID17-JAN-2001 BIKE SPEC 76 11 PAID17-JAN-2001 LE SHOPPE 76 5 PAID1-JUN-2001 AAA BIKE 76 4 PAID11-JUN-2001 JACKS BIKE 76 14 PAID

    : . Visual Basic 6.0

    \(SQL\KanjanaChaiwatMitree

    ArleeBangkok

    Malee Benjanee

    Gas BU

    STEELTOMATOESFLTURNIPSTOMATOESTOMATOES

    REMAINDER

    Cash

    AMOUNTEMPLOYEENUMSIRIWANSURASIT BETWEENAND

    DOUBLES

    CHLAURASELECT FIRSTNAME BEFORE, INITCAP(FIRSTNAME) AFTER

    FESTER CHECKS

    Cash ORGCHART

    MARKETINGMARKETINGCOLLECTIONSTable 1Row 1

    AMTADDRESSNAME