|   |   | 
| 
 | как попрактиковаться в 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 | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |