adsense


Wednesday, 4 November 2015

SQL SORTING RESULTS PAGE 23

COMPUTER LANGUAGES HTML,C,C++.JAVA,.NET AND MULTIMEDIA basics and programs click home button



SQL SORTING RESULTS







SQL SORTING Results 


The SQL ORDER BY clause is used to sort the data in ascending or descending order, based on one or more columns. Some databases sort query results in ascending order by default. 
Syntax: 
The basic syntax of ORDER BY clause which would be used to sort result in ascending or descending order is as follows: 
SELECT column-list  
FROM table_name  
[WHERE condition]  
[ORDER BY column1, column2, .. columnN] [ASC | DESC]; 
You can use more than one column in the ORDER BY clause. Make sure whatever column you are using to sort, that column should be in column-list. 
Example: 
Consider the CUSTOMERS table having the following records: 
+----+----------+-----+-----------+----------+ 
| ID | NAME     | AGE | ADDRESS   | SALARY   | 
+----+----------+-----+-----------+----------+ 
|  1 | Ramakrishna  |  32 | Ahmedabad |  2000.00 | 
|  2 | Mdhu sudhan rao   |  25 | Delhi     |  1500.00 | 
|  3 | Sai  |  23 | Kota      |  2000.00 | 
|  4 | Kishor  |  25 | Mumbai    |  6500.00 | 
|  5 | Ranjith    |  27 | Bhopal    |  8500.00 | 
|  6 | Abhi    |  22 | MP        |  4500.00 | 
|  7 | Kumar     |  24 | Indore    | 10000.00 | 
+----+----------+-----+-----------+----------+ 
Following is an example, which would sort the result in ascending order by NAME and SALARY: 
SQL> SELECT * FROM CUSTOMERS 
     ORDER BY NAME, SALARY; 
This would produce the following result: 
CHAPTER 23
24 
+----+----------+-----+-----------+----------+ 
| ID | NAME     | AGE | ADDRESS   | SALARY   | 
+----+----------+-----+-----------+----------+ 
|  4 | Kishor  |  25 | Mumbai    |  6500.00 | 
|  5 | Ranjith    |  27 | Bhopal    |  8500.00 | 
|  3 | Sai  |  23 | Kota      |  2000.00 | 
|  2 | Mdhu sudhan rao   |  25 | Delhi     |  1500.00 | 
|  6 | Abhi    |  22 | MP        |  4500.00 | 
|  7 | Kumar     |  24 | Indore    | 10000.00 | 
|  1 | Ramakrishna  |  32 | Ahmedabad |  2000.00 | 
+----+----------+-----+-----------+----------+ 
Following is an example, which would sort the result in descending order by NAME: 
SQL> SELECT * FROM CUSTOMERS 
     ORDER BY NAME DESC; 
This would produce the following result: 
+----+----------+-----+-----------+----------+ 
| ID | NAME     | AGE | ADDRESS   | SALARY   | 
+----+----------+-----+-----------+----------+ 
|  1 | Ramakrishna  |  32 | Ahmedabad |  2000.00 | 
|  7 | Kumar     |  24 | Indore    | 10000.00 | 
|  6 | Abhi    |  22 | MP        |  4500.00 | 
|  2 | Mdhu sudhan rao   |  25 | Delhi     |  1500.00 | 
|  3 | Sai  |  23 | Kota      |  2000.00 | 
|  5 | Ranjith    |  27 | Bhopal    |  8500.00 | 
|  4 | Kishor  |  25 | Mumbai    |  6500.00 | 
+----+----------+-----+-----------+----------+ 
To fetch the rows with own preferred order, the SELECT query would be as follows: 
SQL> SELECT * FROM CUSTOMERS 
    ORDER BY (CASE ADDRESS 
    WHEN 'DELHI'   THEN 1 
    WHEN 'BHOPAL'   THEN 2 
    WHEN 'KOTA'   THEN 3 
    WHEN 'AHMADABAD' THEN 4 
    WHEN 'MP'  THEN 5 
    ELSE 100 END) ASC, ADDRESS DESC; 
