שאלה של מתחילה ב- SQL..

shiran mine

New member
שאלה של מתחילה ב- SQL..

היי,
שאילתא שנראית לי קלה - אבל אין לי מושג איך כותבים אותה:
איך יודעים כמה רשומות יש הכי הרבה בעמודה מסוימת - למשל: בעמודת CustomerName יש את השם "ריטה" כמה פעמים, השם "אלכס" כמה פעמים, וכו'..
אני רוצה לדעת איזה שם לקוח - מופיע הכי הרבה פעמים.
איך עשים זאת?

תודה רבה,
שירן
 

nitzos1

New member
יש כל מיני דרכים - אח, מהן

Select top 1 CustomerName,
count(*)
From CUSTOMER_TABLE
Group by CustomerName
Order by count(*) desc
 

shiran mine

New member
הממ וזאת הדרך הכי קלה שיש?

אני מנסה להבין מה עשית שם..
שמת count (*) בסוף של שורת ה- select?

אשמח לקבל הסבר לשאילתה - אולי כך אבין אותה יותר.
 

nitzos1

New member
הסבר

בחר את הרשומה הראשונה כאשר אנו ממינים את רשומות הלקוח לפי כמות ההופעות שלה בסדר יורד.
כך הרשומה הראשונה היא בעלת מספר ההופעות הגדול ביותר
ה-count(*)
בשילוב
group by
סופר את המופעים לכל אחת מהלקוחות המופעים בטבלה
מקווה שעזרתי
שמוליק ב
 

shiran mine

New member
התקבלה שגיאה, תראה אם כתבתי טוב:

מצרפת תמונה של איך כתבתי ומה השגיאה שהתקבלה.
 

משקיען10

New member
את צריכה לשים פונקציה של אגריגציה (הקבצה)

כגון SUM, COUNT וכו' בתוך ה- SELECT אם את משתמשת ב- -group by
 

pitoach

New member
אין הכרח בכך משקיען


אתה יכול להריץ אגריגציה ללא פונקציית אגריגצייה.
זו שאילתה חוקית למשל:
select top 1 ParentID
from dbo.CityData
Group by ParentID

וגם זו שאילתה חוקית
select top 1 ParentID
from dbo.CityData
Group by ParentID
Order by count(*) desc
 

משקיען10

New member
pitoah - לא זכור לי שלימדו אותנו שזה אפשרי

תודה!
עדכוןן לגבי הקורס...
עכשיו אנחנו לומדים את ה- SSIS - Integration Services
ואחרי זה עוד שיעור אחד או שניים על ה- Reporting services ובעצם סיימנו את הקורס ועוברים רק לשלב של פרויקט גמר של יישום של כל מה שלמדנו. אני לא יכול להשוות מול קורסים במכללות אחרות אבל נאיה פשוט מעולים וגם המרצה הספציפי שלימד אותנו.
 

pitoach

New member
שירה בוקר טוב

את מנסה להריץ את השאילתה במערכת לימוד של אתר http://www.w3schools.com
האתר לא מאשר להריץ כל שאילתה אלא רק את השאילתות שהן תשובה שאלה או לדוגמה בעקרון. זה אתר טוב ללימוד אבל לתרגול של דברים שאת צריכה ולא שאלות או דוגמאות מהאתר את צריכה לעבוד עם מסד נתונים שלך


* זו לא שגיאה של שרת בסיסי הנתונים אלא של מנוע ניתוח הטקסט של האתר.
 

shiran mine

New member
אז מה עושים??

עם איזה מסד נתונים משלי אני יכולה לעבוד?
אין לי שום דבר מותקן ולכן האופציה של הרצת שאילתות באתר התאימה לי לאימונים..
הבנתי ש- ACCSEE מגיעה עם מסד נתונים, הייתם ממליצים לי להתקין לעשות זאת שם?
 

pitoach

New member
את יכולה להתקין שרת SQL בחינם


גם ל SQL Server וגם ל ORACLE יש גרסאות מעולות בחינם.

אני אישית עובד עם השרת של מייקרוסופט SQL Server והוא יכול להתאים בשביל כל מי שרוצה ללמוד. אני כמובן עובד עם הגרסאות בתשלום בעיקר אבל הגרסה החינמית מספיקה בהחלט ללמוד ולהגיע לרמה גבוהה מאוד.

הנה הקישור להורדת הגרסה החינמית
תבדקי שהדרישות להתקנה מתאימות למחשב שלך קודם, וקדימה ללימוד

http://www.microsoft.com/en-us/download/details.aspx?id=29062

