|
как попрактиковаться в SQL? | ☑ | ||
---|---|---|---|---|
0
1сПупс
17.09.22
✎
14:14
|
хочется потестить запросы, поучиться делать запросы к скулю на домашнем пк, без установки sql, есть варик?
|
|||
1
1сПупс
17.09.22
✎
14:17
|
нашел https://sqliteonline.com в принципе как вариант но хотелось бы поработать без сети
|
|||
2
Kassern
17.09.22
✎
14:18
|
(0) это как научиться ездить на велосипеде без велосипеда)
|
|||
3
1сПупс
17.09.22
✎
14:19
|
(2) what do you mean? надо ставить скуль?
|
|||
4
Aleksey
17.09.22
✎
14:20
|
Т.е. ты хочешь дома установить эмулятор скуля чтобы потестить запросы?
А не проще ли поставить скуль, тем более версия для разработчиков мелокмягкие бесплатно раздают |
|||
5
Aleksey
17.09.22
✎
14:20
|
(3) Он имеет ввиду что пятница была вчера
|
|||
6
1сПупс
17.09.22
✎
14:21
|
(4) а он встанет на 10 окне?
|
|||
7
Kassern
17.09.22
✎
14:21
|
(6) встанет
|
|||
8
Aleksey
17.09.22
✎
14:23
|
(6) ну у меня стоит, вот сейчас залил рабочую базу под 300 гигов, сижу играюсь.
Только учти база должна быть на ссд, так как современные hdd с их передовой системой хранения данных "черепицой" захлёбываются под напором скуля |
|||
9
1сПупс
17.09.22
✎
14:24
|
Microsoft SQL Server Express это? https://www.microsoft.com/ru-RU/download/details.aspx?id=101064
|
|||
10
1сПупс
17.09.22
✎
14:24
|
у меня буквально 3 таблицы и до 10 строк в каждой будет
|
|||
11
1сПупс
17.09.22
✎
14:26
|
есть еще полная версия https://www.microsoft.com/en-us/sql-server/sql-server-downloads не знаю какую качать?
|
|||
12
Aleksey
17.09.22
✎
14:27
|
(9) нет
Выпуск Developer SQL Server 2019 Developer — это бесплатный выпуск с полным набором функций, лицензируемый для использования в качестве базы данных для разработки и тестирования и не предназначенный для применения в рабочей среде. https://www.microsoft.com/ru-ru/sql-server/sql-server-downloads У експресса есть ограничения на размеры таблиц. Хотя поиграться и экспресса хватит |
|||
13
Aleksey
17.09.22
✎
14:28
|
тут в кратце расказаны какие и для чего бывают редакции
https://xn----1-bedvffifm4g.xn--p1ai/news/2022-03-25-6-editions-of-ms-sql/ |
|||
14
1сПупс
17.09.22
✎
14:28
|
(12) а что думаете про постгре? или он только для линукса?
|
|||
15
Aleksey
17.09.22
✎
14:29
|
(14) кто сказал?
|
|||
16
1сПупс
17.09.22
✎
14:30
|
PostgreSQL Version начиная с 11 версии не встает на windows 10(((
|
|||
17
1сПупс
17.09.22
✎
14:30
|
||||
18
Aleksey
17.09.22
✎
14:31
|
(16) ну если тебе все равно что ставить поставь SQLite
|
|||
19
Aleksey
17.09.22
✎
14:31
|
Там тоже можно запросы писать
|
|||
20
Aleksey
17.09.22
✎
14:34
|
||||
21
1сПупс
17.09.22
✎
15:01
|
создал базу:
CREATE TABLE author( id INTEGER PRIMARY KEY, -- создать колонку с названием id, в ней будут ЦЕЛЫЕ ЧИСЛА, -- в этой колонке будут храниться УНИКАЛЬНЫЕ КЛЮЧИ записей name TEXT NOT NULL, -- создать колонку с названием name, в ней будет ТЕКСТ -- и НЕ МОЖЕТ БЫТЬ ПУСТОЙ birth_year INTEGER -- создать колонку с названием birth_year, в ней будут ЦЕЛЫЕ ЧИСЛА ); вношу значение INSERT INTO author (name, birth_year) VALUES ('Человек без селезёнки', 1860); -- ВСТАВИТЬ строку В ТАБЛИЦУ author -- заполнить поля (name, birth_year) ЗНАЧЕНИЯМИ 'Человек без селезёнки', 1860 соответственно ошибка: Сообщение 515, уровень 16, состояние 2, строка 1 Не удалось вставить значение NULL в столбец "id", таблицы "master.dbo.author"; в столбце запрещены значения NULL. Ошибка в INSERT. Выполнение данной инструкции было прервано. Что делать? |
|||
22
1сПупс
17.09.22
✎
15:05
|
Пусть база сама присваивает номера уникальных ключей, для поля id передавать значения мы не будем.
|
|||
23
Aleksey
17.09.22
✎
16:44
|
Это в какой базе?
SQLite попробуй id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL |
|||
24
Кирпич
17.09.22
✎
20:44
|
(0) https://www.sql-ex.ru/
выполни все задачки и станешь гуру |
|||
25
NorthWind
18.09.22
✎
12:49
|
(22) изучи вопрос чуть глубже. В разных субд это реализовано по-разному - где-то есть тип "счетчик", где-то нужно модифицировать целое под автоинкремент, где-то написать триггер на строку чтобы бралось новое значение из последовательности.
|
|||
26
Said_We
28.09.22
✎
11:23
|
(0) + к (24) есть по проще SQL ACADEMY.
Гуру может и не станешь, но попрактикуешься. https://sql-academy.org/ru/ |
|||
27
mistеr
28.09.22
✎
11:26
|
(8) Во-первых, не захлебываются. Во-вторых, для обучения это самое то, непосредственно ощущать разницу между эффективными и кривыми запросами.
|
|||
28
mistеr
28.09.22
✎
11:27
|
(11) Для изучения Express более чем достаточно. Качай его плюс SSMS отдельно.
|
|||
29
2mugik
28.09.22
✎
19:08
|
(28)Зачем этот обрезок когда есть Developer бесплатный и специально для этих целей.
|
|||
30
1сПупс
28.09.22
✎
20:29
|
открыл сайт потискать:
https://sql-academy.org/ru/trainer/tasks/3 SELECT id FROM trip WHERE town_from = 'Moscow' пишет ответ неверный, что не так то? |
|||
31
vbus
28.09.22
✎
20:39
|
Поля в результирующей таблице:
* |
|||
32
Aleksey
28.09.22
✎
20:46
|
select * from Trip where town_from = 'Moscow'
|
|||
33
1сПупс
28.09.22
✎
20:55
|
спасибо, я ему и дал номера рейсов, а он всю инфу хочет...
|
|||
34
Aleksey
28.09.22
✎
20:57
|
(33) ну так сказано, нужно все поля, а не только ID
|
|||
35
Said_We
28.09.22
✎
21:17
|
#1 Вывести имена всех когда-либо обслуживаемых пассажиров авиакомпаний.
Текст запроса какой получился? |
|||
36
Said_We
29.09.22
✎
18:29
|
(35) Не получился значит.... :-)
|
|||
37
VladZ
29.09.22
✎
18:41
|
(0) Ставь developer edition и практикуйся.
|
|||
38
VladZ
29.09.22
✎
18:43
|
(14) Постгри нужно "уметь готовить".
|
|||
39
1сПупс
29.09.22
✎
19:00
|
(35) SELECT NAME FROM PASSANGER
|
|||
40
1сПупс
29.09.22
✎
19:04
|
Может кто сталкивался, как загрузить csv файл в sql developer?
|
|||
41
Said_We
29.09.22
✎
19:12
|
(39) "когда-либо обслуживаемых" - что означает.
(40) В SQLite есть возможность загрузить с помощью "DB Browser". |
|||
42
VladZ
29.09.22
✎
20:13
|
(40) Загугли. Очень распространенный вопрос
|
|||
43
bolder
29.09.22
✎
20:38
|
||||
44
Said_We
30.09.22
✎
12:38
|
(39) "когда-либо обслуживаемых" - что означает?
|
|||
45
Мультук
гуру
30.09.22
✎
12:46
|
(30)
Отличный сайт. С молоду приучает -- ставь *, сервер железный, фигли ему будет. |
|||
46
Смотрящий
30.09.22
✎
13:19
|
(30) SELECT *
Решение верно ;) |
|||
47
Said_We
30.09.22
✎
13:22
|
(45) (46) (39) "когда-либо обслуживаемых" - что означает?
|
|||
48
mistеr
30.09.22
✎
13:28
|
(47) Означает, что есть данные о полетах этого пассажира
|
|||
49
Said_We
30.09.22
✎
13:31
|
(48) Наверное не о полетах, а хотя бы о купленных билетах. Обслужили - продали билет.
А это означает, что должна анализироваться таблица "Pass_in_trip"? |
|||
50
1сПупс
30.09.22
✎
13:47
|
ломаю голову над https://sql-academy.org/ru/trainer/tasks/13
Вывести имена людей, у которых есть полный тёзка среди пассажиров id name 1 Bruce Willis 2 George Clooney 3 Kevin Costner 4 Donald Sutherland 5 Jennifer Lopez 6 Ray Liotta 7 Samuel L. Jackson 8 Nikole Kidman 9 Alan Rickman 10 Kurt Russell 11 Harrison Ford 12 Russell Crowe 13 Steve Martin 14 Michael Caine 15 Angelina Jolie 16 Mel Gibson 17 Michael Douglas 18 John Travolta 19 Sylvester Stallone 20 Tommy Lee Jones 21 Catherine Zeta-Jones 22 Antonio Banderas 23 Kim Basinger 24 Sam Neill 25 Gary Oldman 26 ClINT Eastwood 27 Brad Pitt 28 Johnny Depp 29 Pierce Brosnan 30 Sean Connery 31 Bruce Willis 37 Mullah Omar |
|||
51
1сПупс
30.09.22
✎
13:49
|
в голову пришло только это:
SELECT name FROM Passenger GROUP by name HAVING count(*)>1 LIMIT 1 |
|||
52
Said_We
30.09.22
✎
14:06
|
(51)
SELECT name FROM Passenger GROUP by name HAVING count(name)>1 |
|||
53
Said_We
30.09.22
✎
14:09
|
(51) Но правильной бы формулировкой было бы вывести всех пассажиров и поля ID и Name. Отсортировать по полю name.
А так получается что по факту считается правильным вывод ФИО двойников, а не вывод пассажиров. |
|||
54
1сПупс
30.09.22
✎
14:09
|
да, а если бы там много полных совпадений имен пассажиров, лимит не нужен.
|
|||
55
1сПупс
30.09.22
✎
14:10
|
(53) вы предлагаете изменить условие задачи?
|
|||
56
Мультук
гуру
30.09.22
✎
14:10
|
(51)
select t1.name from passenger as t1, passenger as t2 where t1.name = t2.name and t1.id > t2.id |
|||
57
Said_We
30.09.22
✎
14:11
|
(54) Могут быть и три и четыре полных тезки.
Смотреть (47) (49). С формулировками заданий на SQL Academy есть проблемы. |
|||
58
Said_We
30.09.22
✎
14:12
|
(56) Декартово произведение тут очень лишнее. Ну нужно так.
|
|||
59
Мультук
гуру
30.09.22
✎
14:12
|
(58)
Чудо тренажёр говорит, что так тоже правильно select t1.name from passenger as t1 where t1.id = 31 |
|||
60
1сПупс
30.09.22
✎
14:14
|
(59) а если элементов было бы 304928340923 тоже бы вручную искал?
|
|||
61
Said_We
30.09.22
✎
14:14
|
(59) Он проверяет итоговый результат. Это нормально. Не нормально, что нельзя сравнить по скорости выполнения и видеть, что твой результат на много медленнее чем у остальных.
|
|||
62
Мультук
гуру
30.09.22
✎
14:15
|
(60)
Я говорю о том, что есть варианты, которые сайт примет. А на самом деле они не работают. Или не работают на других условиях. И в простых случаях типа, можно легко понять "кто дурак". А вот дальше... |
|||
63
1сПупс
30.09.22
✎
14:15
|
вообще сервис неплохой, а https://www.sql-ex.ru/ получше, кто щупал?
|
|||
64
Said_We
30.09.22
✎
14:16
|
(59) Что бы такие залипухи не работали обычно делают несколько баз и проверяют результаты на разных базах. И правильным считается если на всех тестовых базах с очень разными данными получился правильный результат.
|
|||
65
Said_We
30.09.22
✎
14:17
|
(63) https://www.sql-ex.ru/
Это наверное лучший сервис на сегодня из условно бесплатных. |
|||
66
1сПупс
30.09.22
✎
14:18
|
(65) хорошо, спасибо!
|
|||
67
Said_We
30.09.22
✎
14:19
|
К (65) если решишь все 161 заданий, то считай что попрактиковался. Если будешь искать готовые решения и будешь не сам писать, то забанят аккаунт.
|
|||
68
Said_We
30.09.22
✎
16:33
|
(55) Первое задание формулировку обещали поменять.
В данном случае если кто предложат поменять, то думаю задумаются. На обоих ресурсах достаточно быстро и адекватно реагируют. Просто SQL Academy очень молодой ресурс. Он ещё развивается. Как и куда он разовьётся пока не понятно. У https://www.sql-ex.ru/ главная цель не коммерческая. Академически сделан грамотно. |
|||
69
mistеr
30.09.22
✎
19:18
|
(65) +1
|
|||
70
1сПупс
01.10.22
✎
15:36
|
делаю 14 задание https://sql-academy.org/ru/trainer/tasks/14
В какие города летал Bruce Willis: как будет более правильно?: Вариант1: SELECT town_to FROM Trip, Passenger, Pass_in_trip WHERE Passenger.id = Pass_in_trip.passenger AND Pass_in_trip.trip = Trip.id and name = 'Bruce Willis' Вариант2: SELECT town_to FROM Trip LEFT JOIN Pass_in_trip ON Trip.id = Pass_in_trip.trip LEFT JOIN Passenger ON Pass_in_trip.passenger = Passenger.id WHERE name = 'Bruce Willis' Или это одинаково с точки зрения производительности? |
|||
71
1сПупс
02.10.22
✎
11:17
|
up
|
|||
72
AMur
02.10.22
✎
11:57
|
На работе сейчас использую MS Office Excel 2013. База данных в таблицах. Запросы на SQL в VBA к этим таблицам работают. Отчеты можно оформить в Word или в Excel. Сначала потренировался в запросах , а сейчас экономлю кучу времени!
|
|||
73
Aleksey
02.10.22
✎
19:24
|
(70) это разные запросы с точки зрения полученного результата
в первом случае у тебя перекрестное соединение CROSS JOIN (или его аналог в 1С ПОЛНОЕ СОЕДИНЕНИЕ) А во втором левое соединение LEFT JOIN Т.е. на выходе в общем случае будут разные результате (что не исключает в неком частном случае совпадение результатов) |
|||
74
DES
02.10.22
✎
20:47
|
ИР (инструменты разработчика) советовали уже?
|
|||
75
Said_We
03.10.22
✎
11:32
|
(74) Ему не 1С.
1С обрезан сильно. |
|||
76
Said_We
03.10.22
✎
11:47
|
(70) Можно и так:
SELECT town_to FROM trip WHERE id in (SELECT trip FROM Pass_in_trip WHERE passenger IN (SELECT id FROM passenger WHERE name = "Bruce Willis" ) ) GROUP BY town_to |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |