Ahoj, Začínat s jazkem SQL je předčasná optimalizace. Začni s ORM. Doporučil bych SQLAlchemy ORM nebo Django (pokud chceš dělat webové aplikace). Na drtivou většinu věcí ti to bude stačit. Jazyk SQL je pro běžné potřeby zbytečně nízkoúrovňový. Psát, testovat a udržovat kód se syrovým SQL je velká ztráta času.
Záleží na projektu, ale když už náhodou budeš potřebovat něco, s čím si tyhle ORM efektivně neporadí, tak to bude vyjímečná situace. V takových situacích si většinou poradíš tím, že budeš trochu študovat manuály a googlit, a zjistíš, že to často taky jde efektivně i s ORM. A když ne, tak data vytaháš a zpracuješ je v Pythonním kódu. A když dat bude moc, a tohle efektivně taky nepůjde, tak se naučíš pracovat s SQLAlchemy Core nebo nastuduješ trochu toho syrového SQL. Co se týče databáze, MySQL/MariaDB bych se vyhnul obloukem. Není ACID (ačkoliv se tím pyšní), autocommituje změny schématu i během transakcí (cca 10 let stále neopravený a zřejmě neopravitelný bug). Při běžném použití tě to nepotrápí. Ale jakmile se projekt rozjede a začneš dělat migrace schematu a dat, tak tě to dřív nebo později pěkně vyjebe. Stalo se mi to v životě asi třikrát, z toho dvakrát na nových projektech, kdy jsme MySQL dali "ještě jednu šanci" protože PostgreSQL nebyla z nějakého důvodu jednoduše k dispozici. S ORM můžeš opustit MySQL/MariaDB relativně snadno, ale proč s ní vůbec začínat, když je tam (krom jiných neduhů) taková past?! Doporučil bych PostgreSQL. S tou se nedá šlápnout vedle pro jakýkoliv projekt. Má i zajímavé "NoSQL" fičury, jako datové typy JSON a hstore, které stojí za pozornost. SQLite může být taky dobrá volba, ale záleží na projektu. Její super fičura je snadno použitelná databáze v RAMce, což se hodí hlavně pro testy. Honza 2017-12-25 11:41 GMT+01:00 Lubomir Vogl <pyt...@vogl.cz>: > Ahoj, > > potreboval bych poradit s SQL. Hraju si s MariaDB a zajimalo by me : > > - jaka je nejlepsi knihovna pro praci s SQL ? Zatim jsem nasel (PyMySQL, > SQLAlchemy, MySqlDb) Chtel bych se naucit neco co bude mozne pouzit i na > slozitejsi projekty > - je ORM vhodne i na jednodussi projekty ? > - pokud budu v SQL chtit pouzivat vice SQL dotazu, je to mozne udelat pres > jedno spojeni (jeden cursor) nebo je nutne mit vice otevrenych spojeni ? > Viz nasledujici priklad - jedno otevrene spojeni > > > sql = "SELECT * FROM portal WHERE typ_id = " + str(typ) > self.cursor.execute(sql) > data = self.cursor.fetchall() > c = self.cursor.rowcount > for row in data: > sql1 = "INSERT INTO values VALUES ('',NOW(),0," + str(row[0]) + ")" > try: > self.cursor.execute(sql1) > except: > self.db.rollback() > _______________________________________________ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz >
_______________________________________________ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz