Блоґ одного кібера

Історія хвороби контуженого інформаційним вибухом

Posts Tagged ‘SQL

Створення бази й користувача MySQL

with 2 comments

Це щоб не лазити через рута, і аби не змінювати налаштування з’єднання з базою при розгортанні.

create database database_name character set utf8 collate utf8_bin;
create user 'user_name'@'localhost' identified by 'some_password';
grant all privileges on database_name.* to 'user_name';

Більше триндіти про це не буду, назад до роботи. Якщо ж вам хочеться поговорити – розкажіть в коментарях звідки сисадміни стільки всього знають?

UPDATE: Не знаю чому я це сюди запостив, якщо є вікіпідручник

Written by bunyk

Березень 10, 2013 at 17:59

Оприлюднено в Кодерство

Tagged with

Персистентний dictionary на sqlite

with 2 comments

Персистентність – це таке розумне слово, яке означає що стан об’єкта зберігається в зовнішній пам’яті. Тобто якщо вимкнуть світло чи просто вб’ють процес, і оперативна пам’ять погасне, разом з об’єктом, при наступному запуску нашого процесу об’єкт завантажиться в такому ж стані, в якому він був останнього разу. Це надзвичайно зручно, правда?

А найзручнішим об’єктом часто є асоціативний масив, в python – dictionary, який реалізує функціональне бінарне відношення.

Він мені був дуже потрібний для реалізації словника. До цього я думав писати якийсь свій CRUD інтерфейс, потім додавати до нього підтримку імпорту tsv (може краще реалізувати це просто за допомогою окремої функції? Точно. Так і зроблю.) А ще раніше взагалі серіалізував словники. Але це працювало лише поки пар було мало. Коли я скачав дамп вікіпедії – пам’ять сказала “фіг вам”.

Код, взятий у Ереза Шінана, і несуттєво змінений (конструктор тепер не має обов’язкового параметра з ключем FileDict(fi"example.bd") замість FileDict(filename="example.bd")).
Прочитати решту цього запису »

Written by bunyk

Березень 26, 2011 at 14:31

Оприлюднено в Кодерство

Tagged with ,

Ключові слова і назви полів в SQL

with 2 comments

Припустимо ви створити красиву базу даних, і робите до неї запит. Запит відповідає всім вимогам синтаксису SQL, але в результаті ви все одно отримуєте помилку.
Наприклад після запиту:

UPDATE lections SET number='2', course='1', group='1', lector='1', 
room='6', day='3' WHERE ID=23 LIMIT 1;

ми отримуємо таке повідомлення:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'group='1', lector='1', room='6', day='3' WHERE ID=23 LIMIT 1' at line 1

В чому проблема?
Мова запитів містить оператор (чи як це назвати) GROUP BY, і тому вашій СУБД важко розібратися що ви мали на увазі. Тому є два рішення:

Перше: Не називайте свої таблиці і їх поля ключовими словами з SQL.

Але може вам подобається назва поля, або ви вже написали дуже багато коду, де вона використовується. Тому вам краще підійде …

Друге рішення: виділити назву поля як ідентифікатор символами наголосу ASCII 96 "`" ` - grave accent.

Такий запит працює нормально:

UPDATE lections SET number='2', course='1', `group`='1', 
		lector='1', room='6', day='3' WHERE ID=23 LIMIT 1

Written by bunyk

Березень 6, 2009 at 03:08

Оприлюднено в Кодерство, Павутина

Tagged with