PDA

View Full Version : MySQL!



DeadSilence
03-20-2012, 19:06
Има ли някой който е малко повече навътре с нещата с MySQL?

dimitar_ak
03-21-2012, 03:49
Какво по-конкретно те интересува?

Sh@d0w
03-21-2012, 05:19
Да си беше задал конкретния въпрос направо.

DeadSilence
03-21-2012, 13:01
Трябва ми малко помощ за това! От точка 5 до точка 5.8!
http://alfa.kachi-snimka.info/viewer.php?id=rgh1332338301f.jpg
http://alfa.kachi-snimka.info/viewer.php?id=jdv1332338464p.jpg

dimitar_ak
03-21-2012, 13:07
Дай ми структурата на базата си. Имена на таблиците и полетата за да ти напиша SELECT-ите. Иначе, че трябва да ти реша всички предишни точки до 5.

dimitar_ak
03-21-2012, 13:10
А и да добавя. Трябват ли ти CREATE скриптове за таблиците?

DeadSilence
03-21-2012, 13:12
mysql> show tables;
+----------------------+
| Tables_in_firma10vn9 |
+----------------------+
| dlujnosti |
| slujiteli |
| trudovstaj |
+----------------------+
3 rows in set (0.03 sec)

mysql> show columns from slujiteli;
+-----------------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+------------------+------+-----+---------+-------+
| id | int(10) unsigned | NO | PRI | NULL | |
| ime | varchar(50) | YES | | NULL | |
| mestorojdenie | varchar(20) | YES | | NULL | |
| Data | date | YES | | NULL | |
| zaemanadlajnost | int(10) unsigned | YES | | NULL | |
+-----------------+------------------+------+-----+---------+-------+
5 rows in set (0.02 sec)

mysql> show columns from dlujnosti;
+---------------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+------------------+------+-----+---------+-------+
| kodnadlajnost | int(10) unsigned | NO | PRI | NULL | |
| dlajnost | varchar(50) | YES | | NULL | |
| minimalenprag | int(10) unsigned | YES | | NULL | |
+---------------+------------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

mysql> show columns from trudovstaj;
+------------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+-------+
| ID | int(10) unsigned | NO | PRI | NULL | |
| zaplata | float unsigned | YES | | NULL | |
| trudovstaj | int(10) unsigned | YES | | NULL | |
+------------+------------------+------+-----+---------+-------+
3 rows in set (0.03 sec)

mysql> select * from dlujnosti;
+---------------+-----------+---------------+
| kodnadlajnost | dlajnost | minimalenprag |
+---------------+-----------+---------------+
| 1 | Servitior | 200 |
| 2 | barman | 200 |
| 3 | gotvach | 300 |
| 4 | opravitel | 500 |
| 5 | chistach | 150 |
+---------------+-----------+---------------+
5 rows in set (0.01 sec)

mysql> select * from slujiteli;
+----+--------------------+---------------+------------+-----------------+
| id | ime | mestorojdenie | Data | zaemanadlajnost |
+----+--------------------+---------------+------------+-----------------+
| 1 | Kalina Valcheva | Sofia | 2011-05-10 | 1 |
| 2 | Ralica ivanova | Smolqn | 2010-10-10 | 1 |
| 3 | Sonq Dancheva | Varna | 2010-09-07 | 2 |
| 4 | ivailo bozinarev | Smolqn | 2011-08-15 | 2 |
| 5 | Iskra Karamucheva | Plovdiv | 2010-05-10 | 4 |
| 6 | Teodora Sharovska | Plovdiv | 2010-06-20 | 3 |
| 7 | Dimitar Uzunov | Smolqn | 2011-04-18 | 3 |
| 8 | Antoaneta Dushkova | Sofiq | 2010-05-10 | 5 |
| 9 | Tanq Kostova | Smolqn | 2011-05-10 | 5 |
| 10 | Stoqnka Ahilova | Smolqn | 2010-05-10 | 5 |
+----+--------------------+---------------+------------+-----------------+
10 rows in set (0.00 sec)

mysql>

dimitar_ak
03-21-2012, 13:18
5.1

SELECT ime, Data, mestorojdenie
FROM slujiteli
WHERE zaemanadlajnost = 5 (или каквото си избереш)

dimitar_ak
03-21-2012, 13:20
Схващаш ли?

DeadSilence
03-21-2012, 13:23
Да схващам го! : )

dimitar_ak
03-21-2012, 13:31
Тръгвам си от работа, ако нямаш до довечера решение ще ти напиша и другите

DeadSilence
03-21-2012, 13:39
Добре! Аз сама няма да мога да се справя, така че до довечера! Благодаря ти все пак. : )

Sh@d0w
03-21-2012, 17:54
Т.5.2

Select id,ime,Data FROM slujiteli WHERE Data BETWEEN '2012-01-01 00-00-00' AND '2012-02-01 23:59:59' ORDER BY id;

Тук съм ти избрал месец януари, предполагам разбра как става, ако искаш да смениш месеца просто променяш интервала от дати в който ти търси. Сега ще направя и другите.

EDIT: Сега видях че не си запазваш датата в timestamp формат, което значи че заявката която ти дадох няма да ит върши работа. Използвай ето тази

SELECT id,ime,Data
FROM slujiteli
WHERE Data >= '2012-01-01' AND Data <= '2012-02-01'

dimitar_ak
03-21-2012, 18:26
т. 5.3

SELECT slujiteli.id, slujiteli.ime, slujiteli.Data, dlujnosti.dlajnost
FROM slujiteli
INNER JOIN dlujnosti ON slujiteli.zaemanadlajnost = dlujnost.kodnadlujnost

т. 5.4

SELECT slujiteli.ime, trudovstaj.trudovstaj
FROM slujiteli
INNER JOIN trudovstaj ON slujiteli.id = trudovstaj.ID
where trudovstaj.trudovstaj <= 20

Предполагам, че тук името на таблица trudovstaj трябва да е заградено с ` защото съвпада с името на колоната и не съм сигурен, че MySQL ще го предъвче. Не тествам заявките, които ти пиша.

DeadSilence
03-21-2012, 18:34
dimitar_ak - Нещо не ми става!

dimitar_ak
03-21-2012, 18:45
т. 5.5

SELECT slujiteli.id, slujiteli.ime, trudovstaj.zaplata
FROM slujiteli
INNER JOIN trudovstaj ON slujiteli.id = trudovstaj.ID
ORDER BY trudovstaj.zaplata DESC

dimitar_ak
03-21-2012, 18:45
dimitar_ak - Нещо не ми става!

Кое не мина?

DeadSilence
03-21-2012, 18:52
Кое не мина?

5.3
ERROR 1054 (42S22): Unknown column 'dlujnost.kodnadlujnost' in 'on clause'

dimitar_ak
03-21-2012, 18:54
Извинявай. Трябва да е dlujnosti.kodnadlujnost

SELECT slujiteli.id, slujiteli.ime, slujiteli.Data, dlujnosti.dlajnost
FROM slujiteli
INNER JOIN dlujnosti ON slujiteli.zaemanadlajnost = dlujnosti.kodnadlujnost

DeadSilence
03-21-2012, 19:03
за т 5.4 трябва първо да направя т4 как ще стане корекцията?

dimitar_ak
03-21-2012, 19:08
UPDATE trudovstaj SET trudovstaj = 23
WHERE ID = 5

DeadSilence
03-21-2012, 19:14
т 5.5 - Empty set (0.00 sec)

dimitar_ak
03-21-2012, 19:19
Има ли записи в таблица trudovstaj?

DeadSilence
03-21-2012, 19:34
като гледам не ... имам само 10 за служители и 5 за длъжности!

DeadSilence
03-21-2012, 19:35
Сега ще ги направя!

DeadSilence
03-21-2012, 19:42
Стана : )

DeadSilence
03-22-2012, 12:00
а за т5.6 .. 7 и 8 ?

dimitar_ak
03-22-2012, 12:12
Ех... По-полезно би ти било да опитваш сама и аз само да те поправям. Така ще видиш готов код, но дали ще успееш да се справиш сама ако пак ти се наложи?

т 5.6

SELECT slujiteli.id, slujiteli.ime, trudovstaj.zaplata
FROM slujiteli
INNER JOIN trudovstaj ON slujiteli.id = trudovstaj.ID
WHERE trudovstaj.zaplata BETWEEN 300 AND 500

dimitar_ak
03-22-2012, 12:18
т. 5.7

SELECT slujiteli.id, slujiteli.ime, trudovstaj.zaplata, trudovstaj.trudovstaj
FROM slujiteli
INNER JOIN trudovstaj ON slujiteli.id = trudovstaj.ID
WHERE (trudovstaj.trudovstaj < 10) AND (trudovstaj.zaplata > 270)
ORDER BY slujiteli.ime ASC

DeadSilence
03-22-2012, 12:22
Тези неща в момента ми е за упражнение тъй като после ще имам подобна курсова работа! Имаме мн калпава учителка който тези неща не ги е обяснявала! Затова искам помощ, за да мога да ги науча!

dimitar_ak
03-22-2012, 12:24
т. 5.8
Тази е малко по-сложна.

SELECT slujiteli.ime, dlujnosti.dlajnost, trudovstaj.zaplata, trudovstaj.trudovstaj
FROM slujiteli
INNER JOIN trudovstaj ON slujiteli.id = trudovstaj.ID
INNER JOIN dlujnosti ON slujiteli.zaemanadlajnost = dlujnosti.kodnadlajnost
GROUP BY dlujnosti.dlajnost;

dimitar_ak
03-22-2012, 12:31
Още полезни неща. Хубаво е ключовите полета да си ги кръщаваш простичко. Във всяка таблица в примера ти това са си ID-та. После е много по-четливо като правиш връзките с JOIN.