* בקישור יש כמה קבצים. אני ממלית על התקנת הגרסה המלאה כדי שתוכלי ללמוד את כל הכלים שמגיעים איתה ולא רק הגרסה הקטנה שמכילה רק את השרת עצמו.
אם את עובדת ם מערכת גרסת 32 ביט אז תבחרי בקובץ
ENU\x86\SQLEXPRADV_x86_ENU.exe
אם את עובדת עם מערכת ברסת 64 ביט (אני מקווה מאוד) אז תבחרי בקובץ
ENU\x64\SQLEXPRADV_x64_ENU.exe
* ההתקנה של הקבצים האלו כוללת גם את תוכנת הניהול SSMS באמצעותה תוכלי להתחבר לשרת אחר כך, ליצור מסדי נתונים חדשים ולכתוב שאילתות.
* שוב אני מזכיר לבדוק לפני ההתקנה שהדרישות מתאימות (אם לא אז אפשר גרסה יותר ישנה, אבל מאוד מומלץ ללמוד על גרסאות חדשות ולא ישנות).

בקישור הבא יש מדריך להתקנה. לא עברתי עליו לומק אבל הוא ניראה טוב מאוד. יש כמה דברים שהם ממליצים ואני ממליץ מאוד לא לבצע!
סעיף 11: לא לבחור שם INSTANCE כמו שהם ממליצים! אלא לבחור בשם ברירת המחדל SQLEXPRESS אחרת מצפה לכם הרבה בעיות אם תתחילו לעבוד עם VS לשם פיתוח (זה השם ש VS מחפש בברירת המחדל).
סעיף 14: תמיד תוודאו שאתם מדירים Mixed Mode, זה חשוב ללימוד ומאפשר התחברות עם משתמשים המוגדרים בשרת ה SQL ולא רק משתמשים של מערכת ההפעלה. זה גם חשוב בשביל אבטחה אם אתם מפתחים תוכנות.
http://www.symantec.com/connect/articles/install-and-configure-sql-server-2008-express
 

pitoach

New member
דרך אגב... תמשיכי עם הקורס שיש באתר


זה אתר מעולה לדעתי ואם תעברי מסודר על כל מה שיש שם בקורס תוכלי להגיע לרמה שהיא מעל רוב המשתמשים בפורום בנושא שפת SQL. אחר כך יגיע הזמן ללימוד מתקדם יותר של שפות נוספות כמו למשל TSQL אם את בוחרת להתקין שרת SQL Server.
 

shiran mine

New member
ואוו תודה רבה על כל העזרה!!!!

אני בנתיים גם עשיתי "תחקיר" לגבי בסיסי נתונים - והורדתי 2 מסדי נתונים - ORACLE, ו- MYSQL.
כך ש.. אני כבר לא יודעת - מה הכי נכון להתחיל איתו?

ויש לי 32 ביט.. למה אמרת שעדיף 64?

