الدرس الرابع : Select Statment, ضمن سلسلة دروس كيف تبدأ في تعلم الأوراكل
بسم الله الرحمن الرحيم
الدرس الرابع
سوف نتحدث في هذا الدرس ان شاء الله عن استخدام Select Statment وانواعها وكيف يمكن التعامل معها
تعرّف ال Select Statmnet على انها امر من خلاله يتيح لنا احضار بيان او مجموعة بيانات من جدول واحد او اكثر من جدول وبطرق مختلفة وحسب الشرط الذي تضعه ليس هذا فحسب بل يمكن استخدام الselect statment في معالجة العمليات على الجداول التي تطرقنا لها في الدرس السابق الا وهي Update Delete Insert
وكذلك يمكن استخدامها مع عدة function واقصد بها معادلات جاهزة وسوف نطرق لها بالتفصيل ان شاء الله
1- جملة SELECT البسيطة
فكتب SELECT ثم اسم الحقول او اذا كنت تريد عرض كل الحقول اكثب * اي نجمة ثم FROM وهنا
تعطي ايعاز ان تحدد اسم الجدول بعد ال FROM فتصبح بالشكل التالي
الدرس الرابع
سوف نتحدث في هذا الدرس ان شاء الله عن استخدام Select Statment وانواعها وكيف يمكن التعامل معها
تعرّف ال Select Statmnet على انها امر من خلاله يتيح لنا احضار بيان او مجموعة بيانات من جدول واحد او اكثر من جدول وبطرق مختلفة وحسب الشرط الذي تضعه ليس هذا فحسب بل يمكن استخدام الselect statment في معالجة العمليات على الجداول التي تطرقنا لها في الدرس السابق الا وهي Update Delete Insert
وكذلك يمكن استخدامها مع عدة function واقصد بها معادلات جاهزة وسوف نطرق لها بالتفصيل ان شاء الله
1- جملة SELECT البسيطة
فكتب SELECT ثم اسم الحقول او اذا كنت تريد عرض كل الحقول اكثب * اي نجمة ثم FROM وهنا
تعطي ايعاز ان تحدد اسم الجدول بعد ال FROM فتصبح بالشكل التالي
كود:
SELECT *
FROM <table_name>;
مثال
كود:
SELECT * FROM NATIONALITY
هذا المثال يعرض لنا
جميع محتويات جدول الجنسيات
2- جملة ال SELECT التي تحدد فيها اسماء الحقول في الجدول
فهي لا تختلف عن التي بالنقطة الاولى وانما تستبدل النجمة * باسماء حقول
2- جملة ال SELECT التي تحدد فيها اسماء الحقول في الجدول
فهي لا تختلف عن التي بالنقطة الاولى وانما تستبدل النجمة * باسماء حقول
كود:
SELECT <column_name, column_name, ...,
<column_name>
FROM <table_name>;
مثال
كود:
SELECT DPT_NO,DPT_NAME FROM DEPARTMENTS
هنا حددنا بالSELECT اسم الادراة ورقمها فقط وهذا هو الفرق
3-جملة ال SELECT مع ال WHERE CONDTION
وهي تحضع شرط مع WHERE CONDITION
3-جملة ال SELECT مع ال WHERE CONDTION
وهي تحضع شرط مع WHERE CONDITION
كود:
SELECT *
FROM <table_name>
WHERE ....
مثال
كود:
SELECT * FROM DEPARTMENTS
WHERE DPT_NO='DP01'
4- استخدام الSELECT مع UPDATE و
INSERT و DELETE وكذلك انشاء الجدول
CREATE TABLE
أ- استخدام ال SELECT مع INSERT
يتم الاضافة على الجدول باستخدام جملة ال INSERT وتحدد بالمقابل جملة ال SELECT وهذه الحالة تؤخذ اذا كنت تريد نسخ بيانات جدول من آخر الاضافة داخل نفس الجدول ولك حسب البيان الذي يأتي من SELECT
CREATE TABLE
أ- استخدام ال SELECT مع INSERT
يتم الاضافة على الجدول باستخدام جملة ال INSERT وتحدد بالمقابل جملة ال SELECT وهذه الحالة تؤخذ اذا كنت تريد نسخ بيانات جدول من آخر الاضافة داخل نفس الجدول ولك حسب البيان الذي يأتي من SELECT
كود:
INSERT INTO TABLE_NAME
(COLOUMN1...,COLOUMN2...)
SELECT COLOUMN1...,COLOUMN2...)
FROM OTHER_TABLE_NAME
WHERE .....
مثال
كود:
INSERT INTO DEPARTMENTS(DPT_NO,DPT_NAME)
SELECT NAT_NO,NAT_NAME
FROM NATIONALITY;
على افتراض ان نوع
الحقول في كل جدول متساوية
ب- استخدام ال SELECT مع DELETE
ب- استخدام ال SELECT مع DELETE
كود:
DELETE FROM TABLE_NAME
WHERE COLOUMN_NAME IN (SELECT COLUMN FROM
TABLE NAME
WHERE ....
هنا استخدمنا FUNCTION تستخدم مع WHERE CONDTION وهي IN
ويقصد بها ان هل القيمة معينة موجودة ضمن جملة ال SELECT
طبعا سوف نأتي لها بالتفصيل ان شاء الله ولكن نستعرضها هنا فقط بشكل مختصر
ج - استخدام ال SELECT مع ال UPDATE
ويقصد بها ان هل القيمة معينة موجودة ضمن جملة ال SELECT
طبعا سوف نأتي لها بالتفصيل ان شاء الله ولكن نستعرضها هنا فقط بشكل مختصر
ج - استخدام ال SELECT مع ال UPDATE
كود:
UPDATE TABLE_NAME SET COUMN_NAME= SELECT
CLOUMN_NAME FROM TABLE_NAME WHERE ....
على اساس ان جملة ال SELECT ترجع قيمة واحدة لا
اكثر
د- استخدام ال SELECT مع CREATE TABLE
القاعدة
د- استخدام ال SELECT مع CREATE TABLE
القاعدة
كود:
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 وتسمى بالاسماء المستعارة يعني تستبدل اسم الحقل باي اسم انت تحدده كي تعرض في العناوين
مثال
CREATE TABLE DEPT
AS (SELECT DPT_NO,DPT_NAME FROM DEPARTMENTS
WHERE DPT_NO='DP001')
لاحظوا ان هذا المثال يوضح انك تقدر ان تنشئ جدول وكذلك اضافة البيانات معه وتم استخدام WHERE CONDITION لتحديد هذه البيانات واذا اردنا اضافة البيانات كلها نلغي ال WHERE
سوف نتحدث عن الفانكشن التي تساعد فلترت البيانات وكذلك الفانكشن التي تساعد في ترتيب البيانات
1- الفانكشن التي تساعد في فلترت البيانات هي
* ALIASES وتسمى بالاسماء المستعارة يعني تستبدل اسم الحقل باي اسم انت تحدده كي تعرض في العناوين
كود:
select sysdate as "My Date" from dual;
My Date
--------
28-03-06
* DISTINCT وتستخدم لفلترت البيانات المتكررة وتأتي بعد
جملة ال
SELECT مباشرة ومن [U]مميزاتها انها تفلتر
البيانات المتشابهه بالحقول التي تأتي بجملة ال SELECT او بالاحرى بالحقول التي تأتي بعدها يعني لو كانت لدينا البيانات التالية
اسم الموظف محمد تاريخ ميلاده 20-10-1970
اسم الموظف محمد تاريخ ميلاده 20-10-1971
واستخدمنا جملة ال SELECT في احضار اسم الموظف وتاريخ ميلاده مع DISTINCT
لاحظوا انه سوف يرجع القيمتين والسبب لأن تاريخ الميلاد مختلف بينما الاسم متشابه
لكن لو طلبنا احضار اسم الموظف فقط فسوف يحضر قيمة واحدة وهي اسم الموظف
وقاعدة استخدامها هي
اسم الموظف محمد تاريخ ميلاده 20-10-1970
اسم الموظف محمد تاريخ ميلاده 20-10-1971
واستخدمنا جملة ال SELECT في احضار اسم الموظف وتاريخ ميلاده مع DISTINCT
لاحظوا انه سوف يرجع القيمتين والسبب لأن تاريخ الميلاد مختلف بينما الاسم متشابه
لكن لو طلبنا احضار اسم الموظف فقط فسوف يحضر قيمة واحدة وهي اسم الموظف
وقاعدة استخدامها هي
كود:
SELECT DISTINCT CLOUMN1...,COLUMN2.. FROM
TABLE_NAME
كود:
SELECT DISTINCT DPT_NAME FROM DEPARTMENTS
* UPPER و
LOWER
وتستخدم لتحويل الاحرف الانجليزية الى CAPITAL باستخدام UPPER
والى SMMAL باستخدام LOWER
القاعدة
وتستخدم لتحويل الاحرف الانجليزية الى CAPITAL باستخدام UPPER
والى SMMAL باستخدام LOWER
القاعدة
كود:
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 شرحنا عنه سابقا ارجع الى الدرس الأول
SELECT LOWER('ADMIN05') FROM DUAL;
SELECT UPPER('admin05') FROM DUAL;
وجدول ال DUAL شرحنا عنه سابقا ارجع الى الدرس الأول
كود:
SELECT UPPER('DPT_NAME'),LOWER(DPT_NAME FROM
DEPARTMENTS
هنا نعرض اسم الادارة
مرة
CAPITAL ومرة SMALL
مع ملاحظة ان هذه الفانكشن لا تنطبق على احرف اللغة العربية
* initcap وتستخدم لتحويل او حرف من كل كلمة الى capital
مع ملاحظة ان هذه الفانكشن لا تنطبق على احرف اللغة العربية
* initcap وتستخدم لتحويل او حرف من كل كلمة الى capital
كود:
select initcap(cloumname or string) from
table_name
كود:
select initcap('admin05') from dual;
* NVL وتستخدم للتعويض عن القيم الفارغة ال NULL الى قيم نحن نحددها
واستخداماتها في الارقام والحروف
واستخداماتها في الارقام والحروف
كود:
SELECT NVL(CLUMONAME,YOUR_VALUE) FROM TABLE
NAME
مثال
كود:
SELECT NVL(dpt_name,'not found') from
departments
select NVL(number,0) from dual
* to_char وهي تستخدم للتحويل كل شيء الى قيمة string او ترتيب مثلا تاريخ
حسب قناع معين
كود:
select to_char(cloumn,'ur mask') from table
name
select to_char(cloumn) from table name
select to_char(sysdate,'dd-mm-yyyy') from dual
select to_char(sysdate) from dual;
هذا مثال كامل على التعامل مع التاريخ وكيفية اظهاره
Parameter Explanation
select to_char(sysdate) from dual;
هذا مثال كامل على التعامل مع التاريخ وكيفية اظهاره
Parameter Explanation
كود:
YEAR
Year, spelled out
YYYY
4-digit year
YYY
YY
Y
Last 3, 2, or 1 digit(s) of year.
IYY
IY
I Last 3, 2, or 1 digit(s) of
ISO year.
IYYY
4-digit year based on the ISO standard
Q
Quarter of year (1, 2, 3, 4; JAN-MAR = 1).
MM
Month (01-12; JAN = 01).
MON
Abbreviated name of month.
MONTH
Name of month, padded with blanks to length of 9 characters.
RM
Roman numeral month (I-XII; JAN = I).
WW
Week of year (1-53) where week 1 starts on the first day of the
year and continues to the
seventh day of the year.
W
Week of month (1-5) where week 1 starts on the first day of the month
and ends on the seventh.
IW
Week of year (1-52 or 1-53) based on the ISO standard.
D
Day of week (1-7).
DAY
Name of day.
DD
Day of month (1-31).
DDD
Day of year (1-366).
DY
Abbreviated name of day.
J Julian day; the number of days
since January 1, 4712 BC.
HH
Hour of day (1-12).
HH12
Hour of day (1-12).
HH24
Hour of day (0-23).
MI
Minute (0-59).
SS
Second (0-59).
SSSSS
Seconds past midnight (0-86399).
FF Fractional seconds.
The following are date examples for the
to_char function.
to_char(sysdate, 'yyyy/mm/dd'); would return
'2003/07/09'
to_char(sysdate, 'Month DD, YYYY'); would
return 'July 09, 2003'
to_char(sysdate, 'FMMonth DD, YYYY'); would
return 'July 9, 2003'
to_char(sysdate, 'MON DDth, YYYY'); would
return 'JUL 09TH, 2003'
to_char(sysdate, 'FMMON DDth, YYYY'); would
return 'JUL 9TH, 2003'
to_char(sysdate, 'FMMon ddth, YYYY'); would
return 'Jul 9th, 2003'
* ORDER BY وهي فانكشن تعنى بترتيب البيانات بشكل منظم اما
تصاعدي او تنازلي وتستخدم بجملة ال
SELECT وتكتب في اخر جملة ال SELECT حيث نكتبها ونكتب اسم
الحقل ويكتب بعدها اذا كنت الترتيب تصاعدي ويرمز لها ب ASC ثم
تنازلي ويمز بها
DESC
كود:
ORDER BY COLUMN_NAME ASC
كود:
SELECT DPT_NO,DPT_NAME FROM DEPARTMENTS
ORDER BY DPT_NO ASC
ان شاء الله سوف نكمل ما تبقى من فانكشن نحتاجها
فيما بعد
الأسئلة
1- اكتب جملة select تعرض من خلالها الاسم الادارة ورقمها وترتبها حسب الادارة
2- اكتب جملة select تعرض البيانات غير المكررة لجنسية الموظف من جدول الجنسيات
3- اعطي مثال على انشاء جدول باستخدام جملة ال select على ان يكون الادارة رقم DP01
4- اعطي مثال على اضافة وحذف وتعديل الجدول باستخدام ال select statment
5- اعطي مثال تبين فيه شكل التاريخ 01-2006 حيث ان 01 هو الشهر و 2006 هو السنة من خلال استخدام فانكشن to_char
6-بين باستخدام الفانكشن التالي nvl و initcap كيف يمكن استغلالها في جملة select
الأسئلة
1- اكتب جملة select تعرض من خلالها الاسم الادارة ورقمها وترتبها حسب الادارة
2- اكتب جملة select تعرض البيانات غير المكررة لجنسية الموظف من جدول الجنسيات
3- اعطي مثال على انشاء جدول باستخدام جملة ال select على ان يكون الادارة رقم DP01
4- اعطي مثال على اضافة وحذف وتعديل الجدول باستخدام ال select statment
5- اعطي مثال تبين فيه شكل التاريخ 01-2006 حيث ان 01 هو الشهر و 2006 هو السنة من خلال استخدام فانكشن to_char
6-بين باستخدام الفانكشن التالي nvl و initcap كيف يمكن استغلالها في جملة select
كود:
انتهى الدرس رقم (4)
---------------------------------------------------------
---------------------------------------------------------
---------------------------------------------------------
---------------------------------------------------------
---------------------------------------------------------
جزاك الله خيرا
ردحذفجزاك الله خيرا
ردحذف