Деректер қорының web-беттермен байланысы. Информатика, 10 сынып, қосымша материал.
Teachers кестесінен барлық жазбаларды таңдау қажет.
SELECT * FROM teachers; |
Таңдалған жазбалардың санын шектеу үшін LIMIT қызметтік сөзі қолданылады:
SELECT * FROM имя_таблицы LIMIT 2,3; |
Мысалда 2-жазбадан бастап кестеден 3 жазба іріктеледі.
Бұл сұраныс шарлау беттерінің блогын жасау кезінде қажет.
Қорытынды жиынтықтың өрістерін реттеу үшін оларды SELECT сөзінен кейін үтір арқылы қажетті ретпен көрсету керек:
SELECT name, zarplata FROM teachers; |
Name және zarplata өрістерінің барлық мәндерін сол ретпен таңдайды (алдымен name, содан кейін zarplata)
SELECT name, zarplata, premia FROM teachers ORDER BY name DESC; |
Name, zarplata, premia өрістерінің мәнін таңдап, name өрісінде кему бойынша сұрыптайды
- "Институт" деректер қоры. мысалы: сыйлықтар мөлшерінің ықтимал нұсқаларын білу қажет. Distinct пайдаланылмаса, нәтижесінде екі бірдей мән беріледі. Sql-да қайталанатын мәндерді Distinct енгізу кезінде жоюға болады - нәтижесінде қайталанатын мәндер қайталанбайды.
SELECT premia FROM teachers; |
SELECT DISTINCT premia FROM teachers; |
- SQL select 1_1 тапсырмасы. "Институт" деректер қоры. мұғалімдер кестесінен id және name іріктеуіне сұраныс орындаңыз. Мұғалімдердің тегін кему бойынша сұрыптаңыз.
Тапсырма sql select 1_2. "Институт" деректер қоры. қайталанатын мәндерді жойып, курс кестесінен (courses) курс ұзындығының ықтимал нұсқаларын (length) шығарыңыз
"Институт" деректер қоры мысалы: оқытушының деректерін teachers кестесінен шығару, тегі Иванов
SELECT * FROM `teachers` WHERE `name` = 'Иванов' |
"Институт" деректер қоры мысалы: жалақысы 10000, ал сыйлық 500
SELECT * FROM `teachers` WHERE `zarplata`=10000 AND `premia`=500 |
Тапсырма sql select 1_2. "Институт "деректер қоры courses кестесінен курстың ұзындығын шығару (length), оның атауы -" SQL бағдарламалау»
"Институт" деректер қоры мысалы: Оқытушының аты-жөні мен жалақысы, оның жалақысы 5000 және 10000 арасында.
SELECT name, zarplata FROM teachers WHERE (zarplata BETWEEN 5000 AND 10000); |
"Институт" деректер қоры мысалы: жалақысы 5000-нан 10000-ға дейінгі диапазонда болмайтын оқытушының аты-жөні мен жалақысын шығару.
SELECT name, zarplata FROM teachers WHERE (zarplata NOT BETWEEN 5000 AND 10000); |
"Институт" деректер қоры мысалы: жалақысы 5000, 10000 немесе 11000 болатын оқытушылардың аттарын шығару
SELECT name, zarplata FROM teachers WHERE (zarplata IN (5000,10000,11000)); |
"Институт" деректер қоры мысалы: мына мәндердің арасында емес оқытушылардың аттарын шығару: 5000, 10000 немесе 11000.
SELECT name, zarplata FROM teachers WHERE (zarplata NOT IN (5000,10000,11000)); |
Sql select 1_3 тапсырмасы. "Институт" деректер қоры 2000-нан 5000 рубльге дейінгі сыйақылары, мұғалімдердің тегін, жалақысын және сыйлықтарын шығару.
"Институт" деректер қоры мысалы: жалақысы 15000-нан төмен оқытушылар үшін мұғалімдердің аты-жөні және олардың жалақысы шығарылсын, zarplata өрісі " төмен жалақы» болып өзгертілсін. Шешуі:
1 2 3 | SELECT name, zarplata AS низкая_зарплата FROM teachers WHERE zarplata<15000; |
Нәтижесінде:
"Институт" деректер қоры мысалы: teachers кестесінен name өрісін шығарып, "жалақы_сыйақы" өрісін атай отырып, жалақы мен сыйақы сомасын есептеу» Шешуі:
1 2 | SELECT name, (zarplata+premia) AS zarplata_premia FROM teachers; |
Нәтижесінде:
SQL As 2_1. Институт деректер қоры.Мұғалімдердің аты-жөнін және олардың жалақысы мен сыйақысының арасындағы айырмашылықты көрсету. "Жалақы_азайту_сыйақы" қорытындысын атау»
SQL-дегі агрегаттық функциялар
Қорытынды мәндерді алу және өрнектерді есептеу үшін SQL-де агрегаттық функциялар қолданылады:
Функция | Сипаттамасы |
COUNT(*) | Кесте жолдарының санын қайтарады. |
COUNT(өріс аты) | Көрсетілген бағандағы мәндердің санын қайтарады |
SUM(өріс аты) | Көрсетілген бағандағы мәндердің суммасын қайтарады. |
AVG(өріс аты) | Көрсетілген бағанда орташа мәнді қайтарады. |
MIN(өріс аты) | Көрсетілген бағанда ең аз мәнді қайтарады |
MAX(өріс аты) | Көрсетілген бағанға максималды мәнді қайтарады. |
Барлық агрегаттық функциялар жалғыз мәнді қайтарады.
COUNT, MIN және MAX функциялары кез келген деректер түрлеріне қолданылады.
SUM және AVG функциялары тек сандық өрістер үшін қолданылады.
COUNT(*) және COUNT(<өріс аты>) функциялары арасында айырмашылық бар: екіншісі есептеу кезінде NULL мәндерін ескермейді.
Маңызды: SQL-де агрегаттық функциялармен жұмыс істеу кезінде қызметтік сөз as пайдаланылады.
"Институт" ДБ үлгісі: мұғалімдер арасында ең үлкен жалақының мәнін алу, "макс_зп" қорытындысын шығару» Шешуі:
SELECT MAX(zarplata) AS макс_зп FROM teachers; |
Результаты:
Agr func 2_2. Институт деректер қоры. Мұғалімдердің ең төменгі және ең жоғарғы жалақысын шығару
Agr func 2_3. Институт деректер қоры. Сабақ өткізілмеген және жоспарланбаған курс атауын таңдаңыз. Кодты толықтырыңыз:
1 2 3 4 5 6 | SELECT `title` FROM `courses` WHERE `title` NOT IN ( ... ) |
Agr func 2_4. Институт деректер қоры. Алдыңғы тапсырманы өзгертіңіз: сабақтар өткізілмеген және жоспарланбаған курстардың санын есептеңіз. «Сабақ жоқ » атты нәтиже шығарыңыз.
SQL-дегі GROUP BY ұсынысы
SQL-дегі group by операторы әдетте агрегаттық функциялармен бірге қолданылады.
Агрегаттық функциялар сұраныстың барлық нәтижелік жолдарынан орындалады. Егер сұраныста GROUP BY операторы болса, GROUP BY ұсынысындағы әрбір Жол Жинағы топты құрайды және агрегаттық функциялар әр топ үшін жеке орындалады.
Lessons кестесімен мысалды қарастырайық:
Мысал:
- Иванов мұғалімі lessons кестесінен өткізілген сабақтардың санын беру 1 (tid) реттік нөмірі).
SELECT COUNT(tid) AS Иванов FROM lessons WHERE tid=1 |
Результат:
- Lessons кестесінен әртүрлі курстар бойынша Иванов мұғалімі өткізген сабақтар санын беру
SELECT course, COUNT( tid ) AS Иванов FROM lessons WHERE tid =1 GROUP BY course |
Нәтиже:
SQL group by 2_5. Институт деректер қоры. Бір мұғалім өткізген сабақтар санын есептеу. Нәтиже осылай көрінуі мүмкін:
sql INNER JOIN сұраныстары
FROM екі немесе одан да көп кестелерді біріктіру операцияларын қолдана алады.
Мысалды талдайық.: teachers (мұғалімдер) және lessons (курстар) кестелері бар:
teachers | lessons |
Мысал: Мұғалімдердің аттарын және олар жүргізетін курстар бойынша өткізілген сабақтарды таңдау Шешуі:
Бұл үшін екі кесте қажет:
SELECT t.name,t.code,l.course FROM teachers t INNER JOIN lessons l ON t.id=l.tid |
Нәтижесінде:
Сұраныста l және t әріптері lessons (l) және teachers (t) кестелерінің псевдонимдері.
Inner Join - бұл ішкі бірлестік (JOIN - с ағылш. "біріктіру", INNER кілт сөзін төмендетуге болады).
Ішкі біріктіру кезінде біріктірілетін кестелерден сәйкес келетін деректер ғана таңдалады.
Маңызды: Inner Join - екі кестеде болған жағдайда ғана мәндер таңдалады.
Sql left inner join 1. Институт деректер қоры.
Teachers және courses кестелерінен барлық оқытушылардың аты-жөнін, курстардың атауын және ұзақтығын (name, title, length) көрсету. Ішкі бірлестікті пайдалану
Insert операторы
Бұл түрдегі сұраныстар кестеге жолды қосуға немесе ақпаратты деректер қорының кестесіне қосуға мүмкіндік береді (insert — ағылшын тілінен аударғанда "кірістіру").
Мәндерді кестенің нақты өрістеріне енгізу үшін келесі құрылым қолданылады:
INSERT INTO имя_таблицы(col1,col2) VALUES('value1','value2') |
Мәндерді кірістіру үшін барлық өрістерге бірден құрылым қолданылады:
INSERT INTO имя_таблицы VALUES('value1','value2','value3' ...) |
Мұнда барлық өрістердің мәндерін олардың кестедегі жүру тәртібімен атап көрсету қажет.
Маңызды: Auto Increment (есептегіш) өрісі үшін мән әрқашан Null
Мысал: courses кестесіне бір уақытта барлық өрістер үшін жазба: tid— 1, title — Java, length — 40
Шешуі:
Php-да жұмыс істеу нәтижесі келесідей:
1 2 3 4 5 6 7 8 9 | $conn = mysql_connect ("localhost", "root", "") or die("Нет соединения: " . mysql_error()); print ("Удачно соединено"); mysql_select_db("institute", $conn);
$sql="INSERT INTO courses VALUES(Null,1,'Java',40)" ; $sql= (string) $sql; $result = mysql_query($sql, $conn) or die ("no!".mysql_error()); |
ДҚБЖ-да жұмыс істеу үшін:
INSERT INTO courses VALUES(NULL,1,'Java',40) |
Мысал: courses кестесіне келесі өрістер мәнін қосу: title — JavaScript, length — 72
Шешуі:
Php-да жұмыс істеу нәтижесі келесідей:
1 2 3 4 5 6 7 8 9 | $conn = mysql_connect ("localhost", "root", "") or die("Нет соединения: " . mysql_error()); print ("Удачно соединено"); mysql_select_db("institute", $conn);
$sql="INSERT INTO courses (title,length) VALUES('JavaScript',72)" ; $sql= (string) $sql; $result = mysql_query($sql, $conn) or die ("no!".mysql_error()); |
Әлеуметтік желілерде бөлісіңіз:
Facebook | VK | WhatsApp | Telegram | Twitter
Қарап көріңіз 👇
Пайдалы сілтемелер:
» Туған күнге 99 тілектер жинағы: өз сөзімен, қысқаша, қарапайым туған күнге тілек
» Абай Құнанбаев барлық өлеңдер жинағын жүктеу, оқу
» Дастархан батасы: дастарханға бата беру, ас қайыру
Соңғы жаңалықтар:
» 2025 жылы Ораза және Рамазан айы қай күні басталады?
» Утиль алым мөлшерлемесі өзгермейтін болды
» Жоғары оқу орындарына құжат қабылдау қашан басталады?