Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Игра рыбалка представляет собой полноценный симулятор рыбалки и дает возможность порыбачить в реально существующих местах из жизни и поймать рыбу, которая там обитает.

Рыбный дождь

Спорт, Симуляторы, Рыбалка

Играть

Топ прошлой недели

  • Oskanov Oskanov 8 постов
  • AlexKud AlexKud 26 постов
  • StariiZoldatt StariiZoldatt 3 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Sql-запрос

369 постов сначала свежее
1
asdfqwerzxc
1 год назад

Создание запроса на связывание двух таблиц в Excel с помощью VBA и DAO⁠⁠

Представим себе такую задачу:

Есть две экселевские таблицы. Это могут быть и два разных листа одной книги и две отдельные книги. Их может быть и больше. И вам надо сопоставить ячейки одной таблицы с ячейками другой, чтоб получить значения из её строки. За пределами экселя это делается с помощью SQL. В самом экселе с каких-то пор появилась некая химера под названием PowerQuery, но ну её нафиг.

В составе офиса у нас уже есть DAO. Это ядро баз данных, используемое MS Access-ом - Jet. Его и будем использовать.

  1. Сохраняем область ячеек одной из из исходных таблиц в xls-файл. Например это от A1 до B100

    Dim wt As Workbook, sht As Worksheet 'временная книга

    Dim sh1 As Worksheet 'первый лист-источник

    Dim cStart As String, cEnd As String

    Set sh1 = ThisWorkbook.Worksheets(1)

    Set wt = Application.Workbooks.Add

    Set sht = wt.Worksheets(1)

    cStart ="A1" 'первая ячейка

    cEnd = "B100" 'сотая строка в столбце B

    sh1.Range(cStart & ":" & cEnd).Copy sht.Range("A1")

    Application.DisplayAlerts = False

    Set WShell = CreateObject("WScript.shell")

    strFile1 = WShell.ExpandEnvironmentStrings("%temp%") & "\file1.xls"

    wt.SaveAs strFile1, XlFileFormat.xlExcel8

    wt.Close

    Application.DisplayAlerts = True

Всё то же самое делаем с другой таблицей. Главное, чтоб выходной файл имел другое название.

2. Создаём MDB-файл

Создание запроса на связывание двух таблиц в Excel с помощью VBA и DAO Гайд, Vba, SQL, Microsoft Excel, Длиннопост

предварительно подключим библиотеку DAO 3.6

Dim strSQL As String

Dim dbs As DAO.Database, rst As DAO.Recordset, qdf As DAO.QueryDef

Dim strMDB As String

Dim WShell

Set WShell = CreateObject("WScript.shell")

strMDB = WShell.ExpandEnvironmentStrings("%temp%") & "\mdb.mdb"

If FileExists(strMDB) Then Kill strMDB

If CreateDataBaseDAO(strMDB) Then

Set dbs = DAO.OpenDatabase(strMDB)

'создаём таблицу и поля

Set tdf = dbs.CreateTableDef("t1")

Set fld1 = tdf.CreateField("f1", dbText, 255)

tdf.Fields.Append fld1

Set fld1 = tdf.CreateField("f2", dbText, 255)

tdf.Fields.Append fld1

dbs.TableDefs.Append tdf

'создадим запрос на копирование строчек из файла в базу и выполним его

Set qdf = dbs.CreateQueryDef("q1", "insert into t1 SELECT * FROM [Лист1$] AS s_ IN '" & strFile1 & "'[EXCEL 8.0;HDR=no;];")

qdf.Execute

Так же создаём и заполняем столько таблиц, сколько нам надо связать в запросе.

И делаем простенький запрос на выборку со связыванием:

strSQL = "SELECT t1.F1, t1.F2, t2.F1 " & vbCrLf & _

"FROM t1 LEFT JOIN dst ON t1.F1 = t2.F1 " & vbCrLf & _

"WHERE t1.F1 Is Not Null AND t2.F1 Is Null;"

Set qdf = dbs.CreateQueryDef("qCompare", strSQL)

Set rst = dbs.OpenRecordset("qCompare")

If Not rst.EOF Then

While Not rst.EOF

'Debug.Print rst.Fields(0), rst.Fields(1)

rst.MoveNext

Wend

End If

Таким образом формируется запрос, в котором вывелись записи из первой таблицы, для которых не нашлось сопоставление во второй. Можем в цикле вывести эти записи в нашу книгу, например.

В коде встречаются две функции. Вот их код:

Function FileExists(strFile As String) As Boolean

On Error GoTo erro

If FileLen(strFile) <> 0 Then FileExists = True

Exit Function

erro:

If Err.Number = 53 Then FileExists = False

End Function

Function CreateDataBaseDAO(newDB As String, Optional sLocate As String = dbLangCyrillic, Optional iVersion As Integer = dbVersion40) As Boolean

Dim dbNew As Database

On Error GoTo Proc_Err

Set dbNew = DBEngine.CreateDatabase(newDB, sLocate, iVersion)

CreateDataBaseDAO = True

Proc_Exit:

Exit Function

Proc_Err:

MsgBox Err.Description, , Err.Number

CreateDataBaseDAO = False

Resume Proc_Exit

End Function

Самая затратная по времени выполнения часть - это копирование записей из файлов в базу. Это приходится делать, т.к. Jet не считает экселевские файлы полноценным источником данных, не может работать с ними непосредственно через связь, и не может по ним строить индексы и вести нормальный поиск. Может только последовательный перебор от начала до конца файла, что нам совсем не удобно. А вот работа с объектами самого акцесса имеет вполне вменяемое быстродействие. В принципе самое быстрое на данный момент среди файловых баз данных.

Показать полностью 1
Гайд Vba SQL Microsoft Excel Длиннопост
35
IliaHohlov
IliaHohlov
1 год назад
Лига программистов

Является ли внешний ключ индексом? Конечно нет. Вот почему!⁠⁠

В этом видео расскажем создает ли определение внешнего ключа на таблице (foreign key) автоматически еще и индекс. Конечно не создает. Внешний ключ - это просто одна из разновидностей ограничений для таблиц (constraint). Если нужен еще и индекс по этому полю, то его нужно создавать дополнительно!

[моё] Программирование IT Собеседование SQL Oracle Ms SQL Индекс Ограничения Ключи Программист Видео YouTube
9
53
Go2Go
1 год назад

SQL Querybook⁠⁠

Привет! Сегодня я хочу рассказать вам о замечательном инструменте для работы с данными, который называется Querybook.

Querybook - это открытое программное обеспечение, разработанное командой Pinterest, которое помогает аналитикам и инженерам работать с данными более эффективно. Он предоставляет удобный интерфейс для написания, запуска и отслеживания SQL-запросов, а также для визуализации результатов.

Одной из главных особенностей Querybook является его способность интегрироваться с различными системами хранения данных, такими как Hive, Presto, MySQL и другими. Это позволяет пользователям работать с данными из разных источников, не выходя из интерфейса Querybook.

Кроме того, Querybook предоставляет возможность создания и управления библиотеками запросов. Это позволяет пользователям сохранять и повторно использовать SQL-запросы, что существенно упрощает и ускоряет процесс работы с данными.

Еще одной полезной функцией Querybook является возможность создания и отображения графиков и диаграмм на основе результатов запросов. Это позволяет визуализировать данные и получать более наглядное представление о них.

Кроме того, Querybook обладает расширенными возможностями по управлению доступом и безопасностью данных. Пользователи могут устанавливать различные уровни доступа к запросам и таблицам, а также настраивать аутентификацию и авторизацию.

