היי,
האם משהו יכול לעזור לי לפתור את השאלה הבאה בנושא SQL
תודה רבה.
ע"י: 1_אורח_כללי
היי קולולו,
יש לך 2 שאלות אם כך:
1. למה את השדה בשם ID לא הגדירו מאיזה סוג הוא?
דווקא כן הגדירו מאיזה סוג, סוג Number.
ההבדל בינו ל-integer הוא שNumber יותר גדול. הוא יכול להכיל טווח גדול יותר של מספרים שלמים.
האם בגלל שהגדירו אותו כמפתח אז הברירת מחדל שלו היא integer או משהו דומה אחר?
התשובה היא לא. הגדרת שדה כמפתח ראשי כברירת מחדל לא משפיעה על סוג השדה. באותה המידה הוא יכל להיות מסוג Char.
2. האם בגלל שהגדירו את שדה טלפון כ- integer אז אם אחת הבדיקות שלי תיהיה הכנסת מספר טלפון עם סימן (מינוס) יחשב כערך חוקי?
לשדה מסוג Integer אפשר להכניס רק מספרים, ורק מספרים שלמים.
לכן הכנסת תווים אחרים כמו '-' או '!', $... או הכנסת מספרים עשרוניים כמו 1.20, 44.765, יחשבו כערך לא חוקי.
ע"י: קולולו
משה,
האם בגלל שהגדירו את שדה טלפון כ- integer אז אם אחת הבדיקות שלי תיהיה הכנסת מספר טלפון עם סימן (מינוס) יחשב כערך חוקי?
ע"י: קולולו
היי משה,
שאלה קטנה : למה את השדה בשם ID לא הגדירו מאיזה סוג הוא?
האם בגלל שהגדירו אותו כמפתח אז הברירת מחדל שלו היא integer או משהו דומה אחר?
תודה, קולולו.
ע"י: 1_אורח_כללי
שלום,
מישהו יכול בבקשה להסביר לי בSQL:
מה זה:
JOIN
INNER JOIN
LEFT JOIN ו-RIGHT JOIN
OUTER JOIN
תודה רבה
ע"י: 1_אורח_כללי
שלום,
מישהו יכול בבקשה להסביר לי בSQL:
מה זה:
JOIN
INNER JOIN
LEFT JOIN ו-RIGHT JOIN
OUTER JOIN
תודה רבה
היי,
תוכל למצוא תשובות מדויקות פה:
http://www.w3schools.com/sql/sql_join.asp
משה.
ע"י: קולולו
משה ,
תודה רבה על העזרה, עכשיו זה מובן.
אם לעוד משהו יש הצעות או הערות אשמח לשמוע.
קולולו.
ע"י: 1_אורח_כללי
היי קולולו,
עכשיו זה יותר ברור.
אני לא מתעסק הרבה בנושא הזה ואולי אני קצת מטעה.
אם כן, אשמח אם מישהו יתקן אותי.
בהתחלה נוצרת טבלה עם 3 שדות: ID, Name, phone_number.
אבל שים לב ש ID מוגדר רק כ Not null. כלומר השדה חייב להכיל מידע ולא יכול להישאר ריק.
אולם אין מניעה שמידע בשדה הזה יהיה כפול במספר רשומות.
ניקח למשל סתם שדה ID שמכיל ת.ז., ע"פ ההגדרה הראשונה אנחנו חייבים להכניס ערכים לשדה אבל אנחנו יכולים גם להכניס את אותה הת.ז למס' אנשים (כפילויות).
ולכן יכול להיות מצב שיהיו 2 אנשים או יותר עם אותה ת.ז. וזה כמובן אסור ולא הגיוני.
לכן מגיעה הפקודה:
ALTER TABLE USERS ADD (
CONSTRAINT PK_ID PRIMARY KEY (ID)
)
והיא בעצם מוסיפה ("add") אילוץ ("Constraint") בשם PK_ID לטבלת Users והופכת את השדה ID למפתח ראשי ("primary key").
המשמעות להפיכת השדה ID למפתח ראשי היא שהשדה גם Not Null וגם שלא ניתן להכניס לשדה ערך שכבר קיים ב-ID ברשומה אחרת (זו ההגדרה של מפתח ראשי). כדי למנוע כפילויות.
עכשיו יש את לנו טבלת USERS, עם 3 שדות שאחד מהם (ID) הוא מפתח ראשי.
המשימה שלך עכשיו היא בעצם לכסות את כל המקרים ולהכניס גם ערכים חוקיים וגם כאלה שהם לא חוקיים.
ונשאלת השאלה מהו ערך חוקי. את זה אתה יכול להבין מההגדרה של השדות.
לדוגמה, מס' הטלפון הוא גם מסוג Integer (כלומר מס' שלם מ-32,768- ושאינו עולה על 32,767) וגם Nut Null (אסור להשאירו ריק).
לכן ערך חוקי יהיה מספר בטווח הנ"ל (לא ברור לי כיצד טלפון יכול להיכנס פה).
וערך לא חוקי יהיה מספר עשרוני או Null, או אותיות (או כל דבר שהוא לא מספר, כמו סימני פיסוק).
אותו דבר עם המשתנה ID, אסור להשאירו ריק והוא חייב להכיל מספר.
Varchar2 - יכול להכיל עד 4000 bytes והוא לא תופס מקום במידה ואין ערך. כלומר לא ישמר מקום של 4000 ביטים בזיכרון אם שמנו Null.
אז אחרי כל החפירה הזו, דוגמה לערך חוקי:
Inset into USERS values(1,'Moshe', 1234)
Inset into USERS values(12,'Davis', 1456)
דוגמה לערך לא חוקי:
Inset into USERS values(2,'Moshe', abc)
שים לב ל- abc
או
Inset into USERS values(1,'Moshe', 1234)
שים לב ש- '1' חוזר על עצמו שוב.
או
Inset into USERS values(1,'Moshe', 123456789123)
וכן הלאה.
בצלחה בראיונות
משה.
ע"י: קולולו
היי משה,
נתון המבנה TABLE
הדרישה היא לכתוב שאילתות לבדיקה לטבלה מבחינת הכנסת נתונים חוקיים ולא חוקיים
בשאלה יש דSyntax לדוגמא איך מבנה השאילתה צריך להיות
ואחריו 2 שאילתות לדוגמא.
אשמח אם תעזור לי אילו שאילתות צריך עוד להריץ בכדי לבדוק את הטבלה TABLE
בנוסף אני לא מבין את הקוד:
) ALTER TABLE USERS ADD
(CONSTRAINT PK_ID PRIMARY KEY (ID
(
בתודה מראש על העזרה , קולולו.
ע"י: 1_אורח_כללי
היי אשר,
פיספסתי את הקטע של ההפקדה. תודה על התיקון.
היי קולולו (אחלה שם), לא ניתן להבין מצילום המסך מה השאלה...
תוכל להבהיר?
משה.
ע"י: 1_אורח_כללי
שאילתה 2
נדרש להחזיר הפקדה מקסימאלית לכן:
יש צורך להוסיף בWHERE מסנן לפי שדה 'Transaction_Type='1
(select customer_id, max(anount
from T_Account
where trx_date between sysdate and sysdate-30
AND Transaction_Type='1'
group by customer_id;
שאילתה 3
גם כאן חלק מהסינון הוא לפי הפקדה לכן:
(select customer_id, avg(amount
from t_account accs, t_customer_type custs
where accs.customer_id = custs.customer_id
and custs.customer_type = 2
and accs.Transaction_Type='1
group by accs.customer_id
ע"י: קולולו
משה, תודה רבה,
אשמח אם תוכל לעזור לי בשאלה הבאה.
מצורף קובץ.
בברכה, קולולו.
ע"י: 1_אורח_כללי
בבקשה:
1.
selec customer_id, avg(amount)
from T_Account
group by customer_id;
2.
select customer_id, max(anount)
from T_Account
where trx_date between sysdate and sysdate-30
group by customer_id;
3.
select customer_id, avg(amount)
from t_account accs, t_customer_type custs
where accs.customer_id = custs.customer_id
and custs.customer_type = 2
group by accs.customer_id
ע"י: קולולו
שאלה שנשאלה בחברת NICE למשרת בדיקות.
ע"י: 1_אורח_כללי
היי,
האם משהו יכול לעזור לי לפתור את השאלה הבאה בנושא SQL
תודה רבה.