Категория ‘Бази от Данни’
* Псевдоними на колони и таблици
Публикувано на 19 март 2009 в раздел Бази от Данни.
Псевдонимите на колони ни улесняват да пишем по-ясни записи на заявките. Нeка разгледаме пример от предишната статия:
Задача: Изведете името на банката и средната сума на акаунтите в нея, но само за банките, които имат буквата “M” някъде в името на банковия клон:
mysql> SELECT banks.name, AVG(accounts.amount)
FROM banks JOIN branches ON branches.bank_code = banks.code
JOIN accounts ON accounts.branch_id = branches.id
WHERE branches.name LIKE '%M%'
GROUP BY banks.name;
+-----------------+-------------+
| name | AVG(amount) |
+-----------------+-------------+
| Societe General | 2821.020000 |
| Wells Fargo | 2775.247500 |
+-----------------+-------------+
2 rows in set (0.00 sec)
Виждате, че резултатът е таблица с две колони. Имената им са съответно „name“ и „AVG(amount)“. Въпреки, че от гледна точка на програмиста това е напълно достатъчно, то не е лошо да ги наименоваме с по-описателни имена. Например: Прочети още…
* Клауза HAVING
Публикувано на 17 март 2009 в раздел Бази от Данни.
Понякога се налага да филтрираме данните след като вече сме направили дадена калкулация. Фразата HAVING се използва за прилагане на условия върху групи (обикновено оформени чрез GROUP BY).
Ще демонстрираме това с пример. Вече знаем как можем да изкараме списък на клиентите и средните суми на техните сметки: Прочети още…
* Групиране на данни
Публикувано на 17 март 2009 в раздел Бази от Данни.
Когато имаме повтарящи се данни в дадена колона, то можем да ги „групираме“. За целта се използва фразата „GROUP BY“. Почти винаги този оператор се използва в комбинация с агрегатни функции. Следващите примери ще използват базата данни за банки от миналата статия.
1. Да се изведе сумата на акаунти от тип 1 и сумата на акаунти от тип 2: Прочети още…
* Агрегатни функции
Публикувано на 17 март 2009 в раздел Бази от Данни.
Преди да започнем, нека разгледаме следната база от данни:
Ето и заявките за създаване на тази база от данни и да вмъкнем произволни данни в нея: Прочети още…
* Вложен SELECT
Публикувано на 01 март 2009 в раздел Бази от Данни.
Когато сме разделили базата от данни на множество класове обекти, много често се налага да „прескачаме“ през един или повече обекти. Това се получава, когато между два или повече класа обекти няма пряка връзка с външен ключ или друга колона, по която да бъдат сравнени.
От примера с базата от данни с университет това може да се получи, ако например поискаме да изкараме имената на всички преподаватели от университет с id=1. Ще видите, че в таблицата professors съществува връзка между преподавател и факултет, но няма пряка връзка до таблицата university. Затова ще бъде нужно да използваме веднъж връзката до факултета, след което връзката на факултета до университета: Прочети още…
* Многотаблични заявки SELECT
Публикувано на 01 март 2009 в раздел Бази от Данни.
Вече сте разбрали, че разделянето на една база от данни се прави с цел да се спести обем информация и да имаме колкото се може по-малко дублиране на такава. Това естествено е добре, но си има и цена – много често ни се налага да комбинираме информация едновременно от две или повече таблици. В тези случаи стандартният формат на еднотаблична заявка SELECT не върши работа. В най-простия си вариант с две таблици, които сравняваме, те ще имат две колони, по които лесно ще бъдат сравнявани.
От примера с базата от данни за университет, ако искаме да изкараме имената на преподавателите заедно с името на факултета, в който преподават, то ще се наложи да направим многотаблична заявка. Това е така, защото в таблицата professors няма колона, в която пазим името на факултета, а пазим само неговото id. Ето как се изпълнява въпросната многотаблична заявка: Прочети още…
* Заявки за еднотабличен оператор SELECT
Публикувано на 28 февруари 2009 в раздел Бази от Данни.
Заявките SELECT имат за цел да четат информация от таблица по дадени критерии. Най-общо казано синтаксисът е:
SELECT <редове от колони> FROM <таблица> WHERE <условие>;
Ще демонстрираме как се използва с няколко примера с базата данни от миналата тема: Прочети още…
* Вмъкване на данни
Публикувано на 15 февруари 2009 в раздел Бази от Данни.
След като вече знаем как се създава база от данни е време да научим как се вмъква информация в нея. За целта съществува каманда „INSERT INTO“. Нека вкараме имената на два университета в таблица „university“ от база от данни „university“:
INSERT INTO `university`.`university` (`id` , `name` , `founded`) VALUES ( NULL , 'Sofia University', '1889-01-29' ); INSERT INTO `university`.`university` (`id` , `name` , `founded`) VALUES ( NULL , 'Techical University', '1941-06-12' );
Виждате, че на полета `id` зададохме стойност NULL, но ако прелистим базата ще видим, че то не е: Прочети още…
* Промяна на съществуващи таблици
Публикувано на 15 февруари 2009 в раздел Бази от Данни.
Нека вече имаме съществуващи таблици, които обаче бихме искали да променим. За изтриваме и създаваме наново дадена таблица би било непрактично. Поради тази причина са въведени команди за промяна на таблица.
Нека разгледаме предишния пример. Искаме да добавим полета за среден успех в таблицата „zadochnici“ и „students“. Ще изпълним следната команда: Прочети още…
* Изпълняване на заявки от текстов файл
Публикувано на 14 февруари 2009 в раздел Бази от Данни.
Често се налага да изпълним серия от заявки към база от данни. Понякога те може да са изключително много на брой и въвеждането им една по една ще бъде изключително неудобно. Поради тази причина е въведена възможност за импортиране на серия от заявки, които са записани в текстов файл.
Това всъщност е доста честа практика, когато например създаваме база данни. Нека разгледаме например следната поредица от заявки: Прочети още…
Категории
- Бази от Данни (39)
- Вероятности (30)
- История (14)
- Кучета (67)
- Лада Нива (91)
- Математика (158)
- Методика (52)
- Общи работи (107)
- ПИК-3 Java (38)
- Политика (40)
- Програмни Среди (1)
- ПТСК (37)
- С/C++ (45)
- Семейни (15)
- Физика (35)
- ХHTML/JS (25)
- Храна (11)
Нови
- Здравей бебе!
- Какво означават метеорологичните кодове?
- Берра проправя пътеки
- Задача от YES
- Колан за теглене на автомобил
