data constraints,group by

Post on 20-Jan-2015

241 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

contains topics about data constraints group by aggregate function subqueries

TRANSCRIPT

SQL INTRODUCTIONFOR CS-2

SQL?

DBMS Owned ByMySQL, Open Source RDMS

MS Access Microsoft

Oracle Oracle Corporation(ORDMS)

Sybase SAP Company

SQL Server Microsoft (RDMS)

Postgresql Open Source RDMS

Informix IBM(RDMS)

Data Constraint

Business ruleI/O constraintPrimary KeyForeign KeyUnique

CheckNOT NULL/NULL

I/O constraint

Primary Key&

Foreign Key

SyntaxDefined at Column Level

Defined at Table Level

PRIMARY KEYUNIQUENOT NULLNOT COMPULSORYCANNOT LONG/LONG RAW DATA TYPEONLY ONE PER TABLECOMBINE UPTO 16 COLOUMNS IN A COMPOSITE PRIMARY KEY

Defined @ Column Level

<Column Name> <Data type> (<Size>) PRIMARY KEY

EX:CREATE TABLE LBS_CS2(

NAME VARCHAR2(25) PRIMARY KEY - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -

);

Defined @ TABLE Level

PRIMARY KEY (<Column Name> , <Column Name> )

EX:CREATE TABLE LBS_CS2(

NO INT,NAME VARCHAR2(25), - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -

PRIMARY KEY(NO,NAME));

FOREIGN KEYParent must be UNIQUE OR PRIMARY KEY Child may have DUPLICATE/NULL Constraint specify on child not in parentParent can delete only if child not existParent cannot modify if child exist

Defined @ Column Level

<Column Name> <Data type> (<Size>) REFERENCES <TABLE NAME>[(<Column Name>)] [ON DELETE CASCADE]

EX:CREATE TABLE LBS_CS2(

ROLL_NO INT,NAME VARCHAR2(25),BRANCH_CODE VARCHAR2(25) REFERENCES BRANCH,- - - - - - - - - - - - - - - - - -

PRIMARY KEY(NO,NAME));

EX:CREATE TABLE LBS_CS2(

ROLL_NO INT,NAME VARCHAR2(25),BRANCH_CODE VARCHAR2(25)

REFERENCES BRANCH (BRANCH_ID),- - - - - - - - - - - - - - - - - -

PRIMARY KEY(NO,NAME));

OR

Defined @ TABLE Level

FOREIGN KEY(<Column Name>[ <Column Name>] ) REFERENCES <TABLE NAME> [(<Column Name> <Column Name>] )]

[ON DELETE SET NULL]

EX:CREATE TABLE LBS_CS2( ROLL_NO INT, NAME VARCHAR2(25), FOREIGN KEY (BRANCH_CODE) REFERENCES BRANCH(BRANCH_ID), - - - - - - - - - - - - - - - - - - PRIMARY KEY(NO,NAME));

UNIQUE KEY CONSTRAINT

Defined @ Column Level

<Column Name> <Data type> (<Size>) UNIQUE

EX:CREATE TABLE LBS_CS2(

ROLL_NUM INT UNIQUE, - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -

);

Defined @ TABLE Level

UNIQUE (<Column Name> , <Column Name> )

EX:CREATE TABLE LBS_CS2(

NO INT,NAME VARCHAR2(25), - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -

UNIQUE(NO,NAME));

Business rule

NOT NULL CONSTRAINT

Defined @ Column Level

<Column Name> <Data type> (<Size>) NOT NULL

EX:CREATE TABLE LBS_CS2(

ROLL_NUM INT NOT NULL, - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -

);

CHECK CONSTRAINT

Defined @ Column Level

<Column Name> <Data type> (<Size>) CHECK (<Logical Expression>)

EX:CREATE TABLE LBS_CS2(

ROLL_NUM INT CHECK (ROLL_NUM > 0) - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -

);

Defined @ TABLE Level

CHECK(<Logical Expression>)

EX:CREATE TABLE LBS_CS2(

ROLL_NO INT,NAME VARCHAR2(25), - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -

CHECK(ROLL_NUM > 0), CHECK (NAME LIKE ‘C%’));

Error:Check constraint violated

Defining Integrity Constraint via ALTER TABLE

command

EX:• ALTER TABLE CS2 ADD PRIMARY KEY(ROLL_NUM)

