Дипломного проекта  разработка серверной части веб 



жүктеу 0,72 Mb.
Pdf просмотр
бет7/22
Дата22.05.2018
өлшемі0,72 Mb.
#16329
түріДиплом
1   2   3   4   5   6   7   8   9   10   ...   22

28 

 

--------------- 



San Francisco 

(1 row) 


Енді  бәрі  орнында 

  сұраныс  ішіндегі  сұраныс  жеке  орындалады  және 



агрегаттық  функция  нәтижесі  сыртқы  сұраныста  болып  жатқан  амалдардан 

тәуелсіз есептеледі.  

Агрегаттық  фунциялар  GROUP  BY  сөйлемімен  комбинациясымен  өте 

пайдалы. 

Мысалы, 

қалалардың 

арасындағы 

тәуліктік 

максимум 

температураны алуға болады: 

SELECT city, max(temp_lo) 

FROM weather 

GROUP BY city; 

Язык SQL 

12 

city | max 



---------------+----- 

Hayward | 37 

San Francisco | 46 

(2 rows) 

Бұл жерде әр қала үшін бір-бір қатар алынды. Әрбір агрегаттық нәтиже 

әр қалаға тиесілі кесте қатарлары арқылы есептеледі. Біріктірілген қатарларды 

HAVING сөйлемі арқылы жиынтықтай аламыз: 

SELECT city, max(temp_lo) 

FROM weather 

GROUP BY city 

HAVING max(temp_lo) < 40; 

city | max 

---------+----- 

Hayward | 37 

(1 row) 

Дәл сол нәтижелер алынды, бірақ та temp_lo барлық мағыналары 40 кем 

қалалар үшін.  

Соңында, егер тек «S» басталатын қалалар қызығушылық тудырса, оны 

іске асыруға болады: 

SELECT city, max(temp_lo) 

FROM weather 

WHERE city LIKE 'S%' 1 

GROUP BY city 

HAVING max(temp_lo) < 40; 

LIKE операторы шаблон бойынша салыстыруды орындайды.  

Агрегаттық  функциялар  мен  WHERE  және  HAVING  SQL-сөйлемдері 

қалай  қандай  арақатынаста  болатынын  түсінудің  маңызы  зор.  WHERE  және 

HAVING  негізгі  артықшылығы:  WHERE  алдымен  қатарларды  таңдайды, 

содан  кейін  оларды  жиынтықтап  және  олардың  агрегаттық  фунцияларын 



29 

 

есептейді,  осылайша  агрегатты  есептеу  үшін  қатарларды  таңдайды.  Ал 



HAVING  агрегаттық  фунцияларды  есептеп  жинағаннан  кейін  ғана  қатарлар 

жиынтығын таңдайды. Нәтижесінде  WHERE сөйлемінде агрегаттық функция 

болмауы керек; агрегаттық функцияларды есептеу үшін қатарларды анықтауға 

агрегаттық  функцияларды  қолданудың  мағынасы  жоқ.  HAVING  сөйлемінде, 

керісінше,  әрдайым  агрегаттық  фунциялар  бар.  (Қатаң  сөйлегенде,  HAVING 

сөйлемін агрегат қолданбай жазса болады, бірақ оның пайдалылығы біршама. 

Дәл осы шарт WHERE кезеңінде тиімдірек жұмыс істеуі мүмкін.) 

Жоғарыдағы  мысалда  қолданған  фильтр  HAVING  қосымша  шектеуіне 

қарағанда  тиімдірек,  өйткені  онымен  WHERE  шартын  қанағаттандырмайтын  

барлық қатар үшін агрегаттарды есептеу және жиынтықтау керек емес.  

 

3.8 

  Мәліметтерді өзгерту 

 

Қолданыстағы  қатарлардағы  мәліметтерді  UPDATE  командасын 



қолданып  өзгертуге  болады.  Мысалыға,  пайдаланушы  28  қарашадан  кейін 

барлық  температура  көрсеткіштері  екі градусқа  көтерілгенін байқады.  Келесі 

жолмен мәліметтерді түзеуге болады: 

UPDATE weather 

SET temp_hi = temp_hi - 2, temp_lo = temp_lo - 2 

