Креирање СКЛ ПРИКАЗА: Објашњено корак по корак

Користимо СКЛ или језик структурираних упита за комуникацију са релационом базом података и креирање СКЛ приказа.

Шта су СКЛ погледи? То су виртуелне табеле које комбинују и чувају податке из стварних табела базе података које креирате. Заузврат, добијате сигуран и поједностављен приступ свом скупу података док скривате основне структуре табеле и имплементације.

Па, како ово функционише? Већ знате да се СКЛ упити користе за креирање СКЛ приказа. Када се креира СКЛ приказ, основни СКЛ упит се чува. Када користите СКЛ упит за тражење података из више табела, упит се извршава и помаже у преузимању података из одговарајућих табела базе података. Слично томе, када постављате упит за креирани СКЛ приказ, сачувани упит се прво преузима, а затим извршава.

Како је креирање СКЛ приказа корисно?

Пошто су СКЛ погледи подржани ускладиштеним СКЛ упитима, они помажу да ваша база података буде безбедна. Они такође поједностављују сложене упите и повећавају перформансе упита, између осталих предности. Хајде да видимо како креирање СКЛ приказа може бити корисно за вашу базу података и ваше апликације:

#1. Пружа сигурност базе података

СКЛ погледи делују као виртуелне табеле и сакривају структуре стварних табела базе података. Дакле, само гледањем у приказ, није могуће знати колико табела има и које су различите колоне у табели. Поред тога, можете додати ограничења контроле приступа вашој бази података тако да корисник може да пита само приказ, а не стварне табеле.

  Најбоља апликација за спавање у 2021. (укључујући апликације за праћење спавања)

#2. Поједностављује сложене упите

Често се ваши СКЛ упити простиру на више табела са сложеним условима спајања. Ако често користите тако сложене упите, можете искористити моћ креирања СКЛ приказа. Свој сложени упит можете сачувати у свом СКЛ приказу. Са овим, можете једноставно поставити упит за приказ уместо да морате да покрећете цео сложени упит.

#3. Ублажава промене шеме

Ако се ваше основне структуре табеле промене, као што је додавање или уклањање колона, онда ваши погледи остају непромењени. Ако се ослањате на своје СКЛ приказе за све своје упите, не морате да бринете о промени шеме. Будући да су виртуелне табеле, ваш креирани СКЛ приказ ће наставити да функционише беспрекорно.

#4. Побољшава перформансе упита

Када креирате СКЛ приказе, механизам базе података оптимизује основни упит пре него што их ускладишти. Сачувани упит ради брже него директно покретање истог упита. Дакле, коришћење СКЛ приказа за испитивање ваших података даје вам боље перформансе и брже резултате.

Како креирати СКЛ приказе?

За креирање СКЛ приказа, можете користити наредбу ЦРЕАТЕ ВИЕВ. Приказ садржи наредбу СЕЛЕЦТ. Ово даје упит који ће бити сачуван у приказу. Синтакса је следећа:

CREATE VIEW view_name AS 
SELECT 
  column_1, 
  column_2, 
  column_3...
FROM 
  table_name_1, table_name_2
WHERE 
  condition_clause

Хајде да ово разумемо користећи пример. Узмите у обзир да сте креирали две табеле одељење и запосленог. Одељење носи назив одељења и његов ИД. Сходно томе, табела запослених садржи име и ИД запосленог, заједно са ИД одељења коме припадају. Ове две табеле ћете користити за креирање СКЛ приказа.

Креирајте своје табеле базе података

департмент_иддепартмент_наме1Финанце2Тецхнологи3БусинессТабела 1: одељење

Ако користите МиСКЛможете креирати ову табелу користећи следећи упит:

CREATE TABLE `department` (
  `department_id` int,
  `department_name` varchar(255),
  PRIMARY KEY (`department_id`)
);

Уметните податке у табелу коју сте креирали користећи доњи СКЛ:

INSERT INTO department VALUES (1, 'Finance');
INSERT INTO department VALUES (2, 'Technology');
INSERT INTO department VALUES (3, 'Business');

емплоиее_идемплоиее_намедепартмент_ид100Јохн3101Мари1102Наталиа3103Бруце2Табела 2: запослени

  Да ли треба да користите ВПН на мрачном вебу?

Када је табела одељења спремна и попуњена подацима, креирајте табелу запослених користећи доњи МиСКЛ упит:

CREATE TABLE `employee` (
  `employee_id` INT, 
  `employee_name` VARCHAR(255), 
  `department_id` INT, 
  FOREIGN KEY (`department_id`) REFERENCES department(department_id)
);

