sql руководство

Вставьте описание изображения сюда
Вставьте описание изображения сюда
Вставьте описание изображения сюда
Вставьте описание изображения сюда
Вставьте описание изображения сюда
Вставьте описание изображения сюда
Вставьте описание изображения сюда
Вставьте описание изображения сюда
Вставьте описание изображения сюда
Вставьте описание изображения сюда

задача: руководство по sql edible

------> От Альберта

Примечание: разные базы данных, ключевые слова и предложения будут отличаться, если он не может работать, вы можете разделить базу данных Baidu'xxx xxx ключевые слова '

время
импорта импорт sqlite3

db_path = r'C: \ Users \ 86131 \ Desktop \ ndhd_cw_001.db '
conn = sqlite3.connect (db_path)
c = conn.cursor ()

1. выберите: запрос

(1) Запросить столбец

c.execute ('выбрать поле из таблицы')

(2) Запросить все

c.execute ('выберите * из 表')

2.distinct: дедупликация

(1) Дедупликация столбца

c.execute ('выбрать отдельную таблицу формы поля')

(2) Несколько столбцов для удаления дубликатов (объединить несколько одинаковых столбцов)

c.execute ('выберите dintinct field 01 field 02… from table')

(3) Все дедупликации (объединить всю строку точно так же)

c.execute ('выбрать отдельный * из 表')

3. где: состояние

выберите поле из таблицы, где значение оператора поля

'' '
Оператор:
равно: =
не равно: <> (в некоторых версиях SQL записывается как:! =)
Больше:>
меньше чем: <
больше больше чем:> =
меньше или равно: <=
в определенном диапазоне: между
Поиск определенного шаблона: нравится
'' '

4. Операторы AND и OR: используются для фильтрации записей на основе более чем одного условия.

c.execute ('выберите поле из таблицы, где (условие 01 И условие 02) ИЛИ условие 03')

5. порядок: сортировка (по умолчанию по возрастанию, по возрастанию, по убыванию по возрастанию)

c.execute ('выбрать поле 01, поле 02, поле 03 из таблицы, упорядочить по полю 01, поле 02 по возрастанию, поле 03 по убыванию')

6. вставка: вставка

(1) Вставить напрямую

c.execute ('вставить в значения таблицы (значение 01, значение 02,)')

(2) Вставить по столбцу

c.execute ('вставить в таблицу (столбец 01, столбец 02, столбец 03) значения (значение 01, значение 02, значение 03)')

7. обновление: обновление

c.execute ('поле набора обновлений таблицы = значение, где условие')

8. удалить: удалить

(1): Удалить данные таблицы

c.execute ('удалить из 表')

(2): Удалить данные строки

c.execute ('удалить из таблицы, где условие')

9.limit: ограничить количество строк запроса

c.execute ('выберите поле из предельного числа таблицы')

10. лайк + подстановочный знак

c.execute ('select * from table where field like wildcard formula')
'' '
Wildcard
Заменить один или несколько символов:%
Заменить один символ: -Любой символ в
списке (без запятой): [charlist]
Не список Любой символ в (без запятой): [^ charlist] или [! Charlist]
'' '

11. между / в: диапазон

c.execute ('выберите * из таблицы, где поле между значением 01 и значением 02')
c.execute ('выберите * из таблицы, где поле в (значение 01, значение 02, значение 03,…)')

12. Алиасы:

(1): имя таблицы указывает псевдоним

c.execute ('выберите a.id, a.name, b.money из sql_notebook как a, sql_notebook001 как b, где a.id = b.id')

(1): имя поля указывает псевдоним

c.execute ('ВЫБЕРИТЕ Фамилию как семью, имя как имя от людей')

13. присоединиться:

c.execute ('выберите a.id, a.name, b.money из sql_notebook как a, sql_notebook001 как b из внутреннего соединения b на a.id = b.id')

Эквивалентно