WHERE date > '1994-11-28'; 

Мәліметтердің жаңа күйі: 

SELECT * FROM weather; 

city | temp_lo | temp_hi | prcp | date 

Язык SQL 

13 

---------------+---------+---------+------+------------ 



San Francisco | 46 | 50 | 0.25 | 1994-11-27 

San Francisco | 41 | 55 | 0 | 1994-11-29 

Hayward | 35 | 52 | | 1994-11-29 

(3 rows) 

 

3.9 

 Мәліметтерді жою 

 

Қатарларды  кестеден  DELETE  командасы  көмегімен  жоюға  болады. 



Мысалы,  Хейуор  қаласының  бұдан  былай  ауа-райы  қызығушылық 

тудырмайды. Оыс жағдайда керек емес қатарды кестеден жоюға болады: 

DELETE FROM weather WHERE city = 'Hayward'; 

 

Хейуор қаласына қатысты барлық жазбалар жойылған: 



SELECT * FROM weather; 

city | temp_lo | temp_hi | prcp | date 

---------------+---------+---------+------+------------ 

San Francisco | 46 | 50 | 0.25 | 1994-11-27 

San Francisco | 41 | 55 | 0 | 1994-11-29 



30 

 

(2 rows) 



DELETE FROM кесте_аты; 

түрдегі операторлардан сақтану керек. Шарт көрсетілмесе  DELETE  кестедегі 

барлық  қатарларды  жояды,  оны  толық  тазалайды.  Сонымен  қатар  жүйе 

операцияны растауды сұрамайды.  

 

 

 



31 

 

4 Кеңейтілген мүмкіншіліктер 



 

 

4.1 Көріністер 

 

Пайдаланушыға 



қалалардың 

координаталары 

мен 

ауа


райы 


жазбаларының  тізімі  керек  делік,  алайда  ол  әр  кезде  сұранысты  жаза  бергісі 

келмейді.  Осы  сұраныс  бойынша  көрініс  жасауға  болады,  дәлірек  айтқанда, 

сұранысқа ат беру. Содан кейін оған қарапайым кестеге сияқты байланысу: 

CREATE VIEW myview AS 

SELECT city, temp_lo, temp_hi, prcp, date, location 

FROM weather, cities 

WHERE city = name; 

SELECT * FROM myview; 

Көрінсітердің  белсенді  қолдануы 

  SQL  деректер  қорын  жақсы 



жобалаудың  негізгі  аспектісі.  Көріністер  кестелердің  ішкі  құрылымын 

жасыруға  мүмкіндік  беред;  құрылымдар  қосымшалар  даму  және  сенімді 

интерфейстермен өзгеруі мүмкін.  

Көріністер  кестелер  қолданған  барлық  жерде  дерлік  қолдануға  болады. 

Көріністер жиі басқа жеке көріністер қорында жасалынады.  

 

4.2  Ішкі кілттер 

 

Мысалдағы  weather  және   cities  кестелері қайта  қарастырылады.  Келесі 



тапсырманы  қарастыру  керек:  cities  кестесіндегі  қатарлармен  сәйкеспейтін 

weather  кестесіне  ешкім  қатар  қоса  алмайтындай  етіп  жасау  керек.  Бұл 

мәліметтердің сілтемелік тұтастығын қамту деп аталады.  Қарапайым ДҚБЖ 

мына жолмен іске асыруы керек еді (мүмкін болған жағдайда ғана) : 

бастапқыда cities кестесінде сәйкес жазбалар бар

жоғын тексеру керек, содан 



кейін  жаңа  жазбаны  weather  кестесіне  қосады  немесе  қабылдайды.  Бұл  өте 

проблемалық тәсіл және ыңғайлы емес, сол себептен PostgreSQL осының бәрін 

пайдаланушы орнына жасай алады.  

Кестенің жаңа хабарлануы келесі түрде болады: 

CREATE TABLE cities ( 

city varchar(80) primary key

location point 

); 


CREATE TABLE weather ( 

city varchar(80) references cities(city), 

temp_lo int, 

temp_hi int, 

prcp real, 

date date 

); 



жүктеу 0,72 Mb.

Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10   ...   22




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау