Какие из перечисленных выражений истинны в sql
ASCII, NCHAR, SOUNDEX, CHAR, PATINDEX, SPACE, CHARINDEX, QUOTENAME, STR, DIFFERENCE, REPLACE, STUFF, LEFT, REPLICATE, SUBSTRING, LEN, REVERSE, UNICODE, LOWER, RIGHT, UPPER, LTRIM, RTRIM
- Инструкция языка SQL — ORDER BY определяет:
применяется для сортировки результирующего набора данных по одной или нескольким колонкам. Для определения порядка сортировки используются ключевые слова ASC (по возрастанию) или DESC (по убыванию). По умолчанию данные сортируются по возрастанию.
- С помощью какого запроса можно удалить все записи из таблицы A?
Удаление записей осуществляется командой DELETE FROM A.
- Порядок строк в результатах SQL-запроса
- В случае, если оператор AND И OR совместно используются после WHERE …
- В таблице category поле id имеет тип integer. Какие из перечисленных ниже запросов вернут такой же результат, как и этот запрос: SELECT * FROM category WHERE id BETWEEN 2 AND 4 1) SELECT * FROM category WHERE id IN (2,3,4) 2) SELECT * FROM category WHERE
BETWEEN — данный оператор используется в условии WHERE для выбора данных между двумя значениями.
- Какие из перечисленных ниже подмножеств содержит SQL:
- Дана пустая таблица publisher с колонками id и name. На id стоит автоинкремент, а name имеет тип varchar(40). Какой из следующих запросов отработает некорректно:
- Какое из следующих ключевых слов используется в конструкции order by ?
COLLATE, ASC, DESC
10. Чему эквивалентен следующий запрос: SELECT * FROM product WHERE price BETWEEN 100 AND 200;
BETWEEN — данный оператор используется в условии WHERE для выбора данных между двумя значениями.
11. С помощью какого update-запроса можно обновить значения более чем одной колонки?
Вы можете обновить более чем одну колонку в команде UPDATE, путём перечисления более чем одного присваивания в предложении SET. Например:
UPDATE mytable SET a = 5, b = 3, c = 1 WHERE a > 0;
12. Дана пустая таблица, созданная с помощью выражения: create table simple_tab (col1 char[10] unique); Какой из перечисленных запросов не выполнится:
UNIQUE и PRIMARY KEY ограничители обеспечивает гарантию единственности столбца или набора столбцов.
13. Предположим, что создана таблица persons с колонками id, name, age. Какой запрос найдет средний возраст всех людей с возрастом не менее 18-ти лет?
SELECT AVG(age) AS «переменная»
FROM Person
WHERE (age >= 18)
14. Выберите верный синтаксис DELETE выражений.
DELETE FROM таблица
WHERE условия()
15. Базы данных – это
Базы данных — множество взаимосвязанных единиц данных, которые могут обрабатываться одной или несколькими прикладными системами.
16. Для чего предназначены запросы?
это средство выбора необходимой информации из базы данных.
17. Ключами поиска в системах управления базами данных (СУБД) называются:
поля, по значению которых осуществляется поиск
18. В чем состоит особенность поля «счетчик» в MS Access или поля типа IDENTITY в MS SQL Server?
Создает в таблице столбец идентификаторов. Это свойство указывается в инструкциях языка Transact-SQL CREATE TABLE и ALTER TABLE.
19. Таблицы в базах данных предназначены для:
для хранения данных базы
20. Содержит ли какую-либо информацию таблица, в которой нет ни одной записи?
пустая таблица содержит информацию о структуре базы данных
21. Наиболее распространенными на практике являются
реляционные базы данных
22. Содержит ли какую-либо информацию таблица, в которой нет полей?
таблица без полей существовать не может
23. В некоторой таблице есть колонка EX_COL. Записи таблицы для этой колонки содержат значения < 100, 200, 300, NULL >. Каким будет результат функции AVG(EX_COL)?
200
24. Какое ключевое слово используется для изменения объектов базы данных?
Alter
25. С помощью какого запроса можно поместить значение ‘Perez’ в поле LastName таблицы Persons?
Insert
26. Какими запросами можно получить все поля и записи таблицы Employers (возможно несколько вариантов)
27. Укажите запрос, который эквивалентен следующему: select * from numbers where textvalue = ‘one’
28. Какие из перечисленных выражений истинны?
29. Ключевое слово LIKE может быть использовано только для таких типов данных:
30. Какая из перечисленных команд не входит в подмножество DML языка SQL
К этой группе относятся операторы добавления, изменения и удаления записей.
31. Что из перечисленного не входит в функции администратора БД?
Проектирование базы данных.
Оптимизация производительности базы данных.
Обеспечение и контроль доступа к базе данных.
Обеспечение безопасности в базе данных.
Резервирование и восстановление базы данных.
Обеспечение целостности баз данных.
Обеспечение перехода на новую версию СУБД.
32. Какой из вариантов не является функцией СУБД?
33. Каким свойством из перечисленных не обладает иерархическая модель данных?
Данная модель характеризуется такими параметрами, как уровни, узлы, связи
34. Какой из перечисленных компонентов не входит в состав структурной части реляционной модели?
Структурный аспект (составляющая) — данные в базе данных представляют собой набор отношений.
Аспект (составляющая) целостности — отношения (таблицы) отвечают определенным условиям целостности. РМД поддерживает декларативные ограничения целостности уровня домена (типа данных), уровня отношения и уровня базы данных.
Аспект (составляющая) обработки (манипулирования) — РМД поддерживает операторы манипулирования отношениями (реляционная алгебра, реляционное исчисление).
35. Какая из приведенных операций не является основной?
36. Укажите, какой из вариантов приведенных запросов позволяет получить декартово произведение двух таблиц A и B (в обеих таблицах имеется поле ID и др)?
SELECT A*,B*
FROM A*,B*
37. Какое из приведенных высказываний о свойствах отношений ложно?
38. Какое из приведенных высказываний о внешних ключах ложно?
39. Какого типа операции соединения не существует?
Перекрестное соединение
Естественное соединение
Соединение объединения
Соединение посредством предиката
Соединение посредством имен столбцов
INNER JOIN
LEFT JOIN
RIGHT JOIN
FULL JOIN
UNION JOIN
40. Что из перечисленного не обязательно для приведения отношений к нормальной форме Бойса-Кодда(BCNF)?
Отношение находится в BCNF тогда и только тогда, когда каждая его нетривиальная и неприводимая слева функциональная зависимость имеет в качестве своего детерминанта некоторый потенциальный ключ.
Менее формально, переменная отношения находится в нормальной форме Бойса-Кодда тогда и только тогда, когда детерминанты всех ее функциональных зависимостей являются потенциальными ключами.
41. Имеется таблица Book, в которой есть столбец Author. Ниже приведен запрос на языке SQL. Выберите из приведенного списка ответ, наиболее точно описывающий результат выполнения запроса. SELECT Author As A, ‘Список авторов’ As D FROM Book
Вывести авторов(AS -псевдоним)в А и список авторов в D из книг
42. В базе данных имеется таблица Employees, содержащая столбец Commission (процент комиссии за заключение договора). Только некоторые сотрудники получают комиссию, у остальных в этом поле содержится значение NULL. Какое условие нужно указать в запросе SELECT,
43. В базе данных имеется таблица Employees, содержащая столбец AutoNum (строковый тип данных — гос.номер автомобиля сотрудника). В столбце AutoNum содержатся значения вида ‘A338МВ38’ Вы хотите найти сотрудника, у которого две первые цифры номера (т.е 2-3 симв
SELECT AutoNum
FROM Employees
WHERE (AutoNum LIKE ‘23%’)
«%» — данный знак является маской. Обозначает любые символы.
44. В базе данных имеется таблица Book со следующими столбцами: ID – уникальный числовой идентификатор издания, первичный ключ Title – название книги Author – автор книги (принимаем допущение, что у каждой книги только один автор) Publisher – издательство, в к
45. В базе данных имеются 2 таблицы – Students и Results. В таблице Students : ID – номер студенческого билета, первичный ключ; Name содержит ФИО студента. В таблице Results : ID – номер студенческого билета, внешний ключ, ссылающийся на таблицу Students;
46. Какое из ключевых слов запроса на выборку накладывает ограничение на группы?
47. Какое из ключевых слов запроса позволяет определить пустые наборы?
Null
48. Необходимо получить список фамилий из таблицы authors, начинающихся на D, заканчивающихся на k, и содержащих 1 букву в середине. Какой из перечисленных фрагментов кода позволит решить поставленную задачу?
D%. %k
«%» — данный знак является маской. Обозначает любые символы.
49. Какое из высказываний об операторе EXISTS ложно?
Нельзя использовать предложение COMPUTE и ключевое слово INTO
Указывает вложенный запрос для проверки существования строк.
Возвращает значение TRUE, если вложенный запрос содержит хотя бы одну строку.
50. Необходимо создать составной индекс name для таблицы authors по полям f_name и s_name. Какой из перечисленных фрагментов кода позволит решить поставленную задачу?
CREATE INDEX Publ_Start_date
ON Stepanov.Books
COMMENT ON INDEX
Stepanov.Publ_Start_date is
51. Какой из перечисленных операторов позволяет объединить результаты нескольких запросов?
Union
52. Какая из перечисленных функций позволяет удалить все пробелы справа?
LTRIM (строка): Удаляет все пробелы с начала строки.
RTRIM (строка): Удаляет все пробелы в конце строки.
53. Необходимо вычислить средний объем продаж (advance) книг и годовой доход (sales) от продажи книг по всем категориям (type) из таблицы titles. Какой из перечисленных фрагментов кода позволит решить поставленную задачу?
54. Какое(ие) из перечисленных слов связывает первичные и внешние ключи?
Связи «один ко многим»
Связи «многие ко многим»
Связи «один к одному»
55. Необходимо отобрать все записи из таблицы банков (banks) и те записи из таблицы договоров (contracts), значения id которых равны значениям id_contract в таблице банков. Какой из перечисленных фрагментов кода позволит решить поставленную задачу?
56. Каково функциональное назначение индексов?
объект базы данных, создаваемый с целью повышения производительности поиска данных.
57. Необходимо создать таблицу table1, состоящую из двух полей: field1 и field2 с данными целого типа. Полю следует field1 назначить первичный ключ, полю field2 — вторичный ключ и связать с полем field1 таблицы table2. Какой из перечисленных фрагментов кода п
Primary Key
58. Имеется таблица Book, содержащая среди прочих столбцы Pub_Year (год издания книги) и Publisher (издательство, в котором книга вышла). Необходимо увеличить на единицу год издания всех книг, выпущеных в издательстве «Мысль». С помощью какого запроса или
INSERT Book
SET Pub_Year = Pub_Year+1
WHERE Publisher =«Мысль»
59. В базе данных имеется единственная таблица Book с первичным ключом, созданном на столбце ID. К чему приведет выполнение выражения DELETE FROM Book?
Таблица удалится
- Что из перечисленного НЕ свойственно представлениям?
представление не является самостоятельной частью набора данных
Содержимое представления динамически вычисляется на основании данных, находящихся в реальных таблицах. Изменение данных в реальной таблице БД немедленно отражается в содержимом всех представлений, построенных на основании этой таблицы.
Основы SQL для выражений запроса, применяемых в ArcGIS
This topic describes the elements of common selection queries in ArcGIS. Выражения запросов в ArcGIS используют синтаксис SQL.
Часто используемые запросы: поиск строк
Строковые значения в выражениях всегда заключаются в одинарные кавычки, например:
STATE_NAME = 'California'
Строки в выражениях чувствительны к регистру. Чтобы выполнить поиск, зависящий от регистра символов, можно использовать функцию SQL для преобразования всех значений в одинаковый регистр. Для источников данных на основе файлов, таких как базы геоданных или шейп-файлы, для задания регистра выборки можно использовать функции UPPER или LOWER. Например, при помощи следующего выражения будет выбран штат, имя которого написано как ‘Rhode Island’ или ‘RHODE ISLAND’:
UPPER(STATE_NAME) = 'RHODE ISLAND'
Если строка содержит одинарную кавычку, вам в первую очередь потребуется использовать другую одинарную кавычку как символ управляющей последовательности, например:
NAME = 'Alfie''s Trough'
При помощи оператора LIKE (вместо оператора = ) строится поиск частей строк. Например, данное выражение выбирает Mississippi и Missouri среди названий штатов США:
STATE_NAME LIKE 'Miss%'
Символ процента (%) означает, что на этом месте может быть что угодно – один символ или сотня, или ни одного. Если вы хотите использовать групповой символ, обозначающий один любой символ, используйте символ подчёркивания (_). Например, данное выражение найдет Catherine Smith и Katherine Smith:
OWNER_NAME LIKE '_atherine smith'
Можно также использовать операторы больше (>), меньше (<), больше или равно (>=), меньше или равно (<=), не равно (<>) и BETWEEN, чтобы выбирать строковые значения на основании их сортировки. Например, этот запрос выберет все города в покрытии, названия которых начинаются с букв от М до Z:
CITY_NAME >= 'M'
Строковые функции могут использоваться для форматирования строк. Например функция LEFT вернет определенное количество символов начиная с левого края строки. Данный запрос вернет все штаты, начинающиеся на букву A:
LEFT(STATE_NAME,1) = 'A'
Список поддерживаемых функций вы найдете в документации по своей СУБД.
Часто используемые выражения: поиск значений NULL
Вы можете использовать ключевое слово NULL, чтобы отбирать объекты и записи, содержащие пустые поля. Перед ключевым словом NULL всегда стоит IS или IS NOT. Например, чтобы найти города, для которых не была введена численность населения по данным переписи 1996 года, можно использовать следующее выражение:
POPULATION IS NULL
Или, чтобы найти все города, для которых указана численность населения, используйте:
POPULATION96 IS NOT NULL
Часто используемые выражения: поиск чисел
Точка (.) всегда используется в качестве десятичного разделителя, независимо от региональных настроек. В выражениях в качестве разделителя десятичных знаков нельзя использовать запятую.
Вы можете запрашивать цифровые значения, используя операторы равно (=), не равно (<>), больше (>), меньше (<), больше или равно (>=) и меньше или равно (<=), а также BETWEEN (между), например:
POPULATION >= 5000
Числовые функции можно использовать для форматирования чисел. Например функция ROUND округлит до заданного количества десятичных знаков данные в файловой базе геоданных:
ROUND(SQKM,0) = 500
Список поддерживаемых числовых функций вы найдете в документации по своей СУБД.
Даты и время
Общие правила и часто используемые выражения
В таких источниках данных, как база геоданных, даты хранятся в полях даты–времени. А в покрытиях ArcInfo и шейп-файлах этого нет. Поэтому большинство из примеров синтаксиса запроса, представленных ниже, содержит ссылки на время. В некоторых случаях часть запроса, касающаяся времени, может быть без всякого вреда пропущена, когда известно, что поле содержит только даты; в других случаях её необходимо указывать, или запрос вернет синтаксическую ошибку.
Поиск полей с датой требует внимания к синтаксису, необходимому для источника данных. Если вы создаете запрос в Конструкторе запросов в режиме Условие, правильный синтаксис будет сгенерирован автоматически. Ниже приведен пример запроса, который возвращает все записи после 1 января 2011, включительно, из файловой базы геоданных:
INCIDENT_DATE >= date '2011-01-01 00:00:00'
Примечание:
Даты хранятся в исходной базе данных относительно 30 декабря 1899 года, 00:00:00. Это действительно для всех источников данных, перечисленных здесь.
Цель этого подраздела – помочь вам в построении запросов по датам, но не по значениям времени. Когда со значением даты хранится не нулевое значение (например January 12, 1999, 04:00:00), то запрос по дате не возвратит данную запись, поскольку если вы задаете в запросе только дату для поля в формате дата–время, недостающие поля времени заполняются нулями, и выбраны будут только записи, время которых соответствует 12:00:00 полуночи.
Таблица атрибутов отображает дату и время в удобном для пользователя формате, согласно вашим региональным установкам, а не в формате исходной базы данных. Это подходит для большинства случаев, но имеются и следующие недостатки:
- Строка, отображаемая в SQL-запросе, может иметь только небольшое сходство со значением, показанным в таблице, особенно когда в нее входит время. Например время, введенное как 00:00:15, будет отображаться в атрибутивной таблице как 12:00:15 AM с региональными настройками США, а сопоставимый синтаксис запроса должен быть Datefield = ‘1899-12-30 00:00:15’.
- Атрибутивная таблица не имеет сведений об исходных данных, пока вы не сохраните изменения. Она сначала попытается отформатировать значения в соответствии с ее собственным форматом, затем, после сохранения изменений, она попытается подогнать получившиеся результаты в соответствии с базой данных. По этой причине, вы можете вводить время в шейп-файл, но обнаружите, что оно удаляется при сохранении ваших изменений. Поле будет содержать значение ‘1899-12-30’, которое будет отображаться как 12:00:00 AM или эквивалентно, в зависимости от ваших региональных настроек.
Синтаксис даты-времени для многопользовательских баз геоданных
Informix
Datefield = 'yyyy-mm-dd hh:mm:ss'
Часть запроса hh:mm:ss не может быть опущена, даже если она равна 00:00:00.
Oracle
Datefield = date 'yyyy-mm-dd'
Имейте в виду, что записи, где время не равно нулю, возвращены не будут.
Альтернативный формат при запросах к датам в Oracle следующий:
Datefield = TO_DATE('yyyy-mm-dd hh:mm:ss','YYYY-MM-DD HH24:MI:SS')
Второй параметр ‘YYYY-MM-DD HH24:MI:SS’ описывает используемый при запросах формат. Актуальный запрос будет выглядеть так:
Datefield = TO_DATE('2003-01-08 14:35:00','YYYY-MM-DD HH24:MI:SS')
Вы можете использовать более короткую версию:
TO_DATE('2003-11-18','YYYY-MM-DD')
И снова записи, где время не равно нулю, не будут возвращены.
SQL server
Datefield = 'yyyy-mm-dd hh:mm:ss'
Часть запроса hh:mm:ss может быть опущена, когда в записях не установлено время.
Альтернативный формат следующий:
Datefield = 'mm/dd/yyyy'
IBM DB2
Datefield = TO_DATE('yyyy-mm-dd hh:mm:ss','YYYY-MM-DD HH24:MI:SS')
Часть запроса hh:mm:ss не может быть опущена, даже если время равно 00:00:00.
PostgreSQL
Datefield = TIMESTAMP 'YYYY-MM-DD HH24:MI:SS' Datefield = TIMESTAMP 'YYYY-MM-DD'
Вы должны указать полностью временную метку при использовании запросов типа «равно», в противном случае не будет возвращено никаких записей. Вы можете успешно делать запросы со следующими выражениями, если запрашиваемая таблица содержит записи дат с точными временными метками (2007-05-29 00:00:00 или 2007-05-29 12:14:25):
select * from table where date = '2007-05-29 00:00:00';
select * from table where date = '2007-05-29 12:14:25';
При использовании других операторов, таких как больше, меньше, больше или равно, или меньше или равно, вам не нужно указывать время, но это можно сделать для повышения точности. Оба эти выражения сработают:
select * from table where date < '2007-05-29';
select * from table where date < '2007-05-29 12:14:25';
Файловые базы геоданных, шейп-файлы, покрытия и прочие файловые источники данных
Перед датами в файловых базах геоданных, шейп-файлах и покрытиях должно стоять date .
Datefield = date 'yyyy-mm-dd'
Файловые базы геоданных поддерживают использование времени в поле даты, поэтому его можно добавить в выражение:
Datefield = date 'yyyy-mm-dd hh:mm:ss'
Шейп-файлы и покрытия не поддерживают использование времени в поле даты.
Примечание:
SQL, используемый в файловой базе геоданных, базируется на стандарте SQL-92.
Известные ограничения
Построение запросов к датам, находящимся в левой части (первой таблице) соединения, работает только для файловых источников данных, таких как файловые базы геоданных, шейп-файлы и таблицы DBF. Но возможен обходной путь при работе с другими, не файловыми, источниками, такими как многопользовательские данные, как описано ниже.
Запрос к датам левой части соединения будет выполнен успешно, если использовать ограниченную версию SQL, разработанную для файловых источников данных. Если вы не используете такой источник данных, можете перевести выражение для использования этого формата. Нужно обеспечить, чтобы выражение запроса включало поля из более чем одной присоединенной таблицы. Например, если соединены класс пространственных объектов и таблица (FC1 и Table1), и они поступают из многопользовательской базы геоданных, следующее выражение не будет выполнено или не вернет данные:
FC1.date = date #01/12/2001# FC1.date = date '01/12/2001'
Чтобы запрос был выполнен успешно, можно создать вот такой запрос:
FC1.date = date '01/12/2001' and Table1.OBJECTID > 0
Так как запрос включает поля из обеих таблиц, будет использована ограниченная версия SQL. В этом выражении Table1.OBJECTID всегда > 0 для записей, которые сопоставлены в процессе создания соединения, поэтому это выражение всегда верно для всех строк, содержащих сопоставления соединения.
Чтобы быть уверенным, что каждая запись с FC1.date = date '01/12/2001' выбрана, используйте следующий запрос:
FC1.date = date '01/12/2001' and (Table1.OBJECTID IS NOT NULL OR Table1.OBJECTID IS NULL)
Такой запрос будет выбирать все записи с FC1.date = date '01/12/2001', независимо от того, есть ли сопоставление при соединении для каждой отдельной записи.
Комбинированные выражения
Составные запросы могут комбинироваться путем соединения выражений операторами AND (И) и OR (ИЛИ). Вот пример запроса для выборки всех домов с общей площадью более 1500 квадратных футов и гаражом более чем на три машины:
AREA > 1500 AND GARAGE > 3
Когда вы используете оператор OR (ИЛИ), по крайней мере одно из двух разделенных оператором выражений, должно быть верно для выбираемой записи, например:
RAINFALL < 20 OR SLOPE >35
Используйте оператор NOT (НЕ) в начале выражения, чтобы найти объекты или записи, не соответствующие условию выражения, например:
NOT STATE_NAME = 'Colorado'
Оператор NOT можно комбинировать с AND и OR. Вот пример запроса, выбирающего все штаты Новой Англии за исключением штата Maine:
SUB_REGION = 'New England' AND NOT STATE_NAME = 'Maine'
Вычисления
Вычисления можно включить в запросы с помощью математических операторов +, –, * и /. Можно использовать вычисление между полем и числом, например:
AREA >= PERIMETER * 100
Вычисления также могут производиться между полями. Например чтобы найти районы с плотностью населения меньшим или равным 25 человек на 1 квадратную милю, можно использовать вот такой запрос:
POP1990 / AREA
Приоритет выражения в скобках
Выражения выполняются в последовательности, определяемой стандартными правилами. Например, заключённая в круглые скобки часть выражения выполняется раньше, чем часть выражения за скобками.
HOUSEHOLDS > MALES * (POP90_SQMI + AREA)
Вы можете добавить скобки в режиме Редактирование SQL вручную, или использовать команды Группировать и Разгруппировать в режиме Условие, чтобы добавить или удалить их.
Подзапросы
Подзапрос – это запрос, вложенный в другой запрос и поддерживаемый только в базах геоданных. Подзапросы могут использоваться в SQL-выражении для применения предикативных или агрегирующих функций, или для сравнения данных со значениями, хранящимися в другой таблице и т.п. Это может быть сделано с помощью ключевых слов IN или ANY. Например этот запрос выберет только те страны, которых нет в таблице indep_countries:
COUNTRY_NAME NOT IN (SELECT COUNTRY_NAME FROM indep_countries)
Примечание:
Покрытия, шейп-файлы и прочие файловые источники данных, не относящиеся к базам геоданных, не поддерживают подзапросы. Подзапросы, выполняемые на версионных многопользовательских классах объектов и таблицах, не возвращают объекты, которые хранятся в дельта-таблицах. Файловые базы геоданных имеют ограниченную поддержку подзапросов, описанных в данном разделе, в то время, как многопользовательские базы геоданных поддерживают их полностью. Информацию обо всех возможностях подзапросов к многопользовательским базам геоданных смотрите в документации по своей СУБД.
Этот запрос возвратит объекты, где GDP2006 больше, чем GDP2005 любых объектов, содержащихся в countries (странах):
"GDP2006" > (SELECT MAX("GDP2005") FROM countries)
Поддержка подзапросов в файловых базах геоданных ограничена следующим:
-
Скалярные подзапросы с операторами сравнения. Скалярный подзапрос возвращает одно значение, например:
"GDP2006" > (SELECT MAX("GDP2005") FROM countries)
EXISTS (SELECT * FROM indep_countries WHERE "COUNTRY_NAME" = 'Mexico')
Операторы
Ниже приведен полный список операторов, поддерживаемых файловыми базами геоданных, шейп-файлами, покрытиями и прочими файловыми источниками данных. Они также поддерживаются в многопользовательских базах геоданных, хотя для этих источников данных может требоваться иной синтаксис. Кроме нижеперечисленных операторов, многопользовательские базы геоданных поддерживают дополнительные возможности. Более подробную информацию см. в документации к вашей СУБД.
Арифметические операторы
Для сложения, вычитания, умножения и деления числовых значений можно использовать арифметические операторы.
Арифметический оператор умножения
Арифметический оператор деления
Арифметический оператор сложения
Арифметический оператор вычитания
Операторы сравнения
Операторы сравнения используются для сравнения одного выражения с другим.
Меньше . Может использоваться со строками (сравнение основывается на алфавитном порядке) и для числовых вычислений, а также дат.
Меньше или равно. Может использоваться со строками (сравнение основывается на алфавитном порядке) и для числовых вычислений, а также дат.
Не равно . Может использоваться со строками (сравнение основывается на алфавитном порядке) и для числовых вычислений, а также дат.
Больше . Может использоваться со строками (сравнение основывается на алфавитном порядке) и для числовых вычислений, а также дат.
Больше или равно. Может использоваться со строками (сравнение основывается на алфавитном порядке) и для числовых вычислений, а также дат.
[NOT] BETWEEN x AND y
Выбирает записи, если они содержат значение больше или равное x, но меньше или равное y. Если в начале указано NOT, выбирает запись, содержащую значение вне указанного диапазона. Например это выражение выбирает все записи со значениями, которые больше или равны 1 и меньше или равны 10:
"OBJECTID" BETWEEN 1 AND 10
Вот эквивалент этого выражения:
"OBJECTID" >= 1 AND OBJECTID
Однако, выражение с оператором BETWEEN обрабатывается быстрее, если у вас поле проиндексировано.
Возвращает TRUE (истинно), если подзапрос возвращает хотя бы одну запись; в противном случае возвращает FALSE (ложно). Например, данное выражение вернет TRUE, если поле OJBECTID содержит значение 50:
EXISTS (SELECT * FROM parcels WHERE "OBJECTID" = 50)
EXISTS поддерживается только в файловых и многопользовательских базах геоданных.
Выбирает запись, если она содержит одну из нескольких строк или значений в поле. Если впереди стоит NOT, выбирает запись, где нет таких строк или значений. Например, это выражение будет искать четыре разных названия штатов:
"STATE_NAME" IN ('Alabama', 'Alaska', 'California', 'Florida')
Выбирает запись, если там в определенном поле есть нулевое значение. Если перед NULL стоит NOT, выбирает запись, где в определенном поле есть какое-то значение.
x [NOT] LIKE y [ESCAPE 'escape-character']
Используйте оператор LIKE (вместо оператора = ) с групповыми символами, если хотите построить запрос по части строки. Символ процента (%) означает, что на этом месте может быть что угодно – один символ или сотня, или ни одного. Если вы хотите использовать групповой символ, обозначающий один любой символ, используйте символ подчёркивания (_). Если вам нужен доступ к несимвольным данным, используйте функцию CAST. Например, этот запрос возвращает числа, начинающиеся на 8, из целочисленного поля SCORE_INT:
CAST ("SCORE_INT" AS VARCHAR) LIKE '8%'
Для включения символа (%) или (_) в вашу строку поиска, используйте ключевое слово ESCAPE для указания другого символа вместо escape, который в свою очередь обозначает настоящий знак процента или подчёркивания. Например данное выражение возвращает все строки, содержащие 10%, такие как 10% DISCOUNT или A10%:
"AMOUNT" LIKE '%10$%%' ESCAPE '$'
Логические операторы
Соединяет два условия и выбирает запись, в которой оба условия являются истинными. Например, выполнение следующего запроса выберет все дома с площадью более 1 500 квадратных футов и гаражом на две и более машины:
"AREA" > 1500 AND "GARAGE" > 2
Соединяет два условия и выбирает запись, где истинно хотя бы одно условие. Например выполнение следующего запроса выберет все дома с площадью более 1,500 квадратных футов или гаражом на две и более машины:
"AREA" > 1500 OR "GARAGE" > 2
Выбирает записи, не соответствующие указанному выражению. Например это выражение выберет все штаты, кроме Калифорнии (California):
NOT "STATE_NAME" = 'California'
Операторы строковой операции
Возвращает символьную строку, являющуюся результатом конкатенации двух или более строковых выражений.
FIRST_NAME || MIDDLE_NAME || LAST_NAME
Функции
Ниже приведен полный список функций, поддерживаемых файловыми базами геоданных, шейп-файлами, покрытиями и прочими файловыми источниками данных. Функции также поддерживаются в многопользовательских базах геоданных, хотя в этих источниках данных может использоваться иной синтаксис или имена функций. Кроме нижеперечисленных функций, многопользовательские базы геоданных поддерживают дополнительные возможности. Более подробную информацию см. в документации к вашей СУБД.
Функции дат
Возвращает текущую дату.
EXTRACT (extract_field FROM extract_source)
Возвращает фрагмент extract_field из extract_source. Аргумент extract_source является выражением даты–времени. Аргументом extract_field может быть одно из следующих ключевых слов: YEAR, MONTH, DAY, HOUR, MINUTE или SECOND.
Возвращает текущую дату.
Строковые функции
Аргументы, обозначаемые string_exp, могут быть названием столбца, строковой константой или результатом другой скалярной функции, где исходные данные могут быть представлены в виде символов.
Аргументы, обозначаемые character_exp, являются строками символов переменной длины.
Аргументы, указанные как start или length могут быть числовыми постоянными или результатами других скалярных функций, где исходные данные представлены числовым типом.
Строковые функции, перечисленные здесь, базируются на 1; то есть, первым символом в строке является символ 1.
CHAR_LENGTH(string_exp)
Возвращает длину строкового выражения в символах.
LOWER(string_exp)
Возвращает строку, идентичную string_exp, в которой все символы верхнего регистра изменены на символы нижнего регистра.
POSITION(character_exp IN character_exp)
Возвращает место первого символьного выражения во втором символьном выражении. Результат – число с точностью, определяемой реализацией и коэффициентом кратности 0.
SUBSTRING(string_exp FROM start FOR length)
Возвращает символьную строку, извлекаемую из string_exp, начинающуюся с символа, номер которого определяется аргументом start, а длина строки составляет столько символов, сколько указано в аргументе length .
TRIM(BOTH | LEADING | TRAILING trim_character FROM string_exp)
Возвращает строку string_exp укороченную на количество символов, указанное в аргументе trim_character, с начала, с конца или с обоих концов строки.
UPPER(string_exp)
Возвращает строку, идентичную string_exp, в которой все символы нижнего регистра изменены на символы верхнего регистра.
Числовые функции
Все числовые функции возвращают числовые значения.
Аргументы, обозначенные numeric_exp, float_exp или integer_exp могут быть именем столбца, результатом другой скалярной функции или числовой константой, где исходные данные могут быть представлены числовым типом.
ABS(numeric_exp)
Возвращает абсолютное значение numeric_exp.
ACOS(float_exp)
Возвращает угол в радианах, равный арккосинусу float_exp.
ASIN(float_exp)
Возвращает угол в радианах, равный арксинусу float_exp.
ATAN(float_exp)
Возвращает угол в радианах, равный арктангенсу float_exp.
CEILING(numeric_exp)
Возвращает наименьшее целое значение, большее или равное numeric_exp.
COS(float_exp)
Возвращает косинус float_exp, где float_exp как угол, выраженный в радианах.
FLOOR(numeric_exp)
Возвращает наибольшее целое значение, меньшее или равное numeric_exp.
LOG(float_exp)
Возвращает натуральный логарифм float_exp.
LOG10(float_exp)
Возвращает логарифм по основанию 10 float_exp.
MOD(integer_exp1, integer_exp2)
Возвращает остаток от деления integer_exp1 на integer_exp2.
POWER(numeric_exp, integer_exp)
Возвращает значение numeric_exp в степени integer_exp.
ROUND(numeric_exp, integer_exp)
Возвращает numeric_exp, округленное до integer_exp знаков справа от десятичной точки. Если integer_exp отрицательное, numeric_exp округляется до |integer_exp| знаков слева от десятичной запятой.
SIGN(numeric_exp)
Возвращает указатель знака numeric_exp. Если numeric_exp меньше нуля, возвращается –1. Если numeric_exp равно нулю, возвращается 0. Если numeric_exp больше нуля, возвращается 1.
SIN(float_exp)
Возвращает синус float_exp, где float_exp – угол в радианах.
TAN(float_exp)
Возвращает тангенс float_exp, где float_exp – угол в радианах.
TRUNCATE(numeric_exp, integer_exp)
Возвращает numeric_exp, усеченное до integer_exp знаков справа от десятичной запятой. Если integer_exp является отрицательным, numeric_exp сокращается до |integer_exp| знаков слева от десятичной запятой.
Функция CAST
Функция CAST конвертирует значение в определенный тип данных. Синтаксис выглядит так:
CAST(exp AS data_type)
Аргумент exp может быть названием столбца, результатом другой скалярной функции или буквенным. Data_type может быть любым из следующих ключевых слов, и задается строчными или заглавными буквами: CHAR, VARCHAR, INTEGER, SMALLINT, REAL, DOUBLE, DATE, TIME, DATETIME, NUMERIC или DECIMAL.
В этом разделе
- Часто используемые запросы: поиск строк
- Часто используемые выражения: поиск значений NULL
- Часто используемые выражения: поиск чисел
- Даты и время
- Комбинированные выражения
- Вычисления
- Приоритет выражения в скобках
- Подзапросы
- Операторы
- Функции
Какие из перечисленных выражений истинны в sql
SQL задачи
8.88K subscribers
137 photos
SQL задачи для подготовки к собеседованию.
About
Blog
Apps
Platform
SQL задачи
8.88K subscribers

Выберите правильный пример использования функции округления ROUND
Anonymous Quiz
select id, price * discount AS total price from Orders ROUND (2);
select id, price * discount ROUND (2) AS total price from Orders;
select id, ROUND (price * discount, 2) AS total price from Orders;
нет правильного примера
Узнать ответ
1.0K voters 4.2K views 14:23

Возможно ли использование одновременно двух агрегирующих функций: select min(price), max(price) from Orders;
Anonymous Quiz
да, но данный запрос составлен неверно, надо так: select * from Orders where price IN (min, max);
да, в результате мы получим минимальную и максимальную стоимости
да, в результате мы получим стоимости, отсортированные от минимальной к максимальной
нет, две функции использовать одновременно нельзя
Узнать ответ
1.0K voters 4.0K views 13:24

Что покажет следующий запрос: select seller_id, count(*) from Orders GROUP BY seller_id HAVING seller_id IN (2,4,6);
Anonymous Quiz
количество продавцов, у которых 2, 4 или 6 товаров
количество заказов сгруппированное по продавцам 2, 4 и 6
ничего, запрос составлен неверно, HAVING указывается до группировки
ничего, запрос составлен неверно, для указания условия должно быть использовано WHERE
Узнать ответ
988 voters 4.3K views 14:26

Выберите правильный пример запроса с использованием UNION:
Anonymous Quiz
select id, city from Orders order by id union select id, city from Sellers order by city;
select id, city, seller_id from Orders and select city, id from Sellers order by id;
select id, city from Orders union select id, city from Sellers order by id;
Все запросы верные
Узнать ответ
909 voters 4.0K views 14:27

Какого строкового типа данных нет в SQL:
Anonymous Quiz
Узнать ответ
1.3K voters 3.7K views 14:27

Как получить значение текущего года в SQL?
Anonymous Quiz
select now();
select year();
select year(now());
select year from Date;
Узнать ответ
1.3K voters 3.9K views 12:29

Кодинг марафон из 10 задач по Python.
Кто решит их все и качественно - выиграет 5500 рублей.
Каждый получит код-ревью на каждую вашу задачу - бесплатно

Какие поля из таблицы обязательно перечислять в INSERT для вставки данных?
Anonymous Quiz
Только те, у которых нет DEFAULT значения
Те, у которых нет DEFAULT значения и которые не имеют атрибут auto_increment
Все поля имеют негласное DEFAULT значения, обязательных полей в SQL нет
Узнать ответ
1.2K voters 4.5K views 14:30

Каким запросом можно добавить запись в таблицу "Users"?
Anonymous Quiz
INSERT VALUES('user3000', now()) INTO Users
INSERT Users FROM VALUES('user3000', now())
INSERT INTO Users("name", "reg_date") VALUES('user3000', now())
ADD Users("name", "reg_date") RECORD('user3000', now())
Узнать ответ
1.2K voters 4.3K views 21:24

Как выбрать столбец с именем «FirstName» из таблицы с именем «Persons»?
Anonymous Quiz
EXTRACT FirstName FROM Persons
SELECT Persons.FirstName
SELECT Persons FROM FirstName
SELECT FirstName FROM Persons
Узнать ответ
1.1K voters 4.1K views 12:15

SQL задачи pinned « Кодинг марафон из 10 задач по Python. Кто решит их все и качественно - выиграет 5500 рублей. Каждый получит код-ревью на каждую вашу задачу - бесплатно Марафон тут: @pythonboost »
Базы и хранилища данных помогите с тестом
2)Для таблиц T1 и T2 необходимо отобразить результат выполнения внутреннего соединения по полям T1.p_key и T2.f_key (на них наложены ограничения NOT NULL). Какие из приведенных запросов можно для этого использовать?
Выберите один или несколько ответов:
а) SELECT T1.p_key, T2.f_key
FROM T1
INNER JOIN T2
ON T1.p_key = T2.f_key
б) SELECT T1.p_key, T2.f_key
FROM T1, T2
WHERE T1.p_key = T2.f_key
в) SELECT T1.p_key, T2.f_key
FROM T1
LEFT OUTER JOIN T2
ON T1.p_key = T2.f_key
WHERE T2.f_key IS NOT NULL
г) SELECT T1.p_key, T2.f_key
FROM T1
FULL OUTER JOIN T2
ON T1.p_key = T2.f_key
WHERE T1.p_key IS NOT NULL
AND T2.f_key IS NOT NULL
д) SELECT T1.p_key, T2.f_key
FROM T1
RIGHT OUTER JOIN T2
ON T1.p_key = T2.f_key
WHERE T1.p_key IS NOT NULL
