PRO ИНВЕСТИЦИИ
قناة بسيطة
7 584
المشتركون
لا توجد بيانات24 ساعات
-7307 أيام
-4 03830 أيام
أرشيف المشاركات
7 584
📖 Prisma ORM – инструмент для работы с Node.js и TypeScript (финал)
Полученный SQL запрос:
SELECT DISTINCT
(name)
FROM
Account
WHERE
meta ->> "$.firstName" = ?
LIMIT ?;
Данный запрос выглядит вполне неплохо, но все же не рекомендуем вам использовать его в реальной работе. Он никогда не будет использовать индексы в вашей базе и поэтому всегда будет выполняться медленно.
Заключение
В целом Prisma ORM — это неплохой выбор для проекта. Можно подчеркнуть, что не хватает возможности на уровне построителя запросов distinct, но при этом достаточно просто двинуться в сторону «сырых» запросов к базе данных.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To SQL
7 584
📖 Prisma ORM – инструмент для работы с Node.js и TypeScript (часть 6)
«Сырые» небезопасные запросы
Представьте ситуацию, в которой вам нужно фильтровать данные по полям из JSON объекта meta. При этом, то, по каким полям производить фильтрацию тоже определяется на уровне кода: код.
Полученный запрос работать не будет. В этом случае эта магия, которая работает внутри Prisma.sql не позволит нам просто взять и собрать запрос из нескольких строк: код.
Поэтому пришло время для использования $queryRawUnsafe. Мы все еще будем использовать параметры в запросе для значений JSON полей и лимитов: код.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To SQL
7 584
Сайт, Сэр - telegram канал web-разработчика с 10-летним стажем. В нем он делится:
нейросетями - сделают за вас грязную работу
готовым кодом - реализует крутые фишки на сайте
сервисами - упростят любую работу
библиотеками - помогут быстрей решить задачу
Присоединяйся и прокачивай свои скилы!
7 584
📖 Prisma ORM – инструмент для работы с Node.js и TypeScript (часть 5)
На первый взгляд код из этого примера выглядит как классический пример из книги «Как сделать SQL инъекцию». Но на самом деле это не так. Внутри Prisma делает немного магии, которая позволяет избежать уязвимостей.
Результат следующего кода это не просто строка с подставленными в нее значениями переменных. Prisma генерирует объект с запросом и параметрами этого запроса: код.
Все переменные заменены на плейсхолдеры и поэтому такой запрос безопасен. В то же время такой подход может вызвать проблемы при составлении более сложных запросов.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To SQL
7 584
📖 Пересечение строк
Рассмотрим один из типов операций над множествами - пересечение строк INTERSECT.
При использовании INTERSECT в результате запроса остаются строки, которые присутствуют в результате и первого, и второго запросов.
Теперь перейдем к примеру: код.
Стоит отметить, что на практике INTERSECT используется довольно редко. Чаще всего требуется не сравнить все столбцы запросов между собой, а лишь проверить наличие записи в другой таблице. Для этой задачи лучше подходят подзапросы IN, EXISTS или просто присоединение таблицы.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To SQL
7 584
🎉 Среди студентов МГУ прошло голосование на 3 лучших телеграм-канала по программированию. Поздравляем победителей:
Просто Python – канал для всех, кто хочет освоить самый перспективный язык 2022 года. Гайды для новичков, шпаргалки, фишки, программы и многое другое.
Этичный Хакер – уроки по хакингу, инструкциии по взлому, деанону, защите устройств и бесплатными курсами по информационной безопасности.
IT-Сэнсэй - хранилище бесплатных курсов и плейлистов по программированию от топовых онлайн-школ и преподавателей.
7 584
📖 A Primer on SQL
Эта книга является введением в основы SQL. Предварительный опыт работы с SQL не требуется, но необходимы некоторые общие знания по работе с компьютерами. Целью автора было дать краткое руководство по синтаксису SQL, чтобы читатель мог распознавать части запросов, с которыми он сталкивается, и даже сам писать простые операторы SQL и запросы. Однако, книга не предназначена для использования в качестве справочника или для администратора базы данных, который работает профессионально, поскольку в ней нет исчерпывающего освещения темы.
Не имеет русскоязычного перевода!
📋 #Совет
▬▬▬▬▬▬▬▬
// How To SQL
7 584
📖 Prisma ORM – инструмент для работы с Node.js и TypeScript (часть 4)
Использование «сырых» запросов
Теперь давайте достанем из базы первые 10 уникальных имен аккаунтов: код.
Код выглядит довольно просто. Но нас ожидает подвох в логах. SQL запрос к базе данных выглядит следующим образом: код.
Как вы видите, в этом запросе не используются лимиты, прописанные в запросе. Это потому, что Prisma не использует DISTINCT в запросах и фильтрует данные в памяти. Это очень сомнительное решение. Оно будет работать, когда в базе есть несколько тысяч записей, но перестанет, если там будет несколько миллионов. Да и вообще немного странно доставать из базы миллион записей для того, чтобы отфильтровать первые 10 уникальных имен.
В этом случае необходимо уже спускаться на уровень «сырых» запросов к базе данных: код.
Полученный SQL запрос:
select distinct(name) from Account limit ?
📋 #Совет #Код
▬▬▬▬▬▬▬▬
// How To SQL
7 584
Ты знал что каждый кодер должен знать сети на хорошем уровне?
Если ты хочешь по-быстрому разобраться в сетях и не хочешь читать книги по тысячи страниц, то переходи в канал @school_network где ты быстро сможешь изучить самое важное за несколько минут.
👉 @school_network
7 584
📖 Prisma ORM – инструмент для работы с Node.js и TypeScript (часть 3)
Простые запросы к базе данных
Следующий скрипт позволяет сразу создать новый аккаунт и пост. Prisma ORM клиент позволяет создавать одновременно несколько связанных сущностей в одной транзакции, что облегчает работу со связанными сущностями.
Мы настоятельно рекомендуем включать логирование запросов к базе данных при разработке приложения. Это поможет отслеживать реальные запросы и понять, какие запросы выполняются быстрее или медленнее. Приведём конкретный пример: код.
Следующий запрос достанет из базы данных все активные аккаунты. В нашей безе есть всего лишь один аккаунт, поэтому такой запрос безопасен. В случае большой базы данных необходимо разбивать результат на страницы для избежания переполнения памяти: код.
📋 #Совет #Код
▬▬▬▬▬▬▬▬
// How To SQL
7 584
📖 Prisma ORM – инструмент для работы с Node.js и TypeScript (часть 2)
Модель данных
Prisma ORM использует немного нестандартный подход к модели данных. Для того, чтобы определить модели, необходимо использовать специальный файл и специфичный для этой библиотеки синтаксис. Он менее гибок, чем моделирование при помощи аннотаций в *.ts файлах, но при этом легче читается. Большая часть типов данных, поддерживаемая в различных базах данных имеет поддержку в Prisma ORM, но в то же время есть ряд исключений, которые могут повлиять на выбор библиотеки для работы с данными: код.
На основании схемы Prisma ORM автоматически сгенерирует код для модели данных и миграции, для изменения базы данных:
npx prisma migrate dev --name init
📋 #Совет #Код
▬▬▬▬▬▬▬▬
// How To SQL
7 584
Прекрати мечтать и стань программистом за 50 дней
Опытные разработчики создали несколько бесплатных каналов, в которых регулярно выходят топовые посты для начинающих.
Всё об IT! — видеоуроки, материалы, шпаргалки и многое другое по популярным языкам программирования.
IT-EX | Уроки программирования — бесплатные авторские видеоуроки и курсы.
JavaScript заметки — образовательный канал с ежедневными практическими заметками по языку.
Бэкендер — канал с обучающими статьями, который даст тебе фундаментальные знания в программировании и Computer Science.
Полезная вËрстка — канал с готовыми решениями повседневных задач: слайдеры, анимация, навигация, сайдбары, меню, выпадашки и т.д.
Развивайся с нами, ведь так проще!
7 584
📖 Prisma ORM – инструмент для работы с Node.js и TypeScript (часть 1)
Установка Prisma ORM в новом проекте
По большей части будет использоваться официальная документация.
Предлагаю создать проект и инициализировать его: код.
Теперь добавим конфигурацию для TypeScript компилятора в tsconfig.json файл: код.
Установим Prisma ORM:
yarn add prisma
Инициализация Prisma ORM для базы данных MySQL:
npx prisma init --datasource-provider mysql
📋 #Совет #Код
▬▬▬▬▬▬▬▬
// How To SQL
7 584
📖 Microsoft SQL Server 2012. Основы T-SQL
Данная книга подробно ознакомит с языком запросов Transact-SQL. T-SQL — это разновидность стандартов ANSI и ISO для языка SQL. Язык известен тем, что используется в сервере баз данных Microsoft SQL Server.
Книга не привязана к конкретным версиям ПО и даёт полную информацию об элементах Transact-SQL, появившихся в SQL Server 2012 и в более ранних версиях.
Издание включает в себя 10 глав. Здесь даются теоретические основы, правила написания запросов, программирование на T-SQL, обеспечение целостности данных, создание таблиц, особенности получения и редактирования информации, тема параллельных соединений и транзакций, программируемые объекты и многое другое.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To SQL
7 584
📖 Функции SQL Server (часть 9)
ISNUMERIC – проверяет, является ли выражение числовым.
NULLIF – возвращает NULL, если два выражения равны.
SESSION_USER – возвращает имя текущего пользователя в базе данных SQL Server.
SESSIONPROPERTY – возвращает настройки сеанса для указанного параметра.
SYSTEM_USER – возвращает имя входа для текущего пользователя.
USER_NAME – возвращает имя пользователя базы данных на основе указанного id.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To SQL
7 584
🗃Теперь базы данных и SQL можно легко выучить по гайдам в картинках.
Первый канал с гайдами по SQL и базам данных — @db_guides
7 584
📖 Функции SQL Server (часть 8)
Функции расширения
CAST – преобразует значение (любого типа) в указанный тип данных.
COALESCE – возвращает первое ненулевое значение в списке.
CONVERT – преобразует значение (любого типа) в указанный тип данных.
CURRENT_USER – возвращает имя текущего пользователя в базе данных SQL Server.
IIF – возвращает значение, если условие TRUE, или другое значение, если условие FALSE.
ISNULL – возвращает указанное значение, если выражение равно NULL, в противном случае возвращает выражение.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To SQL
7 584
📖 Функции SQL Server (часть 7)
Функции дат
CURRENT_TIMESTAMP – возвращает текущую дату и время.
DATEADD – добавляет интервал времени/даты к дате, а затем возвращает дату.
DATEDIFF – возвращает разницу между двумя датами.
DATEFROMPARTS – возвращает дату из указанных частей (значения года, месяца и дня).
DATENAME – возвращает указанную часть даты (в виде строки).
DATEPART – возвращает заданную часть даты (в виде целого числа).
DAY – возвращает день месяца для указанной даты.
GETDATE – возвращает текущую системную дату и время базы данных.
GETUTCDATE – возвращает текущую дату и время UTC системы баз данных.
ISDATE – проверяет выражение и возвращает 1, если это допустимая дата, в противном случае 0.
MONTH – возвращает часть месяца для указанной даты (число от 1 до 12).
SYSDATETIME – возвращает дату и время работы SQL Server.
YEAR – возвращает часть года для указанной даты.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To SQL
7 584
📌 Python-погружение: основы за 2 дня! Бесплатный онлайн-практикум 19-20 октября в 19:00 (мск)
Присматриваетесь к изучению Python и хотите «потрогать руками» язык программирования в реальной задаче?
Ищете короткий интенсив, чтобы оценить свои способности? Хотите понять, как устроены Telegram-боты и написать своего?
Python – отличный выбор для старта в IT🐍
Вы узнаете в каких сферах применяется Python и какие карьерные пути могут быть у разработчика. Как продолжить обучение, какие навыки потребуются, чтобы стать backend-разработчиком на Python.
Научитесь писать код, прописывать логику, запускать и поддерживать простые Telegram-боты, освоив базовые знания синтаксиса языка.
Записывайтесь в группу и за 2 дня поймите, что необходимо для старта!
А еще вас ждут подарки и бонусы 🥳🎁
7 584
📖 Функции SQL Server (часть 6)
RADIANS – преобразует значение градуса в радианы.
RAND – возвращает случайное число.
ROUND – округляет число до заданного количества знаков после запятой.
SIGN – возвращает знак числа.
SIN – возвращает синус числа.
SQRT – возвращает квадратный корень из числа.
SQUARE – возвращает квадрат числа.
SUM – вычисляет сумму набора значений.
TAN – возвращает тангенс числа.
📋 #Совет
▬▬▬▬▬▬▬▬
// How To SQL