Затим уметните евиденцију запослених у своју табелу. Имајте на уму да, пошто колона департмент_ид има референцу страног кључа у табели одељења, не можете уметнути департмент_ид који није присутан у другој табели.

INSERT INTO employee VALUES (100, 'John', 3);
INSERT INTO employee VALUES (101, 'Mary', 1);
INSERT INTO employee VALUES (102, 'Natalya', 3);
INSERT INTO employee VALUES (103, 'Bruce', 1);

Упитајте своје табеле базе података

Хајде да користимо табеле у упиту базе података. Узмите у обзир случај када морате да затражите идентификацију запосленог, име запосленог и име одељења за све запослене. У овом случају, потребно је да користите обе табеле и спојите их користећи заједничку колону, а то је департмент_ид. Ваш упит тако постаје:

SELECT
  employee_id,
  employee_name,
  department_name
FROM 
  employee,
  department
WHERE 
  employee.department_id = department.department_id;

Креирајте свој СКЛ приказ

Сада се може догодити да често тражите или позивате на ове податке. Поред тога, током времена, са више записа у вашим табелама, време вашег упита би почело да се повећава. У таквом сценарију, можете креирати СКЛ приказ који одговара овом упиту.

Користите следећи упит да бисте креирали приказ под називом емплоиее_инфо:

CREATE VIEW employee_info AS 
SELECT
  employee_id,
  employee_name, 
  department_name 
FROM 
  employee, 
  department 
WHERE 
  employee.department_id = department.department_id;

Са овим приказом на месту, можете директно да питате исто. Ваш упит је стога поједностављен на:

SELECT 
  * 
FROM 
  employee_info;

Упитивање СКЛ приказа даје вам исти излаз као покретање вашег оригиналног упита. Међутим, ваш упит је сада лако одржавати. Приказ сакрива сложеност вашег упита без икаквог компромиса у погледу резултата или перформанси.

  Гмаил сада ради без интернета; Ево како да „омогућите пошту ван мреже“!

Како заменити СКЛ приказе?

Ако имате приказ са одређеним именом и желите да га измените или замените, користите команду ЦРЕАТЕ ОР РЕПЛАЦЕ ВИЕВ. Користећи ово, можете да измените наредбу СЕЛЕЦТ која је коришћена за креирање приказа. Дакле, излаз вашег приказа се замењује док име приказа остаје нетакнуто. Поред тога, креирате нови СКЛ приказ ако не постоји.

Можете да замените СКЛ приказе користећи следећу синтаксу:

CREATE OR REPLACE VIEW view_name AS 
SELECT 
  new_column_1, 
  new_column_2, 
  new_column_3 ...
FROM 
  new_table_name_1, 
  new_table_name_2 ...
WHERE 
  new_condition_clause

Ово можете боље разумети на примеру. Размотрите одељење и табеле запослених. Од њих се креира СКЛ приказ запосленог_инфо који садржи колоне Емплоиее_ид, Емплоиее_наме и Департмент_наме.

Узимајући у обзир безбедносне проблеме, можда бисте желели да уклоните Емплоиее_ид из овог приказа. Поред тога, такође бисте желели да промените имена колона да бисте сакрили стварне колоне базе података. Можете направити ове промене у постојећем приказу користећи следећи СКЛ упит:

CREATE OR REPLACE VIEW employee_info AS
SELECT
  employee_name as name,
  department_name as department
FROM
  employee,
  department
WHERE
  employee.department_id = department.department_id;

Када се приказ замени, добићете различите резултате када користите исти упит који сте раније користили. На пример, у резултату упита, видећете да је једна од колона избачена. Поред тога, називи колона су измењени из Емплоиее_наме и Департмент_наме у име и Департмент, респективно.

Искористите моћ креирања СКЛ приказа

Креирање СКЛ приказа не само да ће вам донети поједностављене упите и брже тражење података, већ и сигурност и заштиту од промена шеме. Креирање СКЛ приказа је прилично једноставно. Можете узети било који постојећи упит који имате и претворити га у СКЛ приказ.

Користите горњи водич корак по корак да бисте креирали СКЛ приказе и искористили њихове предности. Са СКЛ приказима, можете да учините своје апликације базе података једноставним и безбедним док истовремено повећавате њихове перформансе.

Ако желите да управљате сопственим СКЛ сервером, погледајте СКЛ Сервер Манагемент Студио (ССМС).