История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Интересное:
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Дисциплины:
2019-05-27 | 187 |
5.00
из
|
Заказать работу |
|
|
= Равенство
<> Неравенство
!= Неравенство
< Меньше
<= Меньше или равно
!< Не меньше, Больше
>= Больше или равно
!> Не больше
BETWEEN Вхождение в диапазон
IS NULL Проверка на пустое значение
Расширенная фильтрация данных. AND и OR
Сложная фильтрация данных может использовать операторы AND и OR и операторов сравнения (=,<,>,<=,>=,<>).
Пусть таблица, содержит четыре самых продаваемых альбома. Нужно выбрать альбомы, классифицирующиеся как рок и проданы менее 50 миллионов копий.
SELECT * FROM albums WHERE genre='рок' AND sales_in_millions<=50 ORDER BY released
In/Between/Like
WHERE также поддерживает несколько специальных команд, позволяющих проверять наиболее часто используемые запросы. Вот они:
· IN –указывает диапазоны условий, которые должны выполнятся
· BETWEEN – проверяет, находится ли значение в указанном диапазоне
· LIKE – ищет по определенным паттернам
Например, если нужно выбрать альбомы с поп и соул музыкой, мы можем использовать IN("value1","value2").
SELECT * FROM albums WHERE genre IN ('pop','soul');
Если нужны альбомы, изданные между 1975 и 1985годами,то:
SELECT * FROM albums WHERE released BETWEEN 1975 AND 1985;
Функции
SQL использует много функций:
· COUNT() – возвращает количество строк
· SUM() – возвращает общую сумму числового столбца
· AVG() – возвращает среднее значение из множества значений
|
· MIN() / MAX() – получает минимальное / максимальное значение из столбца
Чтобы получить самый последний год в таблице нужно записать запрос:
SELECT MAX(released) FROM albums;
Подзапросы
Если нужно использовать результат от расчетов, не обойтись без вложенных запросов. Допустим нужно вывести artist, album и release year для старейшего альбома в таблице.
Получить эти конкретные столбцы:
SELECT artist, album, released FROM albums;
Получить самый ранний год:
SELECT MIN(released) FROM album;
Нужно объединить два запроса с помощью WHERE:
SELECT artist,album,released FROM albums
WHERE released = (SELECT MIN(released) FROM albums);
Объединение таблиц
В более сложных базах данных существует несколько таблиц, связанных друг с другом. Например, представлены две таблицы о видеоиграх (video_games) и разработчиков видеоигр (game_developers).
Таблица video_games
Таблица game_developers
В таблице video_games есть колонка разработчик (developer_id), но в ней содержится целое число, а не имя разработчика. Это число представляет собой идентификатор (id) соответствующего разработчика из таблицы разработчиков игр (game_developers), связывая логически два списка, что позволяет нам использовать информацию, хранящуюся в них обоих одновременно.
Если нужно создать запрос, возвращающий все, что нужно знать об играх, можно использовать INNER JOIN для связи колонок из обеих таблиц.
SELECT video_games.name,
video_games.genre,
game_developers.name,
game_developers.country
FROM video_games
INNER JOIN game_developers
ON video_games.developer_id = game_developers.id;
Это самый простой и наиболее распространенный тип JOIN. Есть несколько других вариантов.
Алиасы
В примере две колонки называемые name. Можно установить псевдоним одного из повторяющихся столбцов, например, name из таблицы game_developers будет называться developer.
Можно сократить запрос задав псевдонимы имен таблиц: video_games назовем games, game_developers – devs:
SELECT games.name,
games.genre,
devs.name AS developer,
devs.country
FROM video_games AS games
INNER JOIN game_developers AS devs
ON games.developer_id = devs.id;
Обновление данных
В SQL с помощью инструкции UPDATE изменяются данные в некоторых строках. Инструкция UPDATE состоит из:
|
· Таблицы, в которой находится значение для замены;
· Имен столбцов и их новых значений;
· Выбранные с помощью WHERE строки, которые обновятся. Если этого не сделать, то изменятся все строки в таблице.
Ниже приведена таблица tv_seriesс сериалами с их рейтингом. В таблицу закралась маленькая ошибка: хотя сериал Игра престолов и описывается как комедия, он на самом деле ей не является. Исправление
Данные таблицы tv_series
UPDATE tv_series SET genre = 'драма' WHERE id = 2;
Удаление данных
Удаление строки таблицы с помощью SQL происходит при помощи выбора таблицы и строки, которую нужно удалить. Удаление из предыдущего примера последней строки в таблице tv_series делается с помощью инструкции DELETE
DELETE FROM tv_series WHERE id = 4
Будьте осторожными при написании инструкции DELETE и убедитесь, что условие WHERE присутствует, иначе все строки таблицы будут удалены!
Удаление таблицы
Удаление всех строк с сохранением таблицы выполняет команда TRUNCATE:
TRUNCATE TABLE table_name;
Удаление всей таблицы – DROP:
DROP TABLE table_ name;
Ошибки и исключения
Существуют два типа ошибок: синтаксические и семантические.
Синтаксические ошибки во время трансляции диагностируются и, указывая место ошибки, пишется пояснительный текст по смыслу ошибки.
Семантические ошибки определяются в процессе интерпретации программы. Они обнаруживаются, когда нет возможности реализовать данную программную конструкцию или когда на тестовых данных или при эксплуатации программы выдаются неправильные результаты. Первый тип ошибок и при тестировании находятся и исправляются в процессе отладки программы.
При решении некоторых задач возможна некорректная подача данных или недопустимая ситуация. В этом случае предусматривается ситуация «исключения». Для обработы ситуации исключения многие языки программирования предусматривают свои инструментальные средства.
Так, для вычисления обратного значения Х можно написать следующий фрагмент программы
X=int(input())
print(1/X)
При вводе значения 2 программа выдаст следующие значения
При вводе 0 программа выдаст следующий фрагмент
Для работы с исключительными ситуациями используется конструкция
try:
# фрагмент программы
…
except: # except имя ошибки: - здесь определяется тип ошибки и реакция
# фрагмент программы, работающий в случае прерывания
|
…
else: #
# фрагмент программы, работающий в случае отсутствия прерываний
…
finally:
# фрагмент программы, работающий в любом
…
Пример решения задачи с обработкой прерывания
try:
X=int(input())
print(1/X)
except:
print(“Error dividing by zero”)
На экране появится следующее изображение
Инструкция raise позволяет программисту принудительно сгенерировать исключение, которое может использоваться при отладке программы.
Классы
Python ограничен в множественном наследовании в классах. Внутренние переменные и внутренние методы классов начинаются с двух знаков нижнего подчеркивания «__» (например «__myprivatevar»). Можно присвоить значение переменной класса извне. Пример:
class Myclass:
common = 10
def __init__(self):
self. myvariable = 3
def myfunction (self, arg1, arg2):
return self. myvariable
# Здесь объявили класс Myclass.
# Функция __init__ вызывается автоматически при инициализации классов.
classinstance = Myclass ()
# Инициализирован класс и переменная myvariable принимает значение 3 как заявлено в методе инициализации
classinstance. myfunction(1, 2)
#Метод myfunction класса Myclass возвращает значение переменной myvariable
3
# Переменная common объявлена во всех классах
classinstance2 = Myclass ()
classinstance.common # 10
classinstance2.common # 10
# Поэтому, если изменить ее значение в классе Myclass изменятся
# и ее значения в объектах, инициализированных классом Myclass
Myclass.common = 30
classinstance.common # 30
classinstance2.common # 30
# А здесь не изменяется переменная класса. Вместо этого объявляется
# в объекте и присваивается ей новое значение
classinstance.common = 10
classinstance.common # 10
classinstance2.common # 30
Myclass. common = 50
# Теперь изменение переменной класса не коснется переменных объектов
# этого класса
classinstance.common # 10
classinstance2.common # 50
# Следующий класс является наследником класса Myclass, наследуя его
# свойства и методы, к тому же класс может наследоваться из нескольких
# классов, в этом случае запись такая: class Otherclass(Myclass1, Myclass2,
# MyclassN)
class Otherclass (Myclass):
def __init__(self, arg1):
self.myvariable = 3
print arg1
classinstance = Otherclass("hello")
hello
classinstance. myfunction(1, 2) # 3
# Этот класс не имеет совйтсва test, но мы можем
# объявить такую переменную для объекта. Причем
# эта переменная будет членом только classinstance.
classinstance. test = 10 # classinstance.test – 10
|
Исключения в Python имеют структуру try-except [exceptionname]:
def somefunction():
try:
10 / 0 # Деление на ноль вызывает ошибку
Except ZeroDivisionError:
# Но программа не "Выполняет недопустимую операцию"
# А обрабатывает блок соответствующий ошибке «ZeroDivisionError»
Print "Oops, invalid."
fnexcept ()
Oops, invalid.
ПОДГОТОВКА К ОЛИМПИАДАМ ПО ИНФОРМАТИКЕ
|
|
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!