Ensemble de données de mappeur OU super facile pour les paresseux

introduction

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.

pudo/dataset

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

Limites

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.

Autre

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

Ensemble de données de mappeur OU super facile pour les paresseux
Python pour les super débutants Super débutants Python # Facile à éliminer
Compréhension facile de Python pour les tableaux et (pour les super débutants)
Obtenez le SQL exécuté par l'ensemble de données (mappeur Python OR)