mysql create view tutorial with code examples
Овај МиСКЛ водич за прављење погледа објашњава све о стварању погледа у МиСКЛ-у помоћу различитих клаузула и примера. Такође покрива како испуштати и управљати приказима:
У МиСКЛ-у је поглед виртуелна табела која нам омогућава да погледамо податке у табели без спречавања приступа табели другим програмима и тако нам помаже да избегнемо мртве тачке.
Прикази се креирају на врху једне или више табела у којима се налазе подаци. Пре него што наставите, имајте на уму да користимо МиСКЛ верзија 8.0 .
Шта ћете научити:
МиСКЛ Цреате Виев
Синтакса:
CREATE (REPLACE) VIEW view_name AS SELECT col1, col2, ... FROM table_name WHERE condition;
Објашњење синтаксе:
- Синтакса започиње са кључном речи „ЦРЕАТЕ ВИЕВ“, чиме се МиСКЛ сервер обавештава о врсти активности коју треба извршити. Ово је обавезна кључна реч и не може се изоставити.
- РЕПЛАЦЕ је опциони параметар. Ово можемо користити док радимо на постојећем погледу.
- Следи име погледа. Треба да буде јединствен баш као и називи табела и колона.
- Затим изаберите колоне из табеле. Поглед може имати све колоне доње табеле или само неколико изабраних.
- Следи име табеле на којој се мора извршити приказ. Ово је обавезно и не може се изоставити.
- Затим долази услов ВХЕРЕ, који ограничава или филтрира број циљних редова на које треба применити радњу ЦРЕАТЕ ВИЕВ. ВХЕРЕ је такође кључна реч, али необвезна.
Клаузула ВХЕРЕ је, међутим, значајна. Ако није поменуто или ако услов није правилно постављен, тада ће цела табела или непотребни редови бити део приказа.
Пример за МиСКЛ Цреате Виев
Доље је дата табела узорка креирана у МИСКЛ-у.
Назив шеме: пацифички
Назив табеле: запослени
Имена колона:
емпНум : Садржи целобројне вредности за број запосленог.
презиме : Садржи варцхар вредности за презиме запосленог.
име : Садржи варцхар вредности за име запосленог.
е-маил : Садржи варцхар вредности за имејл ИД запосленог.
дептНум : Садржи варцхар за ИД одељења коме запослени припада.
плата : Садржи децималне вредности зараде за сваког запосленог.
датум_почетка : Садржи датумске вредности за датум придруживања запосленог.
Назив шеме: пацифички
Назив табеле: одељења
Имена колона:
дептНум; Садржи варцхар за ИД одељења у оквиру организације.
град: Садржи име града у којем раде одељења.
држава: Садржи име државе која одговара граду.
бонус Садржи процентуалну вредност бонуса.
МиСКЛ Симпле Направите поглед
Сада креирајмо приказ на врху горње табеле.
Доље је дат упит.
претвори цхар у стринг ц ++
Клаузула СЕЛЕЦТ може бити са одређеним именима колона или можемо користити „*“ да бисмо добили све колоне. Једном, када направимо приказ, не можемо да додајемо или бришемо колоне. Ако желимо да додамо или избришемо колоне, мораћемо или да направимо нови приказ или да заменимо овај постојећи приказ.
Излазни израз показује да су СКЛ изрази ЦРЕАТЕ ВИЕВ успјешно извршени. Такође се каже да то није погођено ниједним редовима. То подразумева да када се креира нови ред то не утиче на податке у основној табели.
Сад да испитамо поглед.
Упит:
CREATE VIEW employees_view AS SELECT empNum, lastName, firstName, email, deptNum, salary, start_date FROM employees ; SELECT empNum, firstName, lastName, email, deptNum, salary, start_date FROM employees_view ;
Резултат:
емпНум | презиме | име | е-маил | дептНум | плата | датум_почетка |
---|---|---|---|---|---|---|
1008 | Баилеи | Оливер | оливер.баилеи@гмаил.цом | 3 | 24494.4 | 0001-01-01 |
1001 | Андревс | Јацк | ја@гмаил.цом | 1 | 3182.7 | 0001-01-01 |
1002 | Сцхватз | Мике | мс@гмаил.цом | 1 | 5304.5 | 0001-01-01 |
1003 | Ланглеи | Маргарет | маргарет.ланглеи@гмаил.цом | два | 8820 | 0001-01-01 |
1004 | Харера | Сандра | сх@гмаил.цом | 1 | 10609 | 0001-01-01 |
1005 | читати | Петер | пл@гмаил.цом | два | 14332.5 | 0001-01-01 |
1006 | Кеитх | Јенни | јк@гмаил.цом | два | 16537.5 | 0001-01-01 |
1009 | Куп | Харри | хб@гмаил.цом | 5 | 30645.6 | 0001-01-01 |
1011 | Ханкс | Том | тх@гмаил.цом | НУЛА | 10100 | 0001-01-01 |
1012 | Лутхер | Мартине | мл@гмаил.цом | 3 | 13000 | 0001-01-01 |
1014 | Мурраи | Кеитх | км@гмаил.цом | 1 | 25000 | 0001-01-01 |
1015 | Брансон | Јохн | јб@гмаил.цом | два | 15000 | 0001-01-01 |
1016 | Мартине | Рицхард | рм@гмаил.цом | 4 | 5000 | 0001-01-01 |
1017 | Јохнсон | Еве | еј@гмаил.цом | 3 | 5500 | 2019-11-25 |
1018 | Бонд | Нолан | нб@гмаил.цом | два | 15000 | 2019-09-13 |
Направите поглед помоћу ГРОУП БИ и ОРДЕР БИ
Претпоставимо сценарио у којем треба да добијемо укупан износ плате, мудро по одељењима.
Доље је дат упит:
Уместо да сваки пут покренемо овај упит у табели, потребне су нам информације, боље је да упит потражимо, јер ће ово потрошити мање извора базе података.
Сада, да видимо садржај нашег погледа. Открићемо колико свако одељење шаље својим запосленима у погледу плата.
Упит:
CREATE VIEW salPerDept AS SELECT deptNum, sum(salary) FROM employees GROUP BY deptNum ORDER BY deptNum desc ; SELECT * FROM employees_view ;
Резултат:
дептНум | сума (плата) | |||||
---|---|---|---|---|---|---|
1006 | Кеитх | Јенни | два | Цхарлотте | Сједињене Америчке Државе | 5 |
5 | 30645.6 | |||||
4 | 5000 | |||||
3 | 42994.4 | |||||
два | 69690 | |||||
1 | 44096.2 | |||||
НУЛА | 10100 |
НУЛЛ у дептНум означава да запослени није део ниједног одељења већ да је на платним списковима организације.
МиСКЛ Цреате Виев користећи ЈОИН
Претпоставимо да желимо да добијемо податке о одељењу, граду из којег се темељи и бонусу који се нуди запосленима. Ове информације су нам потребне за сваког запосленог.
Да бисмо то постигли, користићемо кључну реч ЈОИН за добијање података из табеле одељења и запослених.
Погледајмо упит и његов излаз.
Овде можемо користити различите типове ПРИДРУЖИВАЊА, као што су: УНУТАРЊЕ ПРИДРУЖИВАЊЕ, ЛИЈЕВО ВАЊСКО ПРИДРУЖИВАЊЕ, ДЕСНО ВАЊСКО ПРИДРУЖИВАЊЕ или ПУНО ВАЊСКО ПРИДРУЖИВАЊЕ у зависности од наших захтјева.
Упит:
CREATE VIEW join_view AS SELECT A.empNum, A.lastName, A.firstName, A.deptNum, B.city, B.country, B.bonus FROM employees A INNER JOIN departments B USING (deptNum) ; SELECT * FROM join_view ;
Извршимо сада упит СЕЛЕЦТ на овом приказу да бисмо видели излаз:
Резултат:
емпНум | презиме | име | дептНум | град | земља | бонус |
---|---|---|---|---|---|---|
1001 | Андревс | Јацк | 1 | Њу Јорк | Сједињене Америчке Државе | 3 |
1002 | Сцхватз | Мике | 1 | Њу Јорк | Сједињене Америчке Државе | 3 |
1004 | Харера | Сандра | 1 | Њу Јорк | Сједињене Америчке Државе | 3 |
1014 | Мурраи | Кеитх | 1 | Њу Јорк | Сједињене Америчке Државе | 3 |
1003 | Ланглеи | Маргарет | два | Цхарлотте | Сједињене Америчке Државе | 5 |
1005 | читати | Петер | два | Цхарлотте | Сједињене Америчке Државе | 5 |
1015 | Брансон | Јохн | два | Цхарлотте | Сједињене Америчке Државе | 5 |
1018 | Бонд | Нолан | два | Цхарлотте | Сједињене Америчке Државе | 5 |
1008 | Баилеи | Оливер | 3 | Цхицаго | Сједињене Америчке Државе | 8 |
1012 | Лутхер | Мартине | 3 | Цхицаго | Сједињене Америчке Државе | 8 |
1017 | Јохнсон | Еве | 3 | Цхицаго | Сједињене Америчке Државе | 8 |
1016 | Мартине | Рицхард | 4 | Лондон | Енглеска | 10 |
1009 | Куп | Харри | 5 | Берлин | Немачка | 13 |
Направите приказ помоћу потупита
У овој врсти израза виев виев покушавамо да дохватимо вредност колоне у којој се клаузула заснива на излазу потупита. Рецимо, морамо пронаћи све оне запослене чија је плата већа од просечне плате организације.
Погледајмо упит:
Упит:
CREATE VIEW avgSal_view AS SELECT empNum, lastName, firstName, salary FROM employees WHERE salary > ( SELECT avg(salary) FROM employees ) ; SELECT * FROM avgSal_view ;
Резултат:
емпНум | презиме | име | плата |
---|---|---|---|
1018 | Бонд | Нолан | 15000 |
1005 | читати | Петер | 14332.5 |
1006 | Кеитх | Јенни | 16537.5 |
1008 | Баилеи | Оливер | 24494.4 |
1009 | Куп | Харри | 30645.6 |
1014 | Мурраи | Кеитх | 25000 |
1015 | Брансон | Јохн | 15000 |
Управљање погледима
Коришћењем приказа Алтер Виев или Цреате / Реплаце можемо да изменимо / заменимо било који приказ. Експлицитна употреба АЛТЕР ВИЕВ за поновно састављање погледа није важећа.
Ако имате АЛТЕР БИЛО КОЈЕ системске привилегије табеле или ако је приказ у вашој шеми, можете користити изјаву АЛТЕР ВИЕВ.
Користећи упит Алтер Виев, можемо пронаћи грешке рекомпилације пре времена извођења. Коришћење израза АЛТЕР ВИЕВ може утицати на други објекат / приказ који зависи од њега. Дакле, можемо да прекомпајлирамо приказ након промене.
Поглед можемо редефинисати коришћењем Цреате Виев, а постојећи приказ можемо заменити упитом Реплаце виев.
На пример, узети у обзир запослени_поглед Овде имамо колоне ластНаме и фирстНаме заједно са неколико других. Узмимо у обзир да имамо захтев да спојимо колоне фирстНаме и ластНаме.
Доље је дат снимак приказа пре извршавања упита АЛТЕР.
Извршимо сада упит АЛТЕР ВИЕВ да спојимо фирстНаме и ластНаме.
Упит је дат у наставку:
Упит:
ALTER VIEW employees_view AS SELECT empNum, CONCAT(firstName, ' ', lastName) AS empName, email, deptNum, salary, start_date FROM employees ;
Погледајмо сад садржај стафф_виев:
Ако приметите, немамо две одвојене колоне за имена. Уместо тога, имамо само једну колону која има обједињена и име и презиме.
Сазнајте више = >> МиСКЛ ЦОНЦАТ функција
Упит:
SELECT * FROM employees_view;
Резултат:
емпНум | емпНаме | е-маил | дептНум | плата | датум_почетка |
---|---|---|---|---|---|
1008 | Оливер Баилеи | оливер.баилеи@гмаил.цом | 3 | 24494 | 0001-01-01 |
1001 | Јацк Андревс | ја@гмаил.цом | 1 | 3182.7 | 0001-01-01 |
1002 | Мике Сцхватз | мс@гмаил.цом | 1 | 5304.5 | 0001-01-01 |
1003 | Маргарет Ланглеи | маргарет.ланглеи@гмаил.цом | два | 8820 | 0001-01-01 |
1004 | Сандра харера | сх@гмаил.цом | 1 | 10609 | 0001-01-01 |
1005 | Петер Лее | пл@гмаил.цом | два | 14333 | 0001-01-01 |
1006 | Јенни Кеитх | јк@гмаил.цом | два | 16538 | 0001-01-01 |
1009 | Харри Беакер | хб@гмаил.цом | 5 | 30646 | 0001-01-01 |
1011 | Том Ханкс | тх@гмаил.цом | 10100 | 0001-01-01 | |
1012 | Мартин Лутхер | мл@гмаил.цом | 3 | 13000 | 0001-01-01 |
1014 | Кеитх Мурраи | км@гмаил.цом | 1 | 25000 | 0001-01-01 |
1015 | Јохн Брансон | јб@гмаил.цом | два | 15000 | 0001-01-01 |
1016 | Рицхард Мартин | рм@гмаил.цом | 4 | 5000 | 0001-01-01 |
1017 | Еве Јохнсон | еј@гмаил.цом | 3 | 5500 | 2019-11-25 |
1018 | Нолан Бонд | нб@гмаил.цом | два | 15000 | 2019-09-13 |
Испуштање погледа
Поглед можемо испустити помоћу израза ДРОП ВИЕВ. ДРОП ВИЕВ се може користити ако има било какву привилегију ДРОП АНИ виев или би то требало да буде у њиховој шеми. Повешени приказ не утиче на основну табелу на којој је поглед изграђен или на податке у тој табели.
Упит:
DROP VIEW (view name);
ФАК
П # 1) Како створити погледе у МиСКЛ-у?
Одговор: Постоји више начина за стварање погледа у МиСКЛ-у. Прошли смо кроз четири различита начина како је приказано у наставку.
1. МиСКЛ Симпле Направите поглед
2. МиСКЛ Цреате Виев помоћу ГРОУП БИ и ОРДЕР БИ
3. МиСКЛ Цреате Виев користећи ЈОИН
4. МиСКЛ Цреате Виев помоћу потупита
К # 2) Шта је приказ у МиСКЛ-у?
Одговор: Прикази су попут унапред извршених упита ускладиштених у логичкој структури, тако да не морамо поново извршавати сложене упите на табели. Можемо само да упитамо приказ и добијемо наше податке без утицаја на табелу.
К # 3) Да ли можемо да применимо ЈОИН на погледе док правимо погледе?
Одговор: Да, ЈОИН изјаве би се могле користити на погледима, на сличан начин на који га користимо на табелама.
К # 4) Можемо ли створити поглед из другог погледа?
Одговор: Погледи у основи делују као табеле, али као виртуелни. Дакле, начин на који креирамо погледе на врху табеле, на сличан начин можемо створити погледе на врху другог приказа.
К # 5) Зашто користимо погледе?
бесплатна средства за чишћење регистра за Виндовс 10
Одговор: Као резултат СКЛ упита, поглед ствара логичку табелу. Ми користимо ставове из следећих разлога.
- Коришћењем погледа можемо ограничити видљивост редова и колона (помоћу клаузуле Изабери и Где) за релевантне задатке.
- Прикази се користе када комбинујемо редове и колоне (помоћу унија и Придружи се) из више табела.
- Да бисте добили јаснији приказ обједињавања редова (користећи Групирај и Имајући) у табелу са финијим детаљима.
- Прикази се користе приликом преименовања или декодирања било колоне (помоћу АС) или редова (помоћу ЈОИН, ИФ, ЦАСЕ или Орацле’с ДЕЦОДЕ).
- Комбиновањем било чега од наведеног са безбедносним подешавањима можемо да проверимо да ли корисник има приступ само ономе што је овлашћен.
Закључак
У овом упутству смо истражили различите начине стварања погледа у МиСКЛ-у.
1. МиСКЛ Симпле Направите поглед
2. МиСКЛ Цреате Виев помоћу ГРОУП БИ и ОРДЕР БИ
3. МиСКЛ Цреате Виев користећи ЈОИН
4. МиСКЛ Цреате Виев помоћу потупита
Можемо одабрати било коју од ових опција у зависности од захтева пројекта.
Даље читање = >> МиСКЛ ЦРЕАТЕ ТАБЛЕ
Срећно учење !!
Препоручено читање
- МиСКЛ АЛТЕР ТАБЛЕ - Како додати колону у табелу у МиСКЛ-у
- Функције МиСКЛ ЦОНЦАТ и ГРОУП_ЦОНЦАТ са примерима
- МиСКЛ БРОЈ И БРОЈ РАЗЛИКУЈУ СА Примерима
- МиСКЛ Цреате Датабасе - Како створити базу података у МиСКЛ-у
- МиСКЛ СТВОРИ КОРИСНИКА: Како створити новог корисника у МиСКЛ-у
- МиСКЛ Водич за креирање погледа са примерима кода
- Клаузула МиСКЛ ГРОУП БИ - Водич са примерима
- МиСКЛ ЈОИН Туториал: Унутрашњи, спољашњи, попречни, леви, десни и сопствени