- SQL оператор SELECT
- Пример 1. Выборка из таблицы
- 2. Оператор LIKE
- Пример 2. Выборка из таблицы с использованием LIKE
- 3. SQL Alias
- Пример 3. Выборка из таблицы c использованием Alias
- Пример 4. Выборка из таблицы c использованием Alias
- 4. Оператор ORDER BY
- Пример 5. Выборка из таблицы c ORDER BY
- Пример 6. Выборка из таблицы c ORDER BY И DESC
- 5. Реляционные операторы
- Пример 7. Выборка из таблицы с использованием реляционного оператора
- 6. NULL значения
- Пример 8. Выборка из таблицы строк со значением NULL
- 7. Булевы операторы
- Пример 9. Выборка из таблицы с использованием булевых операторов
- 9. Оператор BETWEEN
- Пример 11. Выборка из таблицы с использованием оператора BETWEEN
- 11. Агрегатные функции
- Пример 13. Использование агрегатных функций
- 12. Оператор GROUP BY
- Продажи
- Пример 14. Использование оператора GROUP BY
- 13. Оператор SQL HAVING
- Пример 15. Использование оператора HAVING
- JDBC - WHERE Clause Example
- Required Steps
- Sample Code
SQL оператор SELECT
Выборка в базе данных производится с помощью оператора SELECT.
SELECT названия_полей FROM названия_таблиц WHERE условие [ORDER BY]
Пример 1. Выборка из таблицы
SELECT * FROM users; - выбрать все поля SELECT username FROM users; - выбрать поле username SELECT* FROM phones WHERE phone_number='0959872323'; - выбрать поля id, user_id где phone_number= ‘0959872323’
2. Оператор LIKE
Пример 2. Выборка из таблицы с использованием LIKE
SELECT id FROM phones WHERE phone_number LIKE '%3';
— выбираем из phones все значения поля id, для которых phone_number заканчивается на цифру 3 (% означает любое количество любых символов; LIKE проверяет совпадение символьной строки с заданным шаблоном).
LIKE применим только к полям типа CHAR или VARCHAR.
Символ подчеркивания (_) замещает любой одиночный символ. Например, ‘b_t‘ будет соответствовать словам ‘bat‘ или ‘bit‘, но не будет соответствовать ‘brat‘.
Знак процента (%) замещает последовательность любого числа символов. Например ‘%p%t‘ будет соответствовать словам ‘put‘, ‘posit‘, или ‘opt‘, но не ‘spite‘.
3. SQL Alias
SQL Alias — псевдонимы, которые могут быть использоваться для переименования таблиц и колонок.
Пример 3. Выборка из таблицы c использованием Alias
SELECT persons.username FROM users AS persons WHERE persons.username LIKE 'P%‘
AS является необязательным:
Пример 4. Выборка из таблицы c использованием Alias
SELECT persons.username FROM users persons WHERE persons.username LIKE 'P%‘
4. Оператор ORDER BY
Пример 5. Выборка из таблицы c ORDER BY
SELECT username FROM users ORDER BY username;
— выбрать поле username и отсортировать ORDER BY используется для сортировки по одному из полей, указанных после оператора SELECT. По умолчанию делается возрастающая сортировка, если хотим использовать сортировку в обратном порядке то после поля необходимо добавить DESC:
Пример 6. Выборка из таблицы c ORDER BY И DESC
SELECT username FROM users ORDER BY username DESC;
5. Реляционные операторы
Пример 7. Выборка из таблицы с использованием реляционного оператора
SELECT username FROM users WHERE id>2;
6. NULL значения
NULL обозначает отсутствующее или неизвестное значение и обрабатывается отличным от других значений образом.
Проверить значение на равенство NULL с помощью обычных арифметических операторов сравнения (=, < или <>) нельзя. Вместо этого нужно пользоваться операторами IS NULL и IS NOT NULL:
Пример 8. Выборка из таблицы строк со значением NULL
SELECT * FROM users WHERE username IS NULL;
7. Булевы операторы
Пример 9. Выборка из таблицы с использованием булевых операторов
SELECT username FROM users WHERE id>1 AND id
8. Оператор IN
Оператор IN определяет набор значений в которое данное значение может или не может быть включено.
Пример 10. Выборка из таблицы с использованием оператора IN
SELECT username FROM users WHERE username='Sidorov' OR username='Petrov';
SELECT username FROM users WHERE username IN ('Sidorov', 'Petrov');
9. Оператор BETWEEN
BETWEEN используется для сравнения диапазонов.
Пример 11. Выборка из таблицы с использованием оператора BETWEEN
SELECT * FROM employees WHERE salary BETWEEN 3000 AND 4000;
что можно переписать следующим образом:
SELECT * FROM employees WHERE salary >= 3000 AND salary
При использовании ключевого слова BETWEEN граничные значения также попадают в диапазон, поэтому запрос вернет, в том числе сотрудников с зарплатой в 3000 и 4000.
10. Оператор DISTINCT
Оператор DISTINCT используется для указания на то, что следует работать только с уникальными значениями столбца.
Пример 12. Выборка не повторяющихся значений из столбца username
SELECT DISTINCT username FROM users;
11. Агрегатные функции
Агрегатные функции выполняют вычисление на наборе значений и возвращают одиночное значение.
- COUNT - производит подсчет строк, удовлетворяющих условию запроса.
- SUM - вычисляет арифметическую сумму всех значений колонки.
- AVG - вычисляет среднее арифметическое всех значений.
- MAX - определяет наибольшее из всех выбранных значений.
- MIN - определяет наименьшее из всех выбранных значений.
Агрегатные функции, за исключением COUNT, не учитывают значения NULL.
Пример 13. Использование агрегатных функций
SELECT count(DISTINCT username) FROM users; - количество неповторяющихся значений из столбца username. SELECT MAX(id) FROM users; SELECT MIN(id) FROM users;
12. Оператор GROUP BY
Оператор GROUP BY используется для объединения результатов выборки по одному или нескольким столбцам. Он имеет следующий синтаксис: GROUP BY column_name.
Предположим есть таблица, содержащая информацию о том, сколько кг каждого вида фруктов продал магазин:
Продажи
id | магазин | продукт | кг |
1 | АТБ | яблоки | 10 |
2 | АТБ | груши | 14 |
3 | АТБ | виноград | 20 |
4 | Дигма | яблоки | 20 |
5 | Дигма | виноград | 34 |
6 | Дигма | лимоны | 34 |
7 | Брусничка | лимоны | 14 |
8 | Брусничка | яблоки | 54 |
Используя оператор GROUP BY найти количество проданных кг для каждого магазина:
Пример 14. Использование оператора GROUP BY
SELECT магазин, SUM(количество) AS кг FROM продажи GROUP BY магазин
Магазин | кг |
АТБ | 44 |
Дигма | 68 |
Брусничка | 88 |
13. Оператор SQL HAVING
Оператор SQL HAVING является указателем на результат выполнения агрегатных функций.
Используя оператор SQL HAVING вывести название магазинов, которые продали более 60 кг:
Пример 15. Использование оператора HAVING
SELECT магазин, SUM(количество) AS кг FROM продажи GROUP BY магазин HAVING кг>60
Магазин | кг |
Дигма | 68 |
Брусничка | 88 |
JDBC - WHERE Clause Example
This chapter provides an example on how to select records from a table using JDBC application. This would add additional conditions using WHERE clause while selecting records from the table. Before executing the following example, make sure you have the following in place −
- To execute the following example you can replace the username and password with your actual user name and password.
- Your MySQL or whatever database you are using, is up and running.
Required Steps
The following steps are required to create a new Database using JDBC application −
- Import the packages − Requires that you include the packages containing the JDBC classes needed for the database programming. Most often, using import java.sql.* will suffice.
- Register the JDBC driver − Requires that you initialize a driver so you can open a communications channel with the database.
- Open a connection − Requires using the DriverManager.getConnection() method to create a Connection object, which represents a physical connection with a database server.
- Execute a query − Requires using an object of type Statement for building and submitting an SQL statement to fetch records from a table, which meet the given condition. This Query makes use of the WHERE clause to select records.
- Clean up the environment − try with resources automatically closes the resources.
Sample Code
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class TestApplication < static final String DB_URL = "jdbc:mysql://localhost/TUTORIALSPOINT"; static final String USER = "guest"; static final String PASS = "guest123"; static final String QUERY = "SELECT id, first, last, age FROM Registration"; public static void main(String[] args) < // Open a connection try(Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); Statement stmt = conn.createStatement();) < System.out.println("Fetching records without condition. "); ResultSet rs = stmt.executeQuery(QUERY); while(rs.next())< //Display values System.out.print("ID: " + rs.getInt("id")); System.out.print(", Age: " + rs.getInt("age")); System.out.print(", First: " + rs.getString("first")); System.out.println(", Last: " + rs.getString("last")); >// Select all records having ID equal or greater than 101 System.out.println("Fetching records with condition. "); String sql = "SELECT id, first, last, age FROM Registration" + " WHERE id >= 101 "; rs = stmt.executeQuery(sql); while(rs.next()) < //Display values System.out.print("ID: " + rs.getInt("id")); System.out.print(", Age: " + rs.getInt("age")); System.out.print(", First: " + rs.getString("first")); System.out.println(", Last: " + rs.getString("last")); >rs.close(); > catch (SQLException e) < e.printStackTrace(); >> >
C:\>javac TestApplication.java C:\>
C:\>java TestApplication Fetching records without condition. ID: 100, Age: 30, First: Zara, Last: Ali ID: 102, Age: 30, First: Zaid, Last: Khan ID: 103, Age: 28, First: Sumit, Last: Mittal Fetching records with condition. ID: 102, Age: 30, First: Zaid, Last: Khan ID: 103, Age: 28, First: Sumit, Last: Mittal C:\>