ADBMS - Chapter 02
ADBMS - Chapter 02
(DBMS)
Chapter 2
Creating Database Tables إﻧﺸﺎء ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت
Objectives
q Use structured query language (SQL) commands to create, modify, and drop database
tables
q Explain Oracle 10g user schemas
q Define Oracle 10g database tables
q Create database tables using SQL*Plus
q View information about your database tables using Oracle 10g data dictionary views
Introduction to SQL
q Structured query language (SQL)
– Standard query language for relational databases
– Consists of about 30 commands
– Enables users to create database objects and manipulate and view data
– SQL-99, SQL-2003, and SQL-2008
• Most recent versions
• Most vendors do not fully comply with SQL-2008 (but comply with
SQL-92, SQL-99)
– Basic categories for SQL commands
• Data definition language (DDL)
• Data manipulation language (DML)
Personal DBMS
q With personal DBMS …
– You are usually the only user
– You start the database application
– You create a new database
– The DBMS saves the database file in your workstation’s file system
– You create database objects (tables, etc.)
q Examples:
– MS Access
– Oracle Personal edition. But this DBMS derives most of its features from the
Oracle C/S version
Solution:
q Example:
– s_balance NUMBER (5,2) e.g. 100.10
– s_gpa NUMBER (3,2) e.g. 1.10
Solution:
ھﺬا اﻟﺤﻞ ﺑﻮﺿﻊ اﻟﻜﻮد ﻟﻠﺤﻘﻞ اﻷﺳﺎﺳﻲ ﻓﻲ آﺧﺮ ﺗﻌﺮﯾﻒ اﻟﺠﺪول
CREATE TABLE ORDERS(
ORD_ID INT,
ORD_DES VARCHAR2(15),
CONSTRAINT ORDERS_ORD_ID_PK PRIMARY KEY (ORD_ID));
And you have to create another table and link the (EMPID) with it.
وﯾﺘﻮﺟﺐ ﻋﻠﯿﻚ ﻋﻤﻞ ﺟﺪول آﺧﺮ ﻷﻋﻀﺎء اﻟﮭﯿﺌﺔ اﻟﺘﺪرﯾﺴﯿﺔ ﻓﻲ اﻟﻜﻠﯿﺔ ﻣﻊ رﺑﻂ اﻟﻤﻔﺘﺎح اﻟﺮﺋﯿﺴﻲ ﻓﻲ ﺟﺪول اﻟﻤﻮظﻔﯿﻦ ﻣﻊ
:أﺳﻤﺎء اﻟﮭﯿﺌﺔ اﻟﺘﺪرﯾﺴﯿﺔ ﻓﻲ اﻟﺠﺪول اﻟﺠﺪﯾﺪ أدﻧﺎه
Professor ID Professor Name Employee ID
(PROFID) (PROFNAME) (EMPID)
PK 20 digits FK
500 MOHAMMED 100
q Composite key
– Syntax
CONSTRAINT constraint_name
PRIMARY KEY (columnname1, columnname2 …)
– Example:
CREATE TABLE enrollment
(s_id NUMBER(5) CONSTRAINT enrollment_s_id_fk REFERENCES student(s_id),
c_sec_id NUMBER(8) CONSTRAINT enrollment_c_sec_id_fk REFERENCES course_section(c_sec_id),
CONSTRAINT enrollment_s_id_c_sec_id_pk PRIMARY KEY (s_id, c_sec_id));
Example:
Please create the following table
Table Name: CAR_NUM
Fields:
Car’s plate number COMPOSIT KEY (( أرﻗﺎم اﻟﺴﯿﺎرات )ﻧﻤﺮة اﻟﺴﯿﺎرات22-40040)
Car plate number contains main number of 2 digits (ﺗﺤﺘﻮي ﻧﻤﺮة اﻟﺴﯿﺎرة ﻋﻠﻰ رﻗﻢ رﺋﯿﺴﻲ )اﻟﺘﺮﻣﯿﺰ
And a secondary number of 5 digits وﻋﻠﻰ رﻗﻢ ﻓﺮﻋﻲ ﯾﺘﻜﻮن ﻣﻦ
ﯾﻤﻜﻦ أن ﯾﺘﻜﺮر اﻟﺘﺮﻣﯿﺰ ﻣﻊ رﻗﻢ ﻓﺮﻋﻲ آﺧﺮ أو أن ﯾﺘﻜﺮر اﻟﺮﻗﻢ اﻟﻔﺮﻋﻲ ﻣﻊ ﺗﺮﻣﯿﺰ آﺧﺮ
إﻧﻤﺎ ﻻ ﯾﻤﻜﻦ أن ﯾﺘﻜﺮر اﻟﺘﺮﻣﯿﺰ ﻣﻊ اﻟﺮﻗﻢ اﻟﻔﺮﻋﻲ ﻷي ﺳﯿﺎرة أﺧﺮى
:( واﻟﺤﻞ ﻛﺎﻟﺘﺎﻟﻲComposite Key) وﻟﻌﻤﻞ ھﺬا اﻟﺠﺪول ﯾﺠﺐ ﻋﻤﻞ ﻣﻔﺘﺎح ﻣﺮﻛﺐ
• NOT NULL constraint (ﻟﻀﻤﺎن إدﺧﺎل اﻟﻘﯿﻤﺔ ﻓﻲ اﻟﺤﻘﻞ اﻟﻤﻄﻠﻮب )أي ﻋﺪم ﺗﺮك اﻟﻘﯿﻢ ﻓﺎرﻏﺔ
Syntax:
Student_Name varchar2(20) NOT NULL, ç
ھﻨﺎ ﯾﺠﺐ ادﺧﺎل اﻻﺳﻢ وﺑﺪون ادﺧﺎل اﻻﺳﻢ ﻟﻦ ﺗﺴﺘﻄﯿﻊ ادﺧﺎل ﺑﺎﻗﻲ اﻟﻤﻌﻠﻮﻣﺎت
• UNIQUE constraint (ﻣﺤﺪد ﻹدﺧﺎل ﻗﯿﻢ ﻓﺮﯾﺪة ﺗﺨﺘﻠﻒ ﻋﻦ اﻟﻘﯿﻢ اﻷﺧﺮى )ﻟﻜﻨﮫ ﻟﯿﺲ ﻣﻔﺘﺎح رﺋﯿﺴﻲ
Syntax:
Student_ID varchar2(20) NOT NULL UNIQUE, ç
ھﻨﺎ ﯾﺠﺐ إﺿﺎﻓﺔ رﻗﻢ اﻟﻄﺎﻟﺐ وﺑﻨﻔﺲ اﻟﻮﻗﺖ ﯾﺠﺐ أن ﺗﻜﻮن ﻓﺮﯾﺪة أي ﻏﯿﺮ ﻣﻜﺮرة
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(20) NOT NULL,
FirstName varchar(20),
Age int,
CONSTRAINT Person_UC UNIQUE (ID,LastName)); ç
اﻟﻤﺤﺪد ھﻨﺎ أن ﻻ ﯾﺘﻜﺮر رﻗﻢ واﺳﻢ اﻟﻌﺎﺋﻠﺔ ﻟﻠﺸﺨﺺ ﻣﻌﺎ أﻛﺜﺮ ﻣﻦ ﻣﺮة وأﯾﻀﺎ أن ﻻ ﺗﻜﻮن أي ﻣﻨﮭﻤﺎ ﻗﯿﻤﺘﮫ ﻓﺎرﻏﺔ
Syntax:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(20) NOT NULL,
FirstName varchar(20),
Age int CHECK (Age>=18) ç
);
Syntax:
Country varchar2(10) DEFAULT 'Jordan'
أو ﺗﺎرﯾﺦ إدﺧﺎل اﻟﻤﻌﻠﻮﻣﺎت ﻣﺜﻼ
CREATE TABLE Orders (
ID int NOT NULL,
OrderNumber int NOT NULL,
OrderDate date DEFAULT CURRENT_TIMESTAMP ç ھذا اﻟﻛود ﯾﻘوم ﺑﺈدﺧﺎل ﺗﺎرﯾﺦ اﻟﯾوم
);