•ALTER TABLE CS2 ADD FOREIGN KEY (BRANCH_CODE) REFERENCES BRANCH(BRANCH_ID).

•ALTER TABLE CS2 DROP PRIMARY KEY

DEFAULT VALUE CONCEPT

<Column Name> <Data type> (<Size>) DEFAULT <value>

EX:CREATE TABLE LBS_CS2(

ROLL_NO INT,NAME VARCHAR2(25) DEFAULT ‘STUDENT’, - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - -

CHECK(ROLL_NUM > 0), CHECK (NAME LIKE ‘C%’));

breaK K K K . . . . . .

COMPUTATION DONE

ON TABLE DATA

LOGICAL OPERATORS

•AND•OR

EX:SELECT NAME,ROUND(MARK)FROM CS2WHERE NAME LIKE ‘C%’ AND MARK >50 OR MARK <10;

RANGE SEARCHING

• BETWEEN

EX:SELECT NAME FROM CS2WHERE TO_CHAR(DOB,’MM’) BETWEEN 01 AND 04;

EX:SELECT NAME FROM CS2WHERE TO_CHAR(DOB,’YY’) NOT BETWEEN 91 AND 94;

PATTERN MATCHING• LIKE predicate

‘%’ : include zero length

‘_ ‘: match on a single character

IN or NOT IN predicate

EX:SELECT FNAME,LNAME,ADDRESSFROM CS2WHERE FNAME IN (‘EBI’,’ANOOP’,’VIKAS’,’NAVIN’);

EX:SELECT FNAME,LNAME,ADDRESSFROM CS2WHERE FNAME NOT IN (‘EBI’,’ANOOP’,’VIKAS’,’NAVIN’);

DATE MANIPULATION

AGGREGATE FUNCTION

FUNCTION USE

AVG() AVERAGE

MIN() MINIMUM

COUNT() COUNTING

COUNT(*) COUNTING

MAX() MAXIMUM

SUM() TOTAL

ABS() ABSOLUTE

POWER() POWER

ROUND() ROUNDED

SQRT() SQUARE ROOT

EXTRACT()

GREATEST()

LEAST()

EXTRACT({YEAR| MONTH|DAY|HOUR|MINUTE|SECOND| TIMEZONE_HOUR|TIMEZONE_MINUTE| TIMEZONE_REGION |TIMEZONE_ABBR} FROM {DATE |INTERVAL VALUE})

EX:SELECT EXTRACT (YEAR FROM DATE ’2013-09-10’) YEAR,EXTRACT (MONTH FROM SYSDATE) MONTH FROM DUAL;

GREATEST(expr1,expr2. . . .expr_n)

LEAST(expr1,expr2. . . .expr_n)

NO NAME ADDRESS

AGE MARK

1 RESHMA.S.R AAA 45 45

2 RESHMA.S.S BBB 35 30

3 REVATHI.B.R CCC 11 68

4 ROSYLIN DDD 75 75

5 RUBEENA EEE 70 62

6 S. APARNA FFF 56 48

QUESTION

breaK K K K . . . . . .

GROUP BY/ HAVING

SELECT <Column Name 1> <Column Name 2> . .<Column Name N> AGGREGATE_FUNCTION (<EXPRESSION>) FROM TABLE NAME WHERE <Condition>GROUP BY<ColumnName 1> <Column Name 2>.<ColumnNameN >

OR

SUBQUERIES

Subqueries can be used with the SELECT, INSERT, UPDATE, and DELETE statements along with the operators like =, <, >, >=, <=, IN, BETWEEN etc.

RULES:• must be enclosed within parentheses.•can have only one column in the SELECT clause, unless multiple columns are in the main query for the subquery to compare its selected columns.•An ORDER BY cannot be used in a subquery, although the main query can use an ORDER BY.

•The GROUP BY can be used to perform the same function as the ORDER BY in a subquery.•Subqueries that return more than one row can only be used with multiple value operators, such as the IN operator.•The BETWEEN operator cannot be used with a subquery; however, the BETWEEN operator can be used within the subquery.

Subqueries with the SELECT Statement

SQL> SELECT *FROM CUSTOMERSWHERE ID IN (SELECT IDFROM CUSTOMERSWHERE SALARY > 4500) ;

Subqueries with the INSERT Statement:

Subqueries with the UPDATE Statement:

output

Subqueries with the DELETE Statement:

Just one more

THANK YOOOOOU

top related