c.execute ('выберите a.id, a.name, b.money из sql_notebook в качестве внутреннего соединения sql_notebook00

'' '
JOIN: если есть хотя бы одно совпадение в таблице, вернуть строки.
LEFT JOIN: даже если нет совпадений в правой таблице, вернуть все строки из левой таблицы.
RIGHT JOIN: вернуть все строки из правой таблицы, даже если нет совпадений в левой таблице. line
FULL JOIN: пока есть совпадение в одной из таблиц, строка возвращает
'' '

14. объединение: объединить два или более

Набор результатов оператора SELECT (оператор SELECT должен иметь одинаковое количество столбцов. Столбцы также должны иметь похожие типы данных. В то же время порядок столбцов в каждом операторе SELECT должен быть одинаковым).

Если разрешены повторяющиеся значения, используйте UNION ALL

c.execute ('выберите a.id из sql_notebook как UNION выберите b.id из sql_notebook001 как b')

15. выбрать в: создать резервную копию таблицы

c.execute ('SELECT Persons.LastName, Orders.OrderNo
INTO Persons_Order_Backup
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P')

ps: sqlite не применяет этот синтаксис, эквивалент:

c.execute ('СОЗДАТЬ новую таблицу как SELECT * FROM oldtable')

16. create database: создать базу данных

c.execute ('craeat database имя_базы_данных')

17.creat table: создать таблицу

c.execute ('CREATE TABLE имя таблицы (
тип данных поля 01, тип данных
поля 02, тип данных
поля 03,

)')

тип данных задачи: (временно перечислить sqlite)

'' '
sqlite:
1. NULL, значение NULL
2. INTEGER, значение является целым числом со знаком, в соответствии с размером значения, хранящегося в 1, 2, 3, 4, 6 или 8 байтах
3. REAL, значение с плавающей запятой Значение сохраняется как 8-байтовое число с плавающей запятой IEEE
. 4. ТЕКСТ, значение - текстовая строка, а кодировка базы данных (UTF-8, UTF-16BE или UTF-16LE) используется для хранения
5. BLOB, который является просто блоком данных и хранится точно как вход (То есть без замены)

Большинство механизмов баз данных (каждый механизм базы данных sql, насколько нам известно, кроме sqlite) используют статические и жесткие типы. Для статических типов тип данных определяется их контейнером. Этот контейнер относится к Конкретный столбец, который нужно сохранить.
Sqlite использует более общую систему динамических типов.В SQLite тип данных значения связан с самим значением, а не с его контейнером.
Система динамических типов Sqlite совместима с более общими системами статических типов других баз данных, но в то же время динамический тип в sqlite позволяет ему делать вещи, которые невозможны с традиционными базами данных жесткого типа.
'' '

18.constraints: ограничения

(1) not null: не добавлять значение в поле, нельзя вставлять новые записи или обновлять записи

c.execute ('' 'СОЗДАТЬ ТАБЛИЦУ Kzz
(ТЕКСТ кода НЕ NULL,
Total_Investment_Amounts REAL NOT NULL);' '')

(2) уникальный: ограничение однозначно идентифицирует каждую запись в таблице базы данных.

Каждая таблица может иметь несколько ограничений UNIQUE, но каждая таблица может иметь только одно ограничение PRIMARY KEY.

(2.1) Создавайте уникальные ограничения при создании таблиц

c.execute ('' 'СОЗДАТЬ
ТАБЛИЦУ лиц ( Id_P int NOT NULL,
LastName varchar (255) NOT NULL,
FirstName varchar (255),
Address varchar (255),
City varchar (255),
UNIQUE (Id_P)
)' '' )

(2.2) Таблица уже существует для создания уникального ограничения

c.execute ('ALTER TABLE table ADD UNIQUE (field)'

(2.3) Назовите ограничение UNIQUE, создайте ограничение с несколькими столбцами

c.execute (`` 'ALTER TABLE table
ADD CONSTRAINT имя ограничения UNIQUE (поле 01, поле 02)' '')

(2.3) Отменить ограничение UNIQUE

c.execute ('' 'ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID' '')

(3): PRIMARY KEY: ограничение первичного ключа

(3.1) Создать

c.execute ('' 'СОЗДАТЬ ТАБЛИЦУ людей
(
Id_P int NOT NULL PRIMARY KEY,
LastName varchar (255) NOT NULL,
FirstName varchar (255),
Address varchar (255),
City varchar (255)
)
' '')

(3.2) Именование ограничений PRIMARY KEY, определение ограничений PRIMARY KEY для нескольких столбцов.

c.execute ('' 'CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar (255) NOT NULL,
FirstName varchar (255),
Address varchar (255),
City varchar (255),
CONSTRAINT pk_PersonID PRIMARY KEY (Id_P, LastName) )
)
'' ')

(3.3) Таблица уже существует для создания уникального ограничения

c.execute ('' 'ALTER TABLE Persons
ADD PRIMARY KEY (Id_P)' '')

(3.4) Отмена ограничений

c.execute ('' 'ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID' '')

(4): FOREIGN KEY: ограничение внешнего ключа

Удалить: главную таблицу можно удалить только тогда, когда запись в подчиненной таблице не существует. Удалить из таблицы, основная таблица без изменений

Обновление: главная таблица может быть обновлена ​​только тогда, когда запись в подчиненной таблице не существует. Обновите подчиненную таблицу, главная таблица остается неизменной

(4.1) Создать

c.execute ('' 'CREATE TABLE Orders
(
Id_O int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
Id_P int FOREIGN KEY REFERENCES Persons (Id_P)
)' '')

(4.2) Ограничения FOREIGN KEY и определение ограничений FOREIGN KEY для нескольких столбцов.

c.execute ('' 'CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)
REFERENCES' '')

(4.3) Создайте ограничение FOREIGN KEY для столбца «Id_P», если таблица уже существует.

c.execute ('' 'ALTER TABLE Orders
ADD FOREIGN KEY (Id_P)
REFERENCES Persons (Id_P)' '')

(4.4) Отменить ограничение FOREIGN KEY

c.execute ('' 'ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders' '')

а также:

'' '
SQL Проверить
SQL по умолчанию
SQL Создать индекс
SQL Drop
SQL Alter
SQL Increment
SQL View
SQL Date
SQL Nulls
SQL isnull ()

SQL 函数
Функции
SQL SQL avg ()
SQL count ()
SQL first ()
SQL last ()
SQL max ()
SQL min ()
SQL sum ()
SQL Group By
SQL Имея
SQL ucase ()
SQL lcase ()
SQL mid ()
SQL len ()
SQL round ()
SQL now ()
Формат SQL ()
'' '

start_time = time.time ()
look = c.execute (sql)
end_time = time.time ()
continuous_time = end_time - start_time
print ('运行 该 sql 语句 的 时间 为 {}'. format (str (continuous_time)) + ' s ')
для i в виде:
print (i)

рекомендация

отblog.csdn.net/ppkqq/article/details/109923488