W Cat - SQL за 24 часа
- Название:SQL за 24 часа
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
W Cat - SQL за 24 часа краткое содержание
SQL за 24 часа - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Ключевое слово NOT UNIQUE используется как отрицание UNIQUE.
Пример _____________________________________ Значение ______
WHERE NOT UNIQUE (SELECT SALARY Проверка SALARY на наличие неуни-
FROM EMPLOYEE_TBL) кальных значений
Арифметические операции используются в SQL точно так же, как и в большинстве других языков. Таких операций четыре:
• + (сложение);
• * (умножение);
• - (вычитание);
• / (деление).
Сложение представлено знаком "+".
Пример _____________________________ Значение __________________
SELECT SALARY + BONUS Значение SALARY складывается со значе-
FROM EMPLOYEE_PAY_TBL; нием BONUS для каждой строки данных
SELECT SALARY FROM EMPLOYEE_PAY_TBL Выбор строк, ДЛЯ которых сумма
WHERE SALARY + BONUS > '40000'; SALARY И BONUS Превышает 40000
Вычитание представлено знаком "-".
Пример ________________________ Значение ________________
SELECT SALARY - BONUS Значение BONUS вычитается из зна-
FROM EMPLOYEE_PAY_TBL; чения SALARY
SELECT SALARY FROM EMPLOYEE_PAY_TBL Выбор строк, для которых разность
WHERE SALARY - BONUS > '40000'; SALARY И BONUS Превышает 40000
Умножение представлено знаком "*".
Пример _______________________ Значение _______________________
SELECT SALARY * 10 Значение SALARY умножается на 10
FROM EMPLOYEE_PAY_TBL;
SELECT SALARY FROM EMPLOYEE_PAY_TBL Выбор строк, для которых значение
WHERE SALARY * 10 > '40000',- SALARY, умноженное на 10, превышает
40000
В следующем примере текущее значение зарплаты умножается на 1.1, что означает увеличение на 10%.
SELECT EMP_ID, PAY_RATE, PAY_RATE * 1.1
FROM EMPLOYEE_PAY_TBL
WHERE PAY_RATE IS NOT NULL;
EMP_ID PAY_RATE PAY_RATE*1.1
44234688Э 14.75 16.225
220984332 11 12.1
443679012 15 16.5
3 строки выбраны.
Деление представлено знаком "/" (косой чертой).
Пример ________________________________ Значение _______
SELECT SALARY /10 Значение SALARY делится на 10
FROM EMPLOYEE_PAY_TBL;
SELECT SALARY FROM EMPLOYEE_PAY_TBL Выбор строк, для которых значение
WHERE SALARY / 10 > '40000'; SALARY, деленное на 10, превышает 40000
Арифметические операции можно комбинировать. Вспомните о порядке операций из курса элементарной математики. Сначала выполняются операции умножения и деления, а затем - операции сложения и вычитания. Пользователь может управлять порядком выполнения операций в выражении только с помощью скобок. Заключенное в скобки выражение означают необходимость рассматривать выражение как единый блок.
Порядок выполнения операций (приоритет операций) задает порядок, в котором обрабатываются выражения в математических выражениях или встроенных функциях SQL.
Выражение ___________ Результат ___________
1 + 1*5 6
(1 + 1) * 5 10
10-4/2+1 9
(10 - 4) / (2 + 1) 2
В следующих примерах использование скобок не влияет на результат, поскольку используется только умножение и деление. Эти операции имеют одинаковые приоритеты. Маловероятно, чтобы нашлась какая-нибудь реализация SQL, не следующая в этом вопросе стандартам ANSI, но в принципе такое возможно.
Выражение ___________ Результат _________
4*6/2 12
(4 * 6) / 2 12
4 * (6 / 2) 12
Вот еще несколько примеров.
SELECT SALARY * 10 + 1000
FROM EMPLOYEE_PAY_TBL
WHERE SALARY > 20000;
SELECT SALARY / 52 + BONUS
FROM EMPLOYEE_PAY_TBL;
SELECT (SALARY - 1000 + BONUS) / 52 * 1.1
FROM EMPLOYEE_PAY_TBL;
Следующий пример выглядит весьма странно с точки зрения его смысла.
SELECT SALARY
FROM EMPLOYEE_PAY_TBL
WHERE SALARY < BONUS *3+10/2-50;
Поскольку скобки в данном случае не используются, задаваемое ключевым словом WHERE выражение обрабатывается в порядке приоритетов операций.
При использовании в выражении нескольких арифметических операций учитывайте порядок выполнения арифметических операций, поскольку неправильно расставленные скобки обычно приводят к неправильным результатам
Вы ознакомились с примерами использования различного типа операций в SQL. Вы узнали, что операции могут использоваться по отдельности и в комбинации одна с другой, включая и операции конъюнкции и дизъюнкции AND и OR. Вы рассмотрели основные арифметические операции - сложение, вычитание, умножение и деление. Операции сравнения используются для проверки равенства, неравенства, отношений "больше" и "меньше". К логическим операциям относятся BETWEEN, IN, LIKE, EXIST, ANY и ALL. Вы уже должны знать, как добавить элементы в условия, заданные в операторах SQL, чтобы извлечь из базы данных именно те данные, которые вам нужны.
Можно ли иметь несколько ключевых слов AND в выражении, заданном ключевым словомWHERE?
Да. На самом деле любая из операций может использоваться несколько раз. Например,
SELECT SALARY
FROM EMPLOYEE_PAY_TBL
WHERE SALARY > 20000
AND BONUS BETWEEN 1000 AND 3000
AND POSITION = 'VICE PRESIDENT';
Что будет, если в выражении ключевого словаWHERE поместить некоторое значение типаNUMBER в кавычки?
Ваш запрос все равно будет выполнен. Для значений числовых полей кавычки допустимы, но не обязательны.
Задания практических занятий разделены на тесты и упражнения. Тесты пред-нззнзчены для проверки общего уровня понимания рассмотренного материзлз. Упрзжнения дзют возможность применить нз прзктике идеи, обсуждавшиеся в ходе текущего урока, в комбинации с идеями из предыдущих уроков. Мы рекомендуем ответить на тестовые вопросы и выполнить упражнения прежде, чем продолжать дальнейшее чтение книги. Ответы можно проверить по Приложению Б, "Ответы".
1. Верно ли следующее утверждение: "При использовании ключевого слова OR оба условия должны возвращэть TRUE?"
2. Верно ли следующее утверждение: "При использовании ключевого слова IN данное значение должно совпадать со всемиуказанными в списке?"
3. Верно ли следующее утверждение: "Ключевое слово AND можно использовать в выражениях ключевых слов SELECT и WHERE?"
4. Какие ошибки (если они есть вообще) допущены в следующих операторах SELECT?
а. SELECT SALARY
FROM EMPLOYEE_PAY_TBL
WHERE SALARY BETWEEN 20000, 30000;
6. SELECT SALARY + DATE_HIRE FROM EMPLOYEE_PAYJTBL;
B. SELECT SALARY, BONUS FROM EMPLOYEE_PAY_TBL WHERE DATE_HIRE BETWEEN 22-SEP-99 AND 23-NOV-99 AND POSITION = 'ПРОДАЖА' OR POSITION = 'МАРКЕТИНГ' AND EMPLOYEE_ID LIKE '%55%;
1. Рассмотрите следующую таблицу CUSTOMERJTBL.
DESCRIBECUSTQMER_TBL
Имя NULL? Тип
CUST_ID NOT NULL VARCHAR2(10)
CUST_NAME NOT NULL VARCHAR2(30)
CUST_ADDRESS NOT NULL VARCHAR2(20)
CUST_CITY NOT NULL VARCHAR2(12)
CUST_STATE NOT NULL CHAR(2)
CUST_ZIP NOT NULL CHAR(5)
CUST_PHONE NUMBER(10)
CUST_FAX NUMBER(10)
Запишите оператор SELECT, возвращающий коды клиентов (CUST_ID) и их имена (CUST_NAME), отсортированные по алфавиту, для клиентов с именами на "А" и "В", проживающих в штатах Индиана, Огайо, Мичиган и Иллинойс,
2. Рассмотрите следующую таблицу PRODUCTSJTBL.
DESCRIBE PRODUCTS_TBL
Имя NULL? Тип
PROD_ID NOT NULL VARCHAR2(10)
PROD_DESC NOT NULL VARCHAR2(25)
COST NOT NULL NUMBER(6,2)
Запишите оператор SELECT, возвращающий коды товара (PROD_ID), описание товара (PROD_DESC) и цену товара (COST). Ограничьте цену товара диапазоном от $1.00 до $12.50.
Читать дальшеИнтервал:
Закладка: