Основні команди по роботі з записами в sql. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Основні команди по роботі з записами в sql.



Запити до бази даних і команда Select

 

Команда Select використовується для запитів до бази даних з метою витягання з неї інформації.Синтаксис команди наступний: SELECT [Straight_join] [DISTINCT | ALL] select_expression... [FROM tables... [WHERE where_definition] [GROUP BY column...] [ORDER BY column [ASC | DESC]...] HAVING full_where_definition [LIMIT [offset] rows] [PROCEDURE procedure_name]] [INTO OUTFILE 'file_name'... ] Як видно з наведеного вище, разом з командою Select використовуються ключові слова, застосуання яких дуже впливає на відповідь сервера. Розглянемо кожне з них.   DISTINCT Пропускає рядки, в яких всі вибрані поля ідентичні, тобто усуває дублювання даних.   WHERE Умовна команда Select,котороє дозволяє встановлювати предикати, умова яких може бути вірною або невірною для будь-якого рядка таблиці.Витягуються тільки ті рядки, для яких таке твердження вірне.Наприклад: SELECT u_id,lname from publishers WHERE city ='New York'; Виводить колонки u_id і lname з таблиці publishers для яких значення в стовпці city має значення 'new York'. Це дає можливість зробити запит конкретнішим.   Реляційні оператори Реляційний оператор - математичний символ який вказує на певний тип порівняння між двома значеннями. Реляційні оператори які має в своєму розпорядженні MYSQL: = Рівно > Більше < Менше >=Більше або рівно <=Менше або рівно < >Не рівно Припустимо що ви хочете побачити всіх замовників з оцінкою(rating) вище 200. Оскільки 200 - це скалярне значення, як і значення в стовпці оцінки, для їх порівняння ви можете використовувати реляційного оператора. SELECT * FROM Customers WHERE rating > 200;   Булеві оператори Основні Булеві оператори також розпізнаються в MYSQL. Вирази Буля - є або вірними або невірними, подібно до предикатів. Булеві оператори зв'язують одне або більше значень і проводять єдине вірне або невірне значення. Стандартними операторами Буля розпізнаваними в SQL є: AND, OR, і NOT. Припустимо ви хочете бачити всіх замовників в Далласі, які мають рейтинг вище 200: SELECT * FROM Customers WHERE city = 'Dallas' AND rating > 200; При використанні оператора AND, повинні виконуватись обидві умови, тобто повинні бути вибрані всі замовники з Далласа, рейтинг яких більше 200. При використанні оператора OR, може виконуватись одна з умов, наприклад: SELECT * FROM Customers WHERE city = 'Dallas' OR rating > 200; В даному випадку будуть вибрані всі замовники з Далласа або всі які мають рейтинг більше 200, навіть якщо вони не з Далласа. NOT може використовуватися для інвертування значень Буля. Приклад запиту з NOT: SELECT * FROM Customers WHERE city = 'Dallas' OR NOT rating > 200; При такому запиті будуть вибрані всі замовники з Далласа або всі замовники, рейтинг яких менше 200.В цьому запиті оператор NOT застосовується тільки до виразу rating >200. Можна зробити складніший запит: SELECT * FROM Customers WHERE NOT(city = 'Dallas' OR rating > 200); У цьому запиті NOT застосований до обох виразів в дужках. В даному випадку, сервер читає вирази в дужках, визначає, чи відповідає істині рівність city = 'Dallas' або рівність rating > 200. Якщо будь-яка умова вірна, вираз Буля усередині круглих дужок вірний. Проте, якщо вираз Буля усередині круглих дужок - вірний, предикат як єдине ціле невірний, тому що NOT перетворить вірно в невірно і навпаки. Тобто, будуть вибрані всі замовники що не знаходяться в Далласі і рейтинг яких менше 200.   IN Оператора IN визначає набір значень в яке дане значення може або не може бути включене. Наприклад запит: SELECT * FROM Salespeople WHERE city = 'Barcelona' OR city = 'London'; може бути переписаний простіше: SELECT * FROM Salespeople WHERE city IN ('Barcelona', 'London'); IN визначає набір значень за допомогою імен членів набору увязнених в круглі дужки і відокремлених комами. Потім він перевіряє різні значення вказаного, намагаючись знайти збіг із значеннями з набору. Якщо це трапляється, то предикат вірний. Коли набір містить значення номерів а не символів, одиночні лапки опускаються.   BETWEEN Оператор BETWEEN схожий на оператора IN. У відмінності від визначення по номерах з набору, як це робить IN, BETWEEN визначає діапазон, значення якого повинні зменшуватися що робить предикат вірним. Ви повинні ввести ключове слово BETWEEN з початковим значенням, ключове AND і кінцеве значення. На відміну від IN, BETWEEN чутливий до порядку, і перше значення в пропозиції повинне бути першим по алфавітному або числовому порядку, наприклад: SELECT * FROM Salespeople WHERE comm BETWEEN.10 AND.12; SELECT * FROM Salespeople WHERE city BETWEEN 'Berlin' AND 'London';   LIKE LIKE застосовний тільки до полів типу CHAR або VARCHAR, з якими він використовується щоб знаходити підрядки. Тобто він шукає поле символу щоб бачити, чи співпадає з умовою частина його рядка.Як умову він використовує групові символи (wildkards) - спеціальні символи які можуть відповідати чому-небудь. Є два типи групових символів використовуваних з LIKE: символ підкреслення (_) заміщає будь-який одиничний символ. знак '%', заміщає будь-яку кількість символів. Якщо ми задамо наступні умови: SELECT * FROM Customers WHERE fname LIKE 'J%'; то будуть вибрані всі замовники, чиї імена починаються на J: john, jerry, james і так далі.   COUNT Агрегатна функція, робить підрахунок значень в стовпці або числа рядків в таблиці. При роботі із стовпцем використовує DISTINCT як аргумент: SELECT COUNT (DISTINCT snum) FROM Orders; При підрахунку рядків має синтаксис: SELECT COUNT (*) FROM Customers;   GROUP BY Умова GROUP BY дозволяє визначати підмножину значень в особливому полі в термінах іншого поля, і застосовувати функцію агрегату до підмножини. Це дає можливість об'єднувати поля і агрегатні функції в єдиній пропозиції SELECT. Наприклад, припустимо що ви хочете знайти найбільшу суму покупок отриману кожним продавцем. Ви можете зробити роздільний запит для кожного з них, вибравши MAX () з таблиці для кожного значення поля. GROUP BY дозволить Вам помістити їх всіх в одну команду: SELECT snum, MAX (amt) FROM Orders GROUP BY snum;   HAVING HAVING визначає критерії використовувані щоб видаляти певні групи з виводу, точно також як пропозиція WHERE робить це для індивідуальних рядків, наприклад: SELECT cid, cname, price, max(price) //max() - це також агрегатна функція FROM customers HAVING max(price) >500; HAVING діє схоже з Where,но з WHERE не можна використовувати агрегатні функції.   ORDER BY Ця команда упорядковує виведення запиту згідно значенням в тій або іншій кількості вибраних стовпців. Численні стовпці упорядковуються один усередині іншого, також як з GROUP BY.   EXISTS Використовується в підзапитах. SELECT cnum, cname, city FROM Customers WHERE EXISTS (SELECT * FROM Customers WHERE city = " San Jose'); Він бере підзапит як аргумент і оцінює його як вірний якщо той проводить будь-який вивід або як невірний якщо той не робить цього.Цим він відрізняється від інших операторів предиката, в яких він не може бути невідомим. Наприклад, ми можемо вирішити, чи витягувати нам деякі дані з таблиці Замовників якщо, і лише якщо, один або більш за замовників в цій таблиці знаходяться в San Jose.   UNION UNION відрізняється від підзапитів тим що в нім жоден з двох (або більше) запитів не управляються іншим запитом. Всі запити виконуються незалежно один від одного, а вже вивід їх - об'єднується, наприклад: SELECT snum, sname FROM Salespeople WHERE city = 'London' UNION SELECT cnum, cname FROM Customers WHERE city = 'London'; Пропозицію UNION об'єднує вивід два або більш SQL запитів в єдиний набір рядків і стовпців.   DESC, ASC Desc-descedent, вивід даних в зворотньому порядку (за абеткою і чисельним значенням), по замовчуванню використовується ASC. Ну ось і все, MySQL підтримує майже всі основні команди SQL Server, так що детальніше про команду SELECT ви можете прочитати в будь-якому підручнику по мові SQL.

 

 



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 454; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.12.161.77 (0.003 с.)