בהתקנה של MYSQL, לא ידעתי מה לבחור, אז התקנתי חבילה מלאה.
אני לא ממש יודעת מה עושים אחרי ההתקנה.
יש לי את החלון הזה, מה אני אמורה לבחור בו? (מצ"ב צילום).

בכלל, אני מנסה להבין את הרעיון - זה DB שמגיע עם נתונים משלו שעליהם "מתאמנים"? ובנוסף מאפשר להוסיף גם נתונים משלי?

תודה רבה,
 

pitoach

New member
הנה כמה נקודות


1. את מערבבת מושגים

MySQL
Oracle
SQL Server
ועוד הרבה טובים ואחרים הם שרתים ולא מסדי נתונים.
הבלבול שלך נובע כניראה מכך שאת רגילה לעבוד עם תוכנות ביתיות כמו האקסס, ואין לך נסיון בעבודה עם שרתים.
בעקרון שרתי מסדי נתונים הם תוכנות שנועדו לנהל מסדי הנתונים. שרתים מיקצועיים יכולים תיאורטית לנהל בקלות מאות אלפי בסיסי נתונים, לאפשר עבודה של אלפי משתמשים בו זמנית, ולבצע מליארדי פעולות בכל שנייה ועוד...

אחרי שמתקינים שרת, ניתן לחבר אליו מסדי נתונים קיימים (פעולה בשם ATTACH) או ליצור מסדי נתונים חדשים שיהיו מחוברים לשרת. ישנם שרתים מסדי נתונים שיודעים לבצע פעולות ATTACH דינאמיות בלי צורך בחיבור של מסד הנתונים לבד (למשל SQL EXPRESS מאפשר זאת).

2. שרתים מנהלים באמצעות פקודות, והם לא כוללים חלונות גרפיים יפים כמו שיש לאקסס למשל, בדרך כלל. לשרתים נפוצים פיתחו תוכנות מיוחדות כדי להקל עלינו את החיים, אבל חייבים לזכור שתוכנות אלו הן לא חלק מהשרת.

אם התקנת רק את השרת אז אין לך תוכנת ניהול גרפית. למשל בשרת SQL Server תוכנת הניהול הגרפית המומלצת נקראת SQL Server Management Studio או בשם המקוצר SSMS. תוכנה זו ניתן להתקין בנפרד או ביחד עם ההתקנה של השרת. אפשר להריץ SSMS במחשב אחד ולנהל שרת שנמצא במחשב אחר שבו לא מותקן SSMS. התוכנה הזו מגיעה ביחד עם ההתקנה של הקובץ שהמלצתי עליו (זה קובת שכולל גם את השרת וגם את תוכנות העזר). אבל אפשר לבחור להתקין קובץ אחר שכולל רק את השרת עצמו או רק את ה SSMS (הכל נמצא באותו קישור).

ישנן כמה תוכנות ניהול מומלצות לשרתי MySQL. אני לא יודע אם את התקנת את מהן (יש רסאות של קבצים כמו בשרתי SQL שכוללות כבר בתוכן גם תוכנת ניהול). אני חושב ששלושת התוכנות הכי נפוצות הן:
workbench
phpmyadmin
toad

3. יש הרבה חסרונות ל 32 ביט
תחפשי בגוגל על ההבדלים (סתם לדוגמה 32 ביט לא מאפשר בברירת המחדל לעבוד עם יותר מ 4 גיגה זכרון).
https://www.google.co.il/search?q=32bit+vs+64bit

4. אני בשום אופן לא המלצתי על שרת MySQL אלא על ORACLE או SQL Server. עם כיוון אישי של עדיפות ל SQL Server.

MySQL הוא שרת שפותח בקוד פתוח ובחינם ועד שנת 2010 היה מפותח על ידי הקהילה הפתוחה. חברת אורקל קנתה את הזכויות עליו. אני לא מוצא שום סיבה ולא ממליץ למי שרק מתחיל לבחור בשרת זה כדי להיכנס לעולם שרתי מסדי הנתונים!

עד שנת 2005 אני הייתי משתמש ב MySQL הרבה בגלל שהוא היה שרת חינמי ונוח לי לעבודה במערכות קטנות, אבל החל משנת 2005 מייקרוסופט התחילו לספק גרסה חינמית של השרת המקצועי SQL Server. גם חברת אורקל מספקת גרסה חינמית של השרת המקצועי שלהם (אני לא יודע מאיזה שנה הם התחילו).

מי שמתחיל ללמוד עדיף לו להתרגל לעבוד עם אחד השרתים המיקצועיים. רק מי שמראש יודע שהוא מכוון לעבוד בחברה שעוסקת עם MySQL אז אני אמליץ ללמוד ישירות מההתחלה לעבוד עם MySQL. לכל השאר אני ממליץ להתחיל עם SQL Server (או ORACLE אם יש לו קהילה שבה הוא יכול לקבל תמיכה טובה).

אני ממליץ לך לעבור לשימוש ב SQL Server בגרסה החינמית. לא הרבה מחברי הפורום כאן עובדים עם MySQL ואם תחליטי בכל זאת לעבוד עם שרת זה, אז כדאי למצוא קהילה שמתמחה בשרת זה (אני עובד איתו לפעמים רק כשאין לי ברירה... למשל כשיש לי לקוח שעובד איתו).
 

shiran mine

New member
איזה תותח אתה, תודה!!!

יש עוד משהו קטן, אני אשאל אותך כבר בפרטי, כדי לא להעמיס פה על הפורום. תודה רבה על כל העזרה!!
 

pitoach

New member
תודה על המילים החמות שירן


אבל על תמיכה בפרטי אני גובה הרבה כסף

בשביל תמיכה בחינם קיים הפורום
 

משקיען10

New member
אגב לגבי התשובה קצת "פשפשתי" בחומרים שלנו

ובקבצים שהשתמשנו בהם בכיתה ואכן יש דוגמא לזה אבל זה בעצם כמו לעשות DISTINCT על השורה וזה קצת יותר קל יותר להסביר ובסופו של דבר נותן אותה תוצאה. מסכים?
 
למעלה