CODE
SELECT * FROM NATIONALITY[/left
]
هذا المثال يعرض لنا جميع محتويات جدول الجنسيات
2- جملة ال SELECT التي تحدد فيها اسماء الحقول في الجدول
فهي لا تختلف عن التي بالنقطة الاولى وانما تستبدل النجمة * باسماء حقول
CODE
SELECT <column_name, column_name, ..., <column_name>
FROM <table_name>;
مثال
[left]CODE
SELECT DPT_NO,DPT_NAME FROM DEPARTMENTS[/left
]هنا حددنا بالSELECT اسم الادراة ورقمها فقط وهذا هو الفرق
3-جملة ال SELECT مع ال WHERE CONDTION
وهي تحضع شرط مع WHERE CONDITION
CODE
SELECT *
FROM <table_name>
WHERE ....
مثال
CODE
SELECT * FROM DEPARTMENTS
WHERE DPT_NO='DP01'
4- استخدام الSELECT مع UPDATE و INSERT و DELETE وكذلك انشاء الجدول
CREATE TABLE
أ- استخدام ال SELECT مع INSERT
يتم الاضافة على الجدول باستخدام جملة ال INSERT وتحدد بالمقابل جملة ال SELECT وهذه الحالة تؤخذ اذا كنت تريد نسخ بيانات جدول من آخر الاضافة داخل نفس الجدول ولك حسب البيان الذي يأتي من SELECT
CODE
INSERT INTO TABLE_NAME
(COLOUMN1...,COLOUMN2...)
SELECT COLOUMN1...,COLOUMN2...)
FROM OTHER_TABLE_NAME
WHERE .....
مثال
CODE
INSERT INTO DEPARTMENTS(DPT_NO,DPT_NAME)
SELECT NAT_NO,NAT_NAME
FROM NATIONALITY;
على افتراض ان نوع الحقول في كل جدول متساوية
ب- استخدام ال SELECT مع DELETE
CODE
DELETE FROM TABLE_NAME
WHERE COLOUMN_NAME IN (SELECT COLUMN FROM TABLE NAME
WHERE ....
هنا استخدمنا FUNCTION تستخدم مع WHERE CONDTION وهي IN
ويقصد بها ان هل القيمة معينة موجودة ضمن جملة ال SELECT
طبعا سوف نأتي لها بالتفصيل ان شاء الله ولكن نستعرضها هنا فقط بشكل مختصر
ج - استخدام ال SELECT مع ال UPDATE
CODE
UPDATE TABLE_NAME SET COUMN_NAME= SELECT CLOUMN_NAME FROM TABLE_NAME WHERE ....
على اساس ان جملة ال SELECT ترجع قيمة واحدة لا اكثر
د- استخدام ال SELECT مع CREATE TABLE
القاعدة
CODE
CREATE TABLE new_table
AS (SELECT column_1, column2, ... column_n
FROM old_table_1, old_table_2, ... old_table_n);
وهنا تنشئ جدول باستخدام جملة ال SELECT
مثال
CREATE TABLE DEPT
AS (SELECT DPT_NO,DPT_NAME FROM DEPARTMENTS
WHERE DPT_NO='DP001')
لاحظوا ان هذا المثال يوضح انك تقدر ان تنشئ جدول وكذلك اضافة البيانات معه وتم استخدام WHERE CONDITION لتحديد هذه البيانات واذا اردنا اضافة البيانات كلها نلغي ال WHERE
سوف نتحدث عن الفانكشن التي تساعد فلترت البيانات وكذلك الفانكشن التي تساعد في ترتيب البيانات
1- الفانكشن التي تساعد في فلترت البيانات هي
* ALIASES وتسمى بالاسماء المستعارة يعني تستبدل اسم الحقل باي اسم انت تحدده كي تعرض في العناوين
CODE
select sysdate as "My Date" from dual;
My Date
--------
28-03-06
* DISTINCT وتستخدم لفلترت البيانات المتكررة وتأتي بعد جملة ال SELECT مباشرة ومن [U]مميزاتها انها تفلتر البيانات المتشابهه بالحقول التي تأتي بجملة ال SELECT او بالاحرى بالحقول التي تأتي بعدها يعني لو كانت لدينا البيانات التالية
اسم الموظف محمد تاريخ ميلاده 20-10-1970
اسم الموظف محمد تاريخ ميلاده 20-10-1971
واستخدمنا جملة ال SELECT في احضار اسم الموظف وتاريخ ميلاده مع DISTINCT
لاحظوا انه سوف يرجع القيمتين والسبب لأن تاريخ الميلاد مختلف بينما الاسم متشابه
لكن لو طلبنا احضار اسم الموظف فقط فسوف يحضر قيمة واحدة وهي اسم الموظف
وقاعدة استخدامها هي
CODE
SELECT DISTINCT CLOUMN1...,COLUMN2.. FROM TABLE_NAME
CODE
SELECT DISTINCT DPT_NAME FROM DEPARTMENTS
* U
PPER و LOWER
وتستخدم لتحويل الاحرف الانجليزية الى CAPITAL باستخدام UPPER
والى SMMAL باستخدام LOWER
القاعدة
CODE
SELECT UPPER(CLOUMN OR STRING) FROM TABLE NAME
SELECT LOWER(CLOUMN OR STRING) FROM TABLE NAME
مثال
SELECT LOWER('ADMIN05') FROM DUAL;
SELECT UPPER('admin05') FROM DUAL
;
وجدول ال DUAL شرحنا عنه سابقا ارجع الى الدرس الأول
CODE
SELECT UPPER('DPT_NAME'),LOWER(DPT_NAME FROM DEPARTMENTS
هنا نعرض اسم الادارة مرة CAPITAL ومرة SMALL
مع ملاحظة ان هذه الفانكشن لا تنطبق على احرف اللغة العربية
* initcap وتستخدم لتحويل او حرف من كل كلمة الى capital
CODE
select initcap(cloumname or string) from table_name
CODE
select initcap('admin05') from dual;
* NVL وتستخدم للتعويض عن القيم الفارغة ال NULL الى قيم نحن نحددها
واستخداماتها في الارقام والحروف
CODE
SELECT NVL(CLUMONAME,YOUR_VALUE) FROM TABLE NAME
مثال
CODE
SELECT NVL(dpt_name,'not found') from departments
select NVL(number,0) from dual
* to_char وهي تستخدم للتحويل كل شيء الى قيمة string او ترتيب مثلا تاريخ حسب قناع معين
]
[left][center]CODE
select to_char(cloumn,'ur mask') from table name
select to_char(cloumn) from table name[/center