Utilisez-vous ORM? L'ORM en Python est le suivant.
Non limité à ceux-ci, ORM doit définir un modèle pour l'utiliser, Il est assez difficile d'écrire un script pour la base de données d'un projet existant et de l'utiliser rapidement.
Par conséquent, je voudrais présenter un ensemble de données de mappeur OR qui peut être utilisé rapidement sans écrire une définition de modèle gênante.
Aucune définition de modèle n'est requise, donc même les projets avec Hibernate ORM en Java et Doctrine en PHP C'est facile à déployer.
SQLAlchemy est utilisé dans l'ensemble de données.
SELECT
import dataset
db = dataset.connect('mysql://[email protected]/information_schema')
table = db['COLLATIONS']
results = table.find(CHARACTER_SET_NAME='utf8', order_by='-ID', _limit=3)
for r in results:
print(r)
# OrderedDict([('COLLATION_NAME', 'utf8_general_mysql500_ci'), ('CHARACTER_SET_NAME', 'utf8'), ('ID', 223L), ('IS_DEFAULT', ''), ('IS_COMPILED', 'Yes'), ('SORTLEN', 1L)])
# OrderedDict([('COLLATION_NAME', 'utf8_vietnamese_ci'), ('CHARACTER_SET_NAME', 'utf8'), ('ID', 215L), ('IS_DEFAULT', ''), ('IS_COMPILED', 'Yes'), ('SORTLEN', 8L)])
# OrderedDict([('COLLATION_NAME', 'utf8_unicode_520_ci'), ('CHARACTER_SET_NAME', 'utf8'), ('ID', 214L), ('IS_DEFAULT', ''), ('IS_COMPILED', 'Yes'), ('SORTLEN', 8L)])
SQL Dans l'exemple ci-dessus, le SQL suivant est exécuté
SELECT `COLLATIONS`.`COLLATION_NAME`, `COLLATIONS`.`CHARACTER_SET_NAME`, `COLLATIONS`.`ID`, `COLLATIONS`.`IS_DEFAULT`, `COLLATIONS`.`IS_COMPILED`, `COLLATIONS`.`SORTLEN`
FROM `COLLATIONS`
WHERE `COLLATIONS`.`CHARACTER_SET_NAME` = 'utf8' ORDER BY `COLLATIONS`.`ID` DESC
LIMIT 0, 3
Seule la clause WHERE dans la condition d'égalité est prise en charge, donc lors de l'utilisation de fonctions SQL telles que la condition LIKE et count
, [SQL Alchemy notation](http://docs.sqlalchemy.org/en/latest/core/tutorial. Utilisez db.query ()
dans html # selection).
INSERT
Commencez par créer un DB vide.
$ mysqladmin create sandbox
Transmettez les données à INSÉRER au format dictionnaire.
import dataset
db = dataset.connect('mysql://[email protected]/sandbox')
table = db['Alchemist']
table.insert(dict(name='Alphonse Elric'))
table.insert_many([dict(name='Edward Elric', titled='Fullmetal'), dict(name='Roy Mustang', titled='Flame')])
Cela créera 3 enregistrements.
SQL
Jetons un coup d'œil au SQL émis.
SHOW FULL TABLES FROM `sandbox`
rollback
--Vérifiez s'il y a une table
DESCRIBE `Alchemist`
rollback
rollback
--Créer une table
CREATE TABLE `Alchemist` (
id INTEGER NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id)
)
commit
rollback
--Ajouter une colonne
ALTER TABLE `Alchemist` ADD COLUMN name TEXT
commit
rollback
SHOW FULL TABLES FROM `sandbox`
--Consultez le tableau
SHOW CREATE TABLE `Alchemist`
rollback
-- table.insert(dict(name='Alphonse Elric'))
INSERT INTO `Alchemist` (name) VALUES ('Alphonse Elric')
commit
rollback
--Ajouter une colonne
ALTER TABLE `Alchemist` ADD COLUMN titled TEXT
commit
rollback
SHOW FULL TABLES FROM `sandbox`
SHOW CREATE TABLE `Alchemist`
rollback
-- table.insert_many([dict(name='Edward Elric', titled='Fullmetal'), dict(name='Roy Mustang', titled='Flame')])
INSERT INTO `Alchemist` (name, titled) VALUES
('Edward Elric', 'Fullmetal'),
('Roy Mustang', 'Flame')
commit
«S'il n'y a pas de table ou de colonne à INSÉRER», elle sera créée. Comme c'est facile ~~ effrayant ~~! Pour être honnête, je ne peux pas le recommander pour une utilisation dans un environnement de production.
Le logo du personnage sur le site officiel est mignon. dataset: databases for lazy people — dataset 0.6.0 documentation
Vous pouvez également écrire des résultats SQL au format json. Exporter les données DB au format json --Qiita
Recommended Posts