mk380-sql ระบบสารสนเทศทางการตลาด - ภาษา sql
DESCRIPTION
MK380-SQL ระบบสารสนเทศทางการตลาด - ภาษา SQLTRANSCRIPT
-
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