Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Обновление и удаление записейСодержание книги
Поиск на нашем сайте
sqlite> UPDATE rubr SET name_rubr='Кино' WHERE id_rubr=3; sqlite> SELECT * FROM rubr; 1|Программирование 2|Музыка 3|Кино
sqlite> DELETE FROM rubr WHERE id_rubr=3; sqlite> SELECT * FROM rubr; 1|Программирование 2|Музыка Изменение структуры таблицы sqlite>.tables rubr sqlite_sequence tmp1 user site table tmp2 sqlite> ALTER TABLE user RENAME TO users; sqlite>.tables rubr sqlite_sequence tmp1 users site table tmp2
sqlite> ALTER TABLE site ADD COLUMN iq INTEGER DEFAULT 0; sqlite> PRAGMA table_info(site); 0|id_site|INTEGER|0||1 1|id_user|INTEGER|0||0 2|id_rubr|INTEGER|0||0 3|url|TEXT|0||0 4|title|TEXT|0||0 5|msg|TEXT|0||0 6|iq|INTEGER|0|0|0 sqlite> SELECT * FROM site; 1|1|1|http://wwwadmin.ru|Название|Описание|0 Выбор записей sqlite> SELECT id_rubr, name_rubr FROM rubr; 1|Программирование 2|Музыка
sqlite> SELECT id_rubr, name_rubr FROM rubr WHERE id_rubr=1; 1|Программирование
sqlite> SELECT * FROM rubr; 1|Программирование 2|Музыка
sqlite> SELECT 10 + 5;
sqlite> SELECT (10 + 5) AS expr1, (70 * 2) AS expr2; 15|140
sqlite> SELECT s.url, r.name_rubr FROM site AS s, rubr AS r ...> WHERE s.id_rubr = r.id_rubr; http://wwwadmin.ru|Программирование
sqlite> INSERT INTO rubr VALUES (3, 'Поисковые порталы'); sqlite> INSERT INTO site (id_user, id_rubr, url, title, msg, iq) ...> VALUES (1, 1, 'http://python.org', 'Python', '', 1000); sqlite> INSERT INTO site (id_user, id_rubr, url, title, msg, iq) ...> VALUES (1, 3, 'http://google.ru', 'Гугль', '', 3000);
sqlite> SELECT id_rubr, COUNT(id_rubr) FROM site ...> GROUP BY id_rubr; 1|2 3|1
sqlite> SELECT id_rubr FROM site ...> GROUP BY id_rubr HAVING COUNT(id_rubr)>1;
sqlite> SELECT COUNT(*) FROM site;
sqlite> SELECT MIN(iq) FROM site;
sqlite> SELECT MAX(iq) FROM site;
sqlite> SELECT AVG(iq) FROM site; 1333.33333333333
sqlite> SELECT SUM(iq) FROM site;
sqlite> SELECT TOTAL(iq) FROM site; 4000.0
sqlite> SELECT GROUP_CONCAT(name_rubr) FROM rubr; Программирование,Музыка,Поисковые порталы sqlite> SELECT GROUP_CONCAT(name_rubr, ' | ') FROM rubr; Программирование | Музыка | Поисковые порталы
sqlite> SELECT * FROM rubr ORDER BY name_rubr; 2|Музыка 3|Поисковые порталы 1|Программирование sqlite> SELECT * FROM rubr ORDER BY name_rubr DESC; 1|Программирование 3|Поисковые порталы 2|Музыка
sqlite> CREATE TEMP TABLE tmp3 (id INTEGER); sqlite> INSERT INTO tmp3 VALUES(1); sqlite> INSERT INTO tmp3 VALUES(2); sqlite> INSERT INTO tmp3 VALUES(3); sqlite> INSERT INTO tmp3 VALUES(4); sqlite> INSERT INTO tmp3 VALUES(5); sqlite> SELECT * FROM tmp3 LIMIT 3; -- Эквивалентно LIMIT 0, 3 sqlite> SELECT * FROM tmp3 LIMIT 2, 3; sqlite> SELECT * FROM tmp3 LIMIT 3 OFFSET 2; sqlite> DROP TABLE tmp3; Выбор записей из нескольких таблиц sqlite> SELECT site.url, rubr.name_rubr, users.email ...> FROM rubr, users, site ...> WHERE site.id_rubr=rubr.id_rubr AND ...> site.id_user=users.id_user; http://wwwadmin.ru|Программирование|unicross@mail.ru http://python.org|Программирование|unicross@mail.ru http://google.ru|Поисковые порталы|unicross@mail.ru
sqlite> SELECT url, name_rubr, email ...> FROM rubr AS r, users AS u, site AS s ...> WHERE s.id_rubr=r.id_rubr AND ...> s.id_user=u.id_user;
sqlite> SELECT url, name_rubr, email ...> FROM rubr JOIN users JOIN site ...> WHERE site.id_rubr=rubr.id_rubr AND ...> site.id_user=users.id_user;
sqlite> SELECT url, name_rubr, email ...> FROM rubr JOIN users JOIN site ...> ON site.id_rubr=rubr.id_rubr AND ...> site.id_user=users.id_user ...> WHERE site.id_rubr=1;
sqlite> SELECT url, name_rubr, email ...> FROM rubr JOIN site USING (id_rubr) JOIN users USING (id_user);
sqlite> SELECT name_rubr, COUNT(id_site) ...> FROM rubr JOIN site USING (id_rubr) ...> GROUP BY rubr.id_rubr; Программирование|2 Поисковые порталы|1
sqlite> SELECT name_rubr, COUNT(id_site) ...> FROM rubr LEFT JOIN site USING (id_rubr) ...> GROUP BY rubr.id_rubr ...> ORDER BY rubr.name_rubr; Музыка|0 Поисковые порталы|1 Программирование|2 17.8. Условия в инструкциях WHERE и HAVING sqlite> SELECT * FROM rubr WHERE id_rubr=1; 1|Программирование sqlite> SELECT 10 = 10, 5 = 10, 10 == 10, 5 == 10; 1|0|1|0
sqlite> CREATE TEMP TABLE tmp3 (p1, p2 TEXT COLLATE NOCASE); sqlite> INSERT INTO tmp3 VALUES ("abcd", "abcd"); sqlite> SELECT p1 = "ABCD" FROM tmp3; -- Не найдено sqlite> SELECT p2 = "ABCD" FROM tmp3; -- Найдено sqlite> DROP TABLE tmp3;
sqlite> SELECT 's' = 'S', 's' = 'S' COLLATE NOCASE; 0|1
sqlite> SELECT 'ы' = 'Ы', 'ы' = 'Ы' COLLATE NOCASE; 0|0
sqlite> SELECT 10!= 10, 5!= 10, 10 <> 10, 5 <> 10; 0|1|0|1
sqlite> SELECT 100 BETWEEN 1 AND 100; sqlite> SELECT 101 BETWEEN 1 AND 100;
sqlite> SELECT 'один' IN ('один', 'два', 'три'); sqlite> SELECT 'Один' IN ('один', 'два', 'три');
sqlite> SELECT 'test word test' LIKE '%word%';
sqlite> SELECT 'test word test' LIKE 'test%'; sqlite> SELECT 'test word test' LIKE 'word%';
sqlite> SELECT 'test word test' LIKE '%es_%wo_d%'; sqlite> SELECT 'test word test' LIKE '%wor%d%';
sqlite> SELECT '10$' LIKE '10%'; sqlite> SELECT '10$' LIKE '10\%' ESCAPE '\'; sqlite> SELECT '10%' LIKE '10\%' ESCAPE '\';
sqlite> PRAGMA case_sensitive_like = true; sqlite> SELECT 's' LIKE 'S'; sqlite> PRAGMA case_sensitive_like = false; sqlite> SELECT 's' LIKE 'S';
sqlite> SELECT 'ы' LIKE 'Ы', 'ы' LIKE 'ы'; 1|1
sqlite> SELECT 'г' LIKE 'Ы', 'слово' LIKE 'текст'; 1|1
C:\book>chcp 866 Текущая кодовая страница: 866
C:\book>sqlite3.exe testdb.db SQLite version 3.8.9 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> SELECT 'г' LIKE 'Ы', 'слово' LIKE 'текст'; 0|0 sqlite> SELECT 'ы' LIKE 'Ы', 'ы' LIKE 'ы'; 0|1
sqlite> SELECT 's' = 'S', NOT ('s' = 'S'); 0|1 sqlite> SELECT NOT 'один' IN ('один', 'два', 'три'); Индексы sqlite> EXPLAIN QUERY PLAN SELECT * FROM site WHERE id_site=1; 0|0|0|SEARCH TABLE site USING INTEGER PRIMARY KEY (rowid=?) (~1 rows) sqlite> EXPLAIN QUERY PLAN SELECT * FROM site WHERE id_rubr=1; 0|0|0|SCAN TABLE site (~100000 rows)
sqlite> EXPLAIN QUERY PLAN SELECT * FROM site WHERE id_rubr=1; 0|0|0|SCAN TABLE site (~100000 rows) sqlite> CREATE INDEX index_rubr ON site (id_rubr); sqlite> EXPLAIN QUERY PLAN SELECT * FROM site WHERE id_rubr=1; 0|0|0|SEARCH TABLE site USING INDEX index_rubr (id_rubr=?) (~10 rows)
sqlite> SELECT * FROM site WHERE id_rubr=1; 1|1|1|http://wwwadmin.ru|Название|Описание|0 2|1|1|http://python.org|Python||1000
sqlite> SELECT * FROM sqlite_stat1; -- Нет записей Error: no such table: sqlite_stat1 sqlite> ANALYZE; sqlite> SELECT * FROM sqlite_stat1; site|index_rubr|3 2 rubr||3 users||1 Вложенные запросы sqlite> CREATE TEMP TABLE tmp_rubr AS SELECT * FROM rubr; sqlite> SELECT * FROM tmp_rubr; 1|Программирование 2|Музыка 3|Поисковые порталы
sqlite> DELETE FROM tmp_rubr; sqlite> INSERT INTO tmp_rubr SELECT * FROM rubr WHERE id_rubr<3; sqlite> SELECT * FROM tmp_rubr; 1|Программирование 2|Музыка
sqlite> SELECT * FROM site WHERE id_rubr IN ( ...> SELECT id_rubr FROM rubr ...> WHERE name_rubr='Программирование'); 1|1|1|http://wwwadmin.ru|Название|Описание|0 2|1|1|http://python.org|Python||1000 Транзакции sqlite> BEGIN TRANSACTION; sqlite> INSERT INTO rubr VALUES (NULL, 'Кино'); sqlite> INSERT INTO rubr VALUES (NULL, 'Разное'); sqlite> ROLLBACK TRANSACTION; -- Отменяем вставку sqlite> SELECT * FROM rubr; 1|Программирование 2|Музыка 3|Поисковые порталы
sqlite> BEGIN TRANSACTION; sqlite> INSERT INTO rubr VALUES (NULL, 'Кино'); sqlite> INSERT INTO rubr VALUES (3, 'Разное'); -- Ошибка Error: PRIMARY KEY must be unique sqlite> COMMIT TRANSACTION; sqlite> SELECT * FROM rubr; 1|Программирование 2|Музыка 3|Поисковые порталы 4|Кино
sqlite> BEGIN TRANSACTION; sqlite> INSERT OR ROLLBACK INTO rubr VALUES (NULL, 'Мода'); sqlite> INSERT OR ROLLBACK INTO rubr VALUES (3, 'Разное'); Error: PRIMARY KEY must be unique sqlite> COMMIT TRANSACTION; -- Транзакция уже завершена! Error: cannot commit — no transaction is active sqlite> SELECT * FROM rubr; 1|Программирование 2|Музыка 3|Поисковые порталы 4|Кино
sqlite> BEGIN EXCLUSIVE TRANSACTION; sqlite> -- База данных заблокирована sqlite> -- Выполняем какие-либо операции с базой sqlite> COMMIT TRANSACTION; sqlite> -- Транзакция завершена, и база разблокирована
sqlite> SAVEPOINT metka1; sqlite> INSERT INTO rubr VALUES (NULL, 'Мода'); sqlite> INSERT INTO rubr VALUES (NULL, 'Разное'); sqlite> ROLLBACK TO SAVEPOINT metka1; sqlite> SELECT * FROM rubr; 1|Программирование 2|Музыка 3|Поисковые порталы 4|Кино 18. Доступ к базе данных SQLite >>> import sqlite3 # Подключаем модуль >>> sqlite3.apilevel # Получаем номер спецификации '2.0'
>>> sqlite3.sqlite_version '3.8.3.1' >>> sqlite3.sqlite_version_info (3, 8, 3, 1) 18.1. Создание и открытие базы данных >>> import sqlite3 # Подключаем модуль sqlite3 >>> con = sqlite3.connect("testdb.db") # Открываем базу данных >>> # Работаем с базой данных >>> con.close() # Закрываем базу данных
>>> import sqlite3 >>> # Доступ к базе, хранящейся в файле c:\book\testdb.db >>> con = sqlite3.connect(r"file:///c:/book/testdb.db", uri = True) >>> con.close() >>> # Доступ только для чтения >>> con = sqlite3.connect(r"file:///c:/book/testdb.db?mode=ro", uri = True) >>> con.close() >>> # Доступ к неизменяемой базе данных >>> con = sqlite3.connect(r"file:///f:/data.db?immutable=1", uri = True) >>> con.close() Выполнение запросов # -*- coding: utf-8 -*- import sqlite3 con = sqlite3.connect("catalog.db") cur = con.cursor() # Создаем объект-курсор sql = """\ CREATE TABLE user ( id_user INTEGER PRIMARY KEY AUTOINCREMENT, email TEXT, passw TEXT ); CREATE TABLE rubr ( id_rubr INTEGER PRIMARY KEY AUTOINCREMENT, name_rubr TEXT ); CREATE TABLE site ( id_site INTEGER PRIMARY KEY AUTOINCREMENT, id_user INTEGER, id_rubr INTEGER, url TEXT, title TEXT, msg TEXT, iq INTEGER ); """ try: # Обрабатываем исключения cur.executescript(sql) # Выполняем SQL-запросы except sqlite3.DatabaseError as err: print("Ошибка:", err) else: print("Запрос успешно выполнен") cur.close() # Закрываем объект-курсор con.close() # Закрываем соединение input()
# -*- coding: utf-8 -*- import sqlite3 con = sqlite3.connect("catalog.db") cur = con.cursor() # Создаем объект-курсор sql = """\ INSERT INTO user (email, passw) VALUES ('unicross@mail.ru', 'password1') """ try: cur.execute(sql) # Выполняем SQL-запрос except sqlite3.DatabaseError as err: print("Ошибка:", err) else: print("Запрос успешно выполнен") con.commit() # Завершаем транзакцию cur.close() # Закрываем объект-курсор con.close() # Закрываем соединение input()
# -*- coding: utf-8 -*- import sqlite3 con = sqlite3.connect("catalog.db") cur = con.cursor() # Создаем объект-курсор t1 = ("Программирование",) t2 = (2, "Музыка") d = {"id": 3, "name": """Поисковые ' " порталы"""} sql_t1 = "INSERT INTO rubr (name_rubr) VALUES (?)" sql_t2 = "INSERT INTO rubr VALUES (?,?)" sql_d = "INSERT INTO rubr VALUES (:id,:name)" try: cur.execute(sql_t1, t1) # Кортеж из 1-го элемента cur.execute(sql_t2, t2) # Кортеж из 2-х элементов cur.execute(sql_d, d) # Словарь except sqlite3.DatabaseError as err: print("Ошибка:", err) else: print("Запрос успешно выполнен") con.commit() # Завершаем транзакцию cur.close() # Закрываем объект-курсор con.close() # Закрываем соединение input()
# -*- coding: utf-8 -*- import sqlite3 con = sqlite3.connect("catalog.db") cur = con.cursor() # Создаем объект-курсор arr = [ (1, 1, "http://wwwadmin.ru", "Название", "", 100), (1, 1, "http://python.org", "Python", "", 1000), (1, 3, "http://google.ru", "Гугль", "", 3000) ] sql = """\ INSERT INTO site (id_user, id_rubr, url, title, msg, iq) VALUES (?,?,?,?,?,?) """ try: cur.executemany(sql, arr) except sqlite3.DatabaseError as err: print("Ошибка:", err) else: print("Запрос успешно выполнен") con.commit() # Завершаем транзакцию cur.close() # Закрываем объект-курсор con.close() # Закрываем соединение input()
Листинг 18.1. Использование метода execute() # -*- coding: utf-8 -*- import sqlite3 con = sqlite3.connect("catalog.db") try: con.execute("""UPDATE rubr SET name_rubr='Поисковые порталы' WHERE id_rubr=3""") except sqlite3.DatabaseError as err: print("Ошибка:", err) else: con.commit() # Завершаем транзакцию print("Запрос успешно выполнен") con.close() # Закрываем соединение input()
# -*- coding: utf-8 -*- import sqlite3 con = sqlite3.connect("catalog.db") cur = con.cursor() # Создаем объект-курсор try: cur.execute("""INSERT INTO rubr (name_rubr) VALUES ('Кино')""") except sqlite3.DatabaseError as err: print("Ошибка:", err) else: con.commit() # Завершаем транзакцию print("Запрос успешно выполнен") print("Индекс:", cur.lastrowid) cur.close() # Закрываем объект-курсор con.close() # Закрываем соединение input()
con = sqlite3.connect("catalog.db") ... print(con.total_changes)
|
||||
Последнее изменение этой страницы: 2016-06-23; просмотров: 268; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.123.194 (0.008 с.) |