Tag Archives: Query

SQL FOREIGN KEY

SQL FOREIGN KEYin one table points to the primary key of another table .

Table – users

+—-+——+
| uid | name |
+—-+——+
|  1 | AAAA |
|  2 | BBBB |
|  3 | CCCC |
|  4 | DDDD |
|  5 | EEEE |
+—-+——+

Table  – orders

+—–+—–+——–+
| oid | uid | items  |
+—–+—–+——–+
|   1 |   1 | Pen    |
|   2 |   2 | Watch  |
|   3 |   3 | shoe   |
|   4 |   4 | mobile |
+—–+—–+——–+

Here the field uid in the table orders points to the column uid in users .

That is  uid in the orders is the foreign key and that in users is primary key

FOREIGN KEY constraint prevent any action that may destroy the relation between the tables.

It also prevent invalid data and make sure that the data to be inserted should be one of the primary key value in another

Example

CREATE TABLE IF NOT EXISTS `orders` (
`oid` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`items` varchar(255) NOT NULL,
PRIMARY KEY (`oid`),
FOREIGN KEY (uid) REFERENCES users(uid)
)

SQL PRIMARY KEY

SQL PRIMARY KEY uniquely identifies each record in a database table.

Primary keys must contain unique values and  primary key column cannot contain NULL

values. A table can not have more than one primary key .

Example

mysql> CREATE TABLE  `new_users` (`id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, PRIMARY KEY (`id`));
Query OK, 0 rows affected (0.10 sec)


SQL UNIQUE

SQL UNIQUE uniquely identifies each record in a database table.

The UNIQUE and PRIMARY KEY constraints both provide a guarantee for uniqueness for a column or set of columns.

A PRIMARY KEY constraint automatically has a UNIQUE constraint defined on it.

We can have many UNIQUE constraints in a table, but only one PRIMARY KEY .

Example

mysql> CREATE TABLE  `new_users` (`id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, PRIMARY KEY (`id`), UNIQUE (Id));
Query OK, 0 rows affected (0.10 sec)


SQL NOT NULL

SQL NOT NULL  make sure that a column does not accept null values

Example

mysql> CREATE TABLE  `new_users` (`id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, PRIMARY KEY (`id`));
Query OK, 0 rows affected (0.09 sec)

Here the field will never have a null value

SQL UNION

SQL UNION can be  used to combine the result  two or more SELECT statements.

Notice that each SELECT statement within the UNION must have the same number of columns. The columns must also have similar data types. Also, the columns in each SELECT statement must be in the same order.

Syntax

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

MySQL Table – user1

+—-+——+
| id | name |
+—-+——+
|  1 | AAAA |
|  2 | BBBB |
|  3 | CCCC |
|  4 | DDDD |
+—-+——+

MySQL Table – user2

+—-+——+
| id | name |
+—-+——+
|  1 | PPPP |
|  2 | QQQQ |
|  3 | RRRR |
|  4 | RRRR |
+—-+——+

Example

mysql> SELECT * FROM user1 UNION SELECT * FROM user2 ;
+—-+——+
| id | name |
+—-+——+
|  1 | AAAA |
|  2 | BBBB |
|  3 | CCCC |
|  4 | DDDD |
|  1 | PPPP |
|  2 | QQQQ |
|  3 | RRRR |
|  4 | RRRR |
+—-+——+
8 rows in set (0.00 sec)


SQL FULL JOIN

SQL FULL JOIN  return rows when there is a match in one of the tables

Syntax

SELECT * FROM table_name1 FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name

MySQL Table – users

|+—-+——+
| id | name |
+—-+——+
|  1 | AAAA |
|  2 | BBBB |
|  3 | CCCC |
|  4 | DDDD |
|  5 | EEEE |
+—-+——+

MySQL Table – Orders

+—–+—–+——–+
| oid | uid | items  |
+—–+—–+——–+
|   1 |   1 | Pen    |
|   2 |   2 | Watch  |
|   3 |   3 | shoe   |
|   4 |   4 | mobile |
+—–+—–+——–+

Example

mysql> SELECT u.name,o.items FROM users as u FULL JOIN orders as o ON u.id=o.uid ;
+——+——–+
| name | items  |
+——+——–+
| AAAA | Pen    |
| BBBB | Watch  |
| CCCC | shoe   |
| DDDD | mobile |
+——+——–+
4 rows in set (0.00 sec)