This would produce the following result: 
+----+----------+-----+-----------+----------+ 
| ID | NAME     | AGE | ADDRESS   | SALARY   | 
+----+----------+-----+-----------+----------+ 
|  2 | Mdhu sudhan rao   |  25 | Delhi     |  1500.00 | 
|  5 | Ranjith    |  27 | Bhopal    |  8500.00 | 
|  3 | Sai  |  23 | Kota      |  2000.00 | 
|  6 | Abhi    |  22 | MP        |  4500.00 | 
|  4 | Kishor  |  25 | Mumbai    |  6500.00 | 
|  7 | Kumar     |  24 | Indore    | 10000.00 | 
|  1 | Ramakrishna  |  32 | Ahmedabad |  2000.00 | 
+----+----------+-----+-----------+----------+ 
This will sort customers by ADDRESS in your ownoOrder of preference first and in a natural order for the remaining addresses. Also remaining Addresses will be sorted in the reverse alpha order.  
SQL Constraints 
Constraints are the rules enforced on data columns on table. These are used to limit the type of data that can go into a table. This ensures the accuracy and reliability of the data in the database. 
Contraints could be column level or table level. Column level constraints are applied only to one column where as table level constraints are applied to the whole table. 
Following are commonly used constraints available in SQL. These constraints have already been discussed in SQL - RDBMS Concepts chapter but its worth to revise them at this point. 
  
Following are commonly used constraints available in SQL: 

• NOT NULL Constraint: Ensures that a column cannot have NULL value. 

• DEFAULT Constraint: Provides a default value for a column when none is specified. 

• UNIQUE Constraint: Ensures that all values in a column are different. 

• PRIMARY Key: Uniquely identified each rows/records in a database table. 

• FOREIGN Key: Uniquely identified a row/record in any other database table. 

• CHECK Constraint: The CHECK constraint ensures that all values in a column satisfy certain conditions. 

• INDEX: Use to create and retrieve data from the database very quickly. 

NOT NULL Constraint:  
By default, a column can hold NULL values. If you do not want a column to have a NULL value, then you need to define such constraint on this column specifying that NULL is now not allowed for that column. 
A NULL is not the same as no data, rather, it represents unknown data. 
Example: 
For example, the following SQL creates a new table called CUSTOMERS and adds five columns, three of which, ID and NAME and AGE, specify not to accept NULLs: 
CREATE TABLE CUSTOMERS( 
       ID   INT              NOT NULL, 
       NAME VARCHAR (20)     NOT NULL, 
       AGE  INT              NOT NULL, 


















CHAPTER 24
25 
       ADDRESS  CHAR (25) , 
       SALARY   DECIMAL (18, 2),        
       PRIMARY KEY (ID) 
); 
If CUSTOMERS table has already been created, then to add a NOT NULL constraint to SALARY column in Oracle and MySQL, you would write a statement similar to the following: 
ALTER TABLE CUSTOMERS 
   MODIFY SALARY  DECIMAL (18, 2) NOT NULL; 
DEFAULT Constraint:  
The DEFAULT constraint provides a default value to a column when the INSERT INTO statement does not provide a specific value. 
Example: 
For example, the following SQL creates a new table called CUSTOMERS and adds five columns. Here, SALARY column is set to 5000.00 by default, so in case INSERT INTO statement does not provide a value for this column, then by default this column would be set to 5000.00. 
CREATE TABLE CUSTOMERS( 
       ID   INT              NOT NULL, 
       NAME VARCHAR (20)     NOT NULL, 
       AGE  INT              NOT NULL, 
       ADDRESS  CHAR (25) , 
       SALARY   DECIMAL (18, 2) DEFAULT 5000.00,        
       PRIMARY KEY (ID) 
); 
If CUSTOMERS table has already been created, then to add a DFAULT constraint to SALARY column, you would write a statement similar to the following: 
ALTER TABLE CUSTOMERS 
   MODIFY SALARY  DECIMAL (18, 2) DEFAULT 5000.00; 
Drop Default Constraint: 
To drop a DEFAULT constraint, use the following SQL: 
ALTER TABLE CUSTOMERS 
   ALTER COLUMN SALARY DROP DEFAULT; 