В целом, Querybook - это мощный инструмент, который помогает аналитикам и инженерам работать с данными более эффективно. Он объединяет в себе удобный интерфейс, интеграцию с различными источниками данных, возможность создания библиотек запросов и визуализацию результатов. Если вы занимаетесь анализом данных или разработкой, я рекомендую вам попробовать Querybook и увидеть, как он может упростить вашу работу.

Python IT Развитие Программирование SQL Текст
14
6
IliaHohlov
IliaHohlov
1 год назад
Лига программистов

Разбираем решение задачи по SQL с нашего телеграмм-канала про поиск и удаление дублей в таблице⁠⁠

Разбираем решение задачи по SQL с нашего телеграмм-канала про поиск и удаление дублей в таблице: https://t.me/sql_oracle_databases

#SQL #ORACLE #Уроки #вопросынасобеседовании #Задачи

Показать полностью
[моё] Программирование IT Разработка SQL Собеседование Задача База данных Oracle Mysql Ms SQL Видео YouTube
7
IliaHohlov
IliaHohlov
1 год назад
Лига программистов

Как найти в себе силы и овладеть SQL⁠⁠

Как найти в себе силы и овладеть SQL Программирование, IT, Лень, Время, SQL, Собеседование, Удаленная работа, Программист, Интернет, База данных, Карьера, Поиск работы, Длиннопост

"У каждого взрослого человека всегда много дел". Дмитрий Петров, лингвист, полиглот.

"Aller Anfang ist schwer" (любое начинание сложно). Немецкая поговорка.

Всегда трудно начинать что-то новое. Переживания из-за невладения навыком работы с базами данных и незнания языка SQL могут усугубляться страхом его изучения. Как это всё выучить? И не просто выучить, а ещё и начать хорошо разбираться в этом? А вдруг я не смогу найти работу, ведь везде требуются сотрудники уже с опытом работы? Эти и другие страхи возникают постоянно. Но бояться не надо! Язык SQL не сложный!
- "Конечно, тебе легко говорить". - Скажешь ты. - "Ведь ты его знаешь".
- "Да, знаю. И так же как и ты, когда то впервые его увидел". А ещё я практически сразу понял насколько он прост и лёгок в понимании! Итак, языку SQL и существенным навыкам работы с базами данных можно обучиться за довольно короткое время! А качественное обучение (или самообучение) с обязательной практикой может дать хороший результат! А чтобы начать совсем хорошо в нём разбираться, нужно прорешать множество типичных и каверзных задач. Здесь, конечно, нужен или опыт или нужны хорошие курсы. В своём курсе по SQL и базам данных на простых примерах я проведу тебя через многие практические сложности! Мы научимся решать любые задачи на языке SQL. Научимся видеть потенциальные ошибки в существующем коде и оптимизировать его. Можно реально примерно за месяц (если учиться не торопясь, уделяя час в день) "прокачать" знания языка SQL и навыки работы с базами данных с нуля до уровня специалиста с трёхлетним стажем! Вот так!
Я совсем не уговариваю тебя придти ко мне на курс, но был бы тебе очень рад! Мне уже повезло, что ты читаешь этот пост и я могу ещё кое что тебе рассказать!

Итак, язык SQL очень прост. Ты можешь ему научиться. Это аксиома (не требует доказательств).

"Я знаю. Ты можешь"! Ицхак Пинтосевич. Автор множества книг по развитию личности.

Итак, SQL тебе под силу! Теперь осталось разобраться как найти на него время и силы. У тебя, возможно, есть семья, дети. Есть работа, которая отнимает основное продуктивное время, есть друзья, которым хоть пол часа в день времени, но уделить нужно (вотсап, вконтакте, одноклассники,..). Вобщем - день занят. И так каждый день! А в выходные надо отдохнуть, ведь всю неделю ты работал как мог!
- "У меня есть максимум час в неделю!" - скажешь ты.
- "Отлично! С этого и давай начинать!" Час в неделю это лучше, чем ничего.

"Большого слона можно съесть по кусочкам". Народная мудрость.

Итак, если у нас есть час в день, то считай, что SQL мы выучим! Да, да! Тратя по-немногу времени на нужный навык, ты, в конце концов, его освоишь! И даже это не растянется на очень долго! Изучай и практикуй! Начни хоть с часу в неделю, ты заметишь, что ты начнёшь в этом разбираться, а через некоторое время тебе это понравится и ты сможешь находить на это больше времени! Незаметно для себя ты овладеешь SQL и обучишься навыкам работы с базами данных!

Буду рад, если поделишься своей историей как ты смог найти время и силы на язык SQL!

Показать полностью 1
[моё] Программирование IT Лень Время SQL Собеседование Удаленная работа Программист Интернет База данных Карьера Поиск работы Длиннопост
46
Rayne00915
1 год назад

Проблема SQL базой данных⁠⁠

Проблема SQL базой данных SQL, База данных, СКУД

Доброго дня, при попытке подключить бэкап базы даных программы скуд zkacces 3.5 выбивает такую ошибку, база данный на sql сервере, комп с админ правами, в чём может быть проблема, помогите пожалуйста кто шарит.

[моё] SQL База данных СКУД
9
61
awfun
1 год назад
Лига программистов

Что программиста спрашивают про базы данных на собеседовании⁠⁠

Всем привет, работаю бекенд разработчиком почти 10 лет и за это время прошел порядка 150 собеседований. Сейчас есть тренд на использование набора различных СУБД в одном проекте: в зависимости от задач используются реляционные, key-value, документные базы. В этом посте я хотел бы поделиться самыми частыми темами с собеседований, они касаются в основном реляционных (aka sql) баз данных.

SQL - прикладная часть. Нужно уметь решать задачи, которые касаются фильтрации, агрегации, сортировки записей, понимать каков результат применения оператора join;

Связи между данными и поддержка инвариантов. Нужно понимать что такое primary key, foreign key, constraint-ы. Надеюсь, нет необходимости вставлять сюда переводы этих понятий;

Уметь объяснить, что такое нормализация, почему может потребоваться использовать ненормализованные данные;

Знать что такое индекс, составной ключ, потренироваться использовать команду explain для построения плана запроса;

В общих чертах требуется понимать эффекты, которые происходят в распределенных системах при потери связи или выходе узла из строя. Рассуждая на эти темы, могут затронуть CAP теорему, согласованность в конечном счете;

Предыдущий пункт включает большую тему - проблемы построения распределенных транзакций. На собеседовании нужно быть готовым рассказать про уровни изоляции транзакций;

Нужно понимать что такое параметризированный запрос, как он защищает от sql-инъекций.

Для администраторов баз данных эти вопросы могут показаться трививальными. Но бекенд разработчики часто не вникают в нюансы - ORM фреймворки позволяют работать с бд через интерфейсы языка, что скрывает сложность. Я сам не держу уровни нормализации или изоляции в голове, пробегаюсь перед прохождением испытаний.

Всем удачных собесов!

Показать полностью
[моё] IT Программирование Разработка SQL Текст
23
16
IliaHohlov
IliaHohlov
1 год назад
Лига программистов

ФИЛВОРД на тему SQL⁠⁠

ФИЛВОРД на тему SQL IT, Программирование, SQL, Игры, Урок, Филворды

Здравствуйте, друзья! Всем хорошей пятницы и завершения рабочей (или учебной) недели.

В это раз решил подготовить филворд по SQL! В этих клеточках я спрятал 26 слов. И все они являются командами, операторами, функциями или ключевыми словами языка SQL. Слова написаны только вертикально и горизонтально. Одно слово не может менять направление. Вот и все правила.

Буду рад Вашему если примите участие в разгадывании моего филворда с ключевыми словами по SQL. Решение опубликую через несколько дней!

Показать полностью
[моё] IT Программирование SQL Игры Урок Филворды
18
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии