Skip to main content

✨ Awesome databases framework that shines ✨

Project description

✨ Awesome databases framework that shines ✨

Version License pypi total downloads GitHub last commit

Breaking changes ⚙ 🔑 🎉 🎠 ❌

  • easy to use: lots of out-of-the-box methods.
  • less bug: not like others, I don't want to name it, and if you unluckily enough to encounter, it's easy to solve by yourself.

Installation ⚙🙈

pip install sqlstar

if you need help

sqlstar -h

Tips and tricks ✅

Guides 📝

for now, there is only mysql backend...

connection

import sqlstar

# driver://user:passwd@host:port/dbname
mysql = sqlstar.Database('mysql://root:***@localhost/tmp')
mysql.connect()

Query

QUERY = '''
    SELECT *
    FROM Girls
    WHERE AGE BETWEEN 20 AND 24
        AND BOYFRIEND IS NULL
    ORDER BY WHITE, RICH, BEAUTY DESC;
'''

Fetch data, and format result into Dataframe

df = mysql.fetch_df(QUERY)

Fetch all the rows

data = mysql.fetch_all(QUERY)

Fetch several rows

data = mysql.fetch_many(QUERY, 3)

Execute

mysql.execute("""
    CREATE TABLE `users` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `email` varchar(255) COLLATE utf8_bin NOT NULL,
        `password` varchar(255) COLLATE utf8_bin NOT NULL,
        PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
    AUTO_INCREMENT=1 ;
    """)

Insert

Insert many records

mysql.insert_many(table, data, cols)

Insert Dataframe type of data

mysql.insert_df(table, df)

Export

Export result to csv

mysql.export_csv(query, fname, sep)

Export result to excel

mysql.export_excel(query, fname)
Nice Features ✨

Create table

mysql.create_table(
    "users",
    comments={
        "name": "姓名",
        "height": "身高",
        "weight": "体重"
    },
    dtypes={
        "varchar(30)": [
            "name",
            "occupation",
        ],
        "float": ["height", "weight"],
        "int": ["age"],
    },
)

if you have data, you can make it more simple, just like this

mysql.create_table("users", df)

if you only want to specify some of them

mysql.create_table(
    table='news_spider',
    df=df,
    comments={
        "create_time": "插入时间",
        "title": "标题",
        "content": "正文",
        "author": "作者",
        "publish_time": "发布时间",
        "read_num": "阅读量",
    },
    # if type is not given, sqlstar will automatically inference
    dtypes={
        "datetime": ["create_time", "publish_time"],
        "longtext": ["content"],
        "varchar(100)": ["title", "author"],
        "decimal(10, 3)": ["read_num"]
    })

You don't need to fill in everything, and you just need to fill in comment or data type that you want to specify, then sqlstar will do the rest for you.

Rename table

mysql.rename_table(table, name)

Rename column

mysql.rename_column(table, column, name, dtype)

Add new column

mysql.add_column(table, column, dtype, comment, after)

Add comment for table

mysql.add_table_comment(table, comment)

Change column's attribute

mysql.change_column_attribute(table, column, dtype, notnull, comment)

Set primary key

mysql.add_primary_key(table, primary_key)

Truncate table's data, but keep the table structure

mysql.truncate_table(table)

Drop table

mysql.drop_table(table)

Drop column

mysql.drop_column(table, column)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sqlstar-3.1.6.tar.gz (42.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sqlstar-3.1.6-py2.py3-none-any.whl (45.6 kB view details)

Uploaded Python 2Python 3

File details

Details for the file sqlstar-3.1.6.tar.gz.

File metadata

  • Download URL: sqlstar-3.1.6.tar.gz
  • Upload date:
  • Size: 42.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.10.9

File hashes

Hashes for sqlstar-3.1.6.tar.gz
Algorithm Hash digest
SHA256 d0bc05dc20824a45907ef2f3caa93ff4fa275407afb1acd4981138d568f36a17
MD5 14412d90974ba61e3ccfcc8ce4c52afb
BLAKE2b-256 9491a8434634029da7b02026fbf634fde685f4f4ffc4a58552c8339f3494a59a

See more details on using hashes here.

File details

Details for the file sqlstar-3.1.6-py2.py3-none-any.whl.

File metadata

  • Download URL: sqlstar-3.1.6-py2.py3-none-any.whl
  • Upload date:
  • Size: 45.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.10.9

File hashes

Hashes for sqlstar-3.1.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 cc3484c840dd53680aed7895e2ec59913f4c20b3fa2084803802d930c148970d
MD5 6208608e29c2a25a1441ff83f911eb15
BLAKE2b-256 b79c3528fac3f6c542037cc67f84bc729a60fdcc995bb10c28904f847b92456c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page