Что будет получено в результате выполнения нижеприведённого запроса?
SELECT MIN(CODE_INT), MAX(CODE_INT) FROM PIN_CODES
SELECT MIN(CODE_INT), MAX(CODE_INT) FROM PIN_CODES
Anonymous Quiz
0%
Получим значения 1 и 1
5%
Получим значения NULL и NULL
82%
Получим значения 1 и 4
13%
Будет ошибка выполнения запроса
👍4😁2
Здравствуйте, друзья!
Начнём день с разминки по SQL.
Выполнение какой из команд, приведённых ниже, удалит все строки из таблицы Persons, то есть оставит её вообще без строк?
Начнём день с разминки по SQL.
Выполнение какой из команд, приведённых ниже, удалит все строки из таблицы Persons, то есть оставит её вообще без строк?
Anonymous Quiz
16%
DELETE FROM Persons WHERE NAME <> NULL
1%
UPDATE Persons SET NAME = NULL
15%
DROP TABLE Persons
68%
TRUNCATE TABLE Persons
🔥5👍2
Очень интересный получился в этот раз разброс голосов за варианты ответов. Чуть позже я объясню правильный вариант. А пока подождём решения остальных 🙂
Подводим итоги сегодняшнего голосования 🤗
Больше половины ответили правильно! 💪
Из перечисленных выше команд SQL только последней удастся очистить таблицу Persons от всех строк в ней.
Команда TRUNCATE TABLE Persons разом опустошит таблицу, она останется совсем без записей.
Команда DELETE написана так, что согласно условию WHERE не найдётся ни одной подходящей записи для удаления. Ни для одной строки не выполнится условие, указанное во WHERE. Результат сравнения с NULL всегда будет отрицательным. Для проверки на NULL можно использовать только IS и IS NOT.
Команда UPDATE не удаляет строки из таблицы. В нашем прмере она заменяет существующее значение в столбце NAME на NULL для всех строк (WHERE-то нет).
А команда DROP вообще удаляет саму таблицу из базы данных😌 вместе с данными конечно. И селектить больше будет неоткуда. Таблицы больше не будет в базе данных🙈
Надеюсь, во всем разобрались и всё теперь точно понятно! 🙂
....
Если Вы изучаете еще только первые уроки нашего курса, не знали некоторых команд SQL и ответили в этом вопросе наугад, то этим вопросом я приоткрыл завесу будущих тем 🙂
Больше половины ответили правильно! 💪
Из перечисленных выше команд SQL только последней удастся очистить таблицу Persons от всех строк в ней.
Команда TRUNCATE TABLE Persons разом опустошит таблицу, она останется совсем без записей.
Команда DELETE написана так, что согласно условию WHERE не найдётся ни одной подходящей записи для удаления. Ни для одной строки не выполнится условие, указанное во WHERE. Результат сравнения с NULL всегда будет отрицательным. Для проверки на NULL можно использовать только IS и IS NOT.
Команда UPDATE не удаляет строки из таблицы. В нашем прмере она заменяет существующее значение в столбце NAME на NULL для всех строк (WHERE-то нет).
А команда DROP вообще удаляет саму таблицу из базы данных😌 вместе с данными конечно. И селектить больше будет неоткуда. Таблицы больше не будет в базе данных🙈
Надеюсь, во всем разобрались и всё теперь точно понятно! 🙂
....
Если Вы изучаете еще только первые уроки нашего курса, не знали некоторых команд SQL и ответили в этом вопросе наугад, то этим вопросом я приоткрыл завесу будущих тем 🙂
🔥3
Здравствуйте, друзья!
Предлагаю решить ещё одну SQL задачу. Каким из этих запросов из таблицы Persons точно бы выбрался сотрудник со значением "Петров Иван Георгиевич" в поле NAME? Для Гуру: в СУБД настроен регистрозависимый поиск.
Предлагаю решить ещё одну SQL задачу. Каким из этих запросов из таблицы Persons точно бы выбрался сотрудник со значением "Петров Иван Георгиевич" в поле NAME? Для Гуру: в СУБД настроен регистрозависимый поиск.
Anonymous Quiz
17%
SELECT * FROM Persons WHERE UPPER(NAME) LIKE '%Петр%'
36%
SELECT * FROM Persons WHERE NAME LIKE '%Петр__%'
46%
SELECT * FROM Persons WHERE NAME = '%Петров%'
👍2
Завтра дам объяснение правильного ответа.
Только опубликовал викторину, а уже правильный ответ есть!
Спасибо за активное участие! 🙂👍
Только опубликовал викторину, а уже правильный ответ есть!
Спасибо за активное участие! 🙂👍
Самый первый ответ, который я получил от вас по этой задаче был правильный💪
Теперь эта задача лидирует по количеству процентов неправильных ответов😱.
Наверное сказывается конец рабочей недели🙂. Или, на первый взгляд, лёгкость этой задачи😉
Теперь эта задача лидирует по количеству процентов неправильных ответов😱.
Наверное сказывается конец рабочей недели🙂. Или, на первый взгляд, лёгкость этой задачи😉
Правильный ответ - второй.
Команда:
SELECT * FROM Persons WHERE NAME LIKE '%Петр__%'
выберет строки из таблицы Persons, у которых в столбце NAME значение, похожее на указанный фрагмент: есть фраза "Петр", спереди которой могут быть ещё символы и сзади которой должны быть минимум ещё два символа или больше. Одно нижнее подчеркивание в маске поиска оператора LIKE обозначает один обязательный символ. Маска поиска '%Петр__%' после слова "Петр" имеет два нижних подчеркивания, значит что точно будут отобраны такие строки из таблицы Persons, в которых в столбце NAME есть фраза Петр и после неё есть ещё минимум два символа и после (и перед) возможен(!) ещё текст неопределенной длины - на это указывают знаки процентов.
Команда:
SELECT * FROM Persons WHERE NAME LIKE '%Петр__%'
выберет строки из таблицы Persons, у которых в столбце NAME значение, похожее на указанный фрагмент: есть фраза "Петр", спереди которой могут быть ещё символы и сзади которой должны быть минимум ещё два символа или больше. Одно нижнее подчеркивание в маске поиска оператора LIKE обозначает один обязательный символ. Маска поиска '%Петр__%' после слова "Петр" имеет два нижних подчеркивания, значит что точно будут отобраны такие строки из таблицы Persons, в которых в столбце NAME есть фраза Петр и после неё есть ещё минимум два символа и после (и перед) возможен(!) ещё текст неопределенной длины - на это указывают знаки процентов.
Команда:
SELECT * FROM Persons WHERE UPPER(NAME) LIKE '%Петр%'
не выберет вообще никого. Так как до сравнения значения из столбца NAME будут преобразованы в верхний регистр (все буквы до сравнения с маской поиска станут большими, то есть ЗАГЛАВНЫМИ), а в самой маске поиска есть символы в нижнем регистре.
Повторю другими словами: ни для какой строки преобразованное к верхнему регистру значение столбца NAME уже не будет подобно маске поиска в которой есть символы в нижнем регистре.
SELECT * FROM Persons WHERE UPPER(NAME) LIKE '%Петр%'
не выберет вообще никого. Так как до сравнения значения из столбца NAME будут преобразованы в верхний регистр (все буквы до сравнения с маской поиска станут большими, то есть ЗАГЛАВНЫМИ), а в самой маске поиска есть символы в нижнем регистре.
Повторю другими словами: ни для какой строки преобразованное к верхнему регистру значение столбца NAME уже не будет подобно маске поиска в которой есть символы в нижнем регистре.
И последняя команда:
SELECT * FROM Persons WHERE NAME = '%Петров%'
выберет только строки, у которых в столбце NAME значение ТОЧНО РАВНОЕ "%Петров%" (в ячейке вписано процент, Петров, процент).
В последней команде нет оператора LIKE 😱
Поиск будет осуществлён не по маске, а по конкретному значению в столбце.
Для сравнения используется символ равенства, а не LIKE.
SELECT * FROM Persons WHERE NAME = '%Петров%'
выберет только строки, у которых в столбце NAME значение ТОЧНО РАВНОЕ "%Петров%" (в ячейке вписано процент, Петров, процент).
В последней команде нет оператора LIKE 😱
Поиск будет осуществлён не по маске, а по конкретному значению в столбце.
Для сравнения используется символ равенства, а не LIKE.
В деловой и офисной среде обычный разговор или электронное сообщение стало принято заканчивать фразой-пожеланием "Хорошего дня!"․ С недавних пор такую универсальную, всегда подходящую фразу, я стал осторожнее и реже использовать в своём тексте․ Буквально обдумываю теперь каждый раз необходимость её написания․ Виной этому анекдот, который я прочёл в одной из книг Ицхака Пинтосевича:
В Израиле принято на день рождения желать имениннику дожить до ста лет․
И вот очередной день рождения старого еврея․ Гости его поздравляют․․․
— Соломон Маркович, здоровья Вам и долгих лет, чтобы Вы дожили до 100 лет!
— Таки мне сегодня 100!
— Ну, тогда хорошего Вам дня!
Вобщем, пишу теперь эту фразу только тогда, когда действительно делаю напутствие хорошего дня․
Хорошего дня, уважаемый читатель и отличной рабочей и/или учебной недели!
https://dzen.ru/media/iliahohlov/kak-podniat-sebe-nastroenie-prochitav-obychnoe-elektronnoe-pismo-631ee126f45a45024c0e87e3
В Израиле принято на день рождения желать имениннику дожить до ста лет․
И вот очередной день рождения старого еврея․ Гости его поздравляют․․․
— Соломон Маркович, здоровья Вам и долгих лет, чтобы Вы дожили до 100 лет!
— Таки мне сегодня 100!
— Ну, тогда хорошего Вам дня!
Вобщем, пишу теперь эту фразу только тогда, когда действительно делаю напутствие хорошего дня․
Хорошего дня, уважаемый читатель и отличной рабочей и/или учебной недели!
https://dzen.ru/media/iliahohlov/kak-podniat-sebe-nastroenie-prochitav-obychnoe-elektronnoe-pismo-631ee126f45a45024c0e87e3
😁7
Какая из этих команд, не является командой DML?
Anonymous Quiz
3%
UPDATE
2%
DELETE
69%
TRUNCATE
26%
SELECT
Большинство ответили правильно:
TRUNCATE не является командой DML.
Вот небольшое видео про категории (типы) команд языка SQL:
https://youtu.be/stObQ6ruG40
Если совсем коротко, то:
DML - команды манипуляции данными: чтение, добавление, редактирование и удаление;
DDL - определение данных. Команды для работы с объектами базы данных, с таблицами, например. Прежде, чем данные из какой-то таблицы выбирать или в какую-то таблицу класть, надо сначала создать саму таблицу. Для этого и нужны команды DDL. Создание таблицы, добавление в нее столбцов, удаление таблицы и т.д. Это все команды DDL.
Есть ещё команды работы назначения или снятия привилегий и команды управления транзакциями.
TRUNCATE не является командой DML.
Вот небольшое видео про категории (типы) команд языка SQL:
https://youtu.be/stObQ6ruG40
Если совсем коротко, то:
DML - команды манипуляции данными: чтение, добавление, редактирование и удаление;
DDL - определение данных. Команды для работы с объектами базы данных, с таблицами, например. Прежде, чем данные из какой-то таблицы выбирать или в какую-то таблицу класть, надо сначала создать саму таблицу. Для этого и нужны команды DDL. Создание таблицы, добавление в нее столбцов, удаление таблицы и т.д. Это все команды DDL.
Есть ещё команды работы назначения или снятия привилегий и команды управления транзакциями.
Несмотря на то, что команда TRUNCATE очищает данные из таблицы (удаляет строки), она не является DML. Так как она, чтобы очистить строки из таблицы, удаляет саму таблицу (её временно не будет в базе данных) и потом сразу же создаёт такую же пустую.
Кажется, что раз она очищает строки (то есть удаляет данные из таблицы), то эта команда должна быть командой DML, но она DDL, так как она добивается очистки таблицы путём уничтожения таблицы и созданием её заново! Конечно же она применяется не часто, но иногда бывает нужна.
Обо всем этом мы узнаем на нашем курсе на одном из последних уроков🙂👍
Кажется, что раз она очищает строки (то есть удаляет данные из таблицы), то эта команда должна быть командой DML, но она DDL, так как она добивается очистки таблицы путём уничтожения таблицы и созданием её заново! Конечно же она применяется не часто, но иногда бывает нужна.
Обо всем этом мы узнаем на нашем курсе на одном из последних уроков🙂👍
Напишите, пожалуйста, какие моменты тяжелее всего даются в понимании на курсе? Или, может быть, есть свои вопросы по SQL и базам данных, которые Вы бы хотели разобрать.
Напишите, пожалуйста, на почту info@prime-soft.biz.
Отвечу на все присланные вопросы в ближайшем прямом эфире!
Напишите, пожалуйста, также, когда бы Вам было удобнее, чтобы я его провел (день недели и время).
Я выберу время, за которое будет большинство голосов. Буду рад вашему посещению эфира!
Если не получится придти на эфир, то сможете посмотреть его в записи в удобное время😌
Напишите, пожалуйста, на почту info@prime-soft.biz.
Отвечу на все присланные вопросы в ближайшем прямом эфире!
Напишите, пожалуйста, также, когда бы Вам было удобнее, чтобы я его провел (день недели и время).
Я выберу время, за которое будет большинство голосов. Буду рад вашему посещению эфира!
Если не получится придти на эфир, то сможете посмотреть его в записи в удобное время😌
На текущий момент получил одно сообщение (уже спасибо🙂): удобнее всего провести прямой эфир в будни вечером или в выходные! Жду поддержку 🙂💪
Было бы здорово, если бы Вы написали, какие темы хотели больше проработать! Например: сложно даётся группировка или хотели бы чтобы я проговорил как работать с подзапросами!
Было бы здорово, если бы Вы написали, какие темы хотели больше проработать! Например: сложно даётся группировка или хотели бы чтобы я проговорил как работать с подзапросами!
👍2
Моя коллега Юлия помогла мне настроить канал так, чтобы можно было прямо под постами оставлять комментарии.
Буду рад обсудить с Вами темы прямого эфира прямо здесь!
Буду рад обсудить с Вами темы прямого эфира прямо здесь!