UNIQUE Constraint:  
The UNIQUE Constraint prevents two records from having identical values in a particular column. In the CUSTOMERS table, for example, you might want to prevent two or more people from having identical age. 
Example: 
For example, the following SQL creates a new table called CUSTOMERS and adds five columns. Here, AGE column is set to UNIQUE, so that you can not have two records with same age: 
CREATE TABLE CUSTOMERS( 
       ID   INT              NOT NULL, 
       NAME VARCHAR (20)     NOT NULL, 
       AGE  INT              NOT NULL UNIQUE, 
       ADDRESS  CHAR (25) , 
       SALARY   DECIMAL (18, 2),        
       PRIMARY KEY (ID) 
); 
If CUSTOMERS table has already been created, then to add a UNIQUE constraint to AGE column, you would write a statement similar to the following: 
ALTER TABLE CUSTOMERS 
   MODIFY AGE INT NOT NULL UNIQUE; 
You can also use the following syntax, which supports naming the constraint in multiple columns as well: 
ALTER TABLE CUSTOMERS 
   ADD CONSTRAINT myUniqueConstraint UNIQUE(AGE, SALARY); 
DROP a UNIQUE Constraint: 
To drop a UNIQUE constraint, use the following SQL: 
ALTER TABLE CUSTOMERS 
   DROP CONSTRAINT myUniqueConstraint; 
If you are using MySQL, then you can use the following syntax: 
ALTER TABLE CUSTOMERS 
   DROP INDEX myUniqueConstraint; 
PRIMARY Key:  
A primary key is a field in a table which uniquely identifies each row/record in a database table. Primary keys must contain unique values. A primary key column cannot have NULL values. 
A table can have only one primary key, which may consist of single or multiple fields. When multiple fields are used as a primary key, they are called a composite key. 
If a table has a primary key defined on any field(s), then you can not have two records having the same value of that field(s). 
Note: You would use these concepts while creating database tables. 
Create Primary Key: 
Here is the syntax to define ID attribute as a primary key in a CUSTOMERS table. 
CREATE TABLE CUSTOMERS( 
       ID   INT              NOT NULL, 
       NAME VARCHAR (20)     NOT NULL, 
       AGE  INT              NOT NULL, 
       ADDRESS  CHAR (25) , 
       SALARY   DECIMAL (18, 2),        
       PRIMARY KEY (ID) 
); 
To create a PRIMARY KEY constraint on the "ID" column when CUSTOMERS table already exists, use the following SQL syntax: 
ALTER TABLE CUSTOMER ADD PRIMARY KEY (ID); 
NOTE: If you use the ALTER TABLE statement to add a primary key, the primary key column(s) must already have been declared to not contain NULL values (when the table was first created). 
For defining a PRIMARY KEY constraint on multiple columns, use the following SQL syntax: 
CREATE TABLE CUSTOMERS( 
       ID   INT              NOT NULL, 
       NAME VARCHAR (20)     NOT NULL, 
       AGE  INT              NOT NULL, 
       ADDRESS  CHAR (25) , 
       SALARY   DECIMAL (18, 2),         
       PRIMARY KEY (ID, NAME) 
); 
To create a PRIMARY KEY constraint on the "ID" and "NAMES" columns when CUSTOMERS table already exists, use the following SQL syntax: 
ALTER TABLE CUSTOMERS  
   ADD CONSTRAINT PK_CUSTID PRIMARY KEY (ID, NAME); 
Delete Primary Key: 
You can clear the primary key constraints from the table, Use Syntax: 
ALTER TABLE CUSTOMERS DROP PRIMARY KEY ; 
FOREIGN Key: 
A foreign key is a key used to link two tables together. This is sometimes called a referencing key. 
Primary key field from one table and insert it into the other table where it becomes a foreign key i.e., Foreign Key is a column or a combination of columns, whose values match a Primary Key in a different table. 
The relationship between 2 tables matches the Primary Key in one of the tables with a Foreign Key in the second table. 
If a table has a primary key defined on any field(s), then you can not have two records having the same value of that field(s). 
Example: 
Consider the structure of the two tables as follows: 
CUSTOMERS table: 
CREATE TABLE CUSTOMERS( 
       ID   INT              NOT NULL, 
       NAME VARCHAR (20)     NOT NULL, 
       AGE  INT              NOT NULL, 
       ADDRESS  CHAR (25) , 
       SALARY   DECIMAL (18, 2),        
       PRIMARY KEY (ID) 
); 
ORDERS table: 
CREATE TABLE ORDERS ( 
       ID          INT        NOT NULL, 
       DATE        DATETIME,  
       CUSTOMER_ID INT references CUSTOMERS(ID), 
       AMOUNT     double, 
       PRIMARY KEY (ID) 
); 
If ORDERS table has already been created, and the foreign key has not yet been, use the syntax for specifying a foreign key by altering a table. 
ALTER TABLE ORDERS  
   ADD FOREIGN KEY (Customer_ID) REFERENCES CUSTOMERS (ID); 
DROP a FOREIGN KEY Constraint: 
To drop a FOREIGN KEY constraint, use the following SQL: 
ALTER TABLE ORDERS 
   DROP FOREIGN KEY; 
CHECK Constraint:  
The CHECK Constraint enables a condition to check the value being entered into a record. If the condition evaluates to false, the record violates the constraint and isn’t entered into the table. 
Example: 
For example, the following SQL creates a new table called CUSTOMERS and adds five columns. Here, we add a CHECK with AGE column, so that you can not have any CUSTOMER below 18 years: 
CREATE TABLE CUSTOMERS( 
       ID   INT              NOT NULL, 
       NAME VARCHAR (20)     NOT NULL, 
       AGE  INT              NOT NULL CHECK (AGE >= 18), 
       ADDRESS  CHAR (25) , 
       SALARY   DECIMAL (18, 2),        
       PRIMARY KEY (ID) 
); 
If CUSTOMERS table has already been created, then to add a CHECK constraint to AGE column, you would write a statement similar to the following: 
ALTER TABLE CUSTOMERS 
   MODIFY AGE INT NOT NULL CHECK (AGE >= 18 ); 
You can also use following syntax, which supports naming the constraint and multiple columns as well: 
ALTER TABLE CUSTOMERS 

   ADD CONSTRAINT myCheckConstraint CHECK(AGE >= 18); 
DROP a CHECK Constraint: 
To drop a CHECK constraint, use the following SQL. This syntax does not work with MySQL: 
ALTER TABLE CUSTOMERS 
   DROP CONSTRAINT myCheckConstraint; 
INDEX:  
The INDEX is used to create and retrieve data from the database very quickly. Index can be created by using single or group of columns in a table. When index is created, it is assigned a ROWID for each row before it sorts out the data. 
Proper indexes are good for performance in large databases, but you need to be careful while creating index. Selection of fields depends on what you are using in your SQL queries. 
Example: 
For example, the following SQL creates a new table called CUSTOMERS and adds five columns: 
CREATE TABLE CUSTOMERS( 
       ID   INT              NOT NULL, 
       NAME VARCHAR (20)     NOT NULL, 
       AGE  INT              NOT NULL, 
       ADDRESS  CHAR (25) , 
       SALARY   DECIMAL (18, 2),        
       PRIMARY KEY (ID) 
); 
Now, you can create index on single or multiple columns using the followwng syntax: 
CREATE INDEX index_name 
    ON table_name ( column1, column2.....); 
To create an INDEX on AGE column, to optimize the search on customers for a particular age, following is the SQL syntax: 
CREATE INDEX idx_age 
    ON CUSTOMERS ( AGE ); 
DROP an INDEX Constraint: 
To drop an INDEX constraint, use the following SQL: 
ALTER TABLE CUSTOMERS 
   DROP INDEX idx_age; 
Constraints can be specified when a table is created with the CREATE TABLE statement or you can use ALTER TABLE statment to create constraints even after the table is created. 
Dropping Constraints: 
Any constraint that you have defined can be dropped using the ALTER TABLE command with the DROP CONSTRAINT option. 
For example, to drop the primary key constraint in the EMPLOYEES table, you can use the following command: 
ALTER TABLE EMPLOYEES DROP CONSTRAINT EMPLOYEES_PK; 
Some implementations may provide shortcuts for dropping certain constraints. For example, to drop the primary key constraint for a table in Oracle, you can use the following command: 
ALTER TABLE EMPLOYEES DROP PRIMARY KEY; 
Some implementations allow you to disable constraints. Instead of permanently dropping a constraint from the database, you may want to temporarily disable the constraint, and then enable it later. 
Integrity Constraints: 
Integrity constraints are used to ensure accuracy and consistency of data in a relational database. Data integrity is handled in a relational database through the concept of referential integrity. 
There are many types of integrity constraints that play a role in referential integrity (RI). These constraints include Primary Key, Foreign Key, Unique Constraints and other constraints mentioned above.  





No comments: