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.8.tar.gz (42.9 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.8-py2.py3-none-any.whl (45.9 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: sqlstar-3.1.8.tar.gz
  • Upload date:
  • Size: 42.9 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.8.tar.gz
Algorithm Hash digest
SHA256 a70afc8bfbe9aa7f3986fa60a93a247c30ba42d0ec36a2d6628f9d0ad872b92a
MD5 d05b45815b91e6434bd3fb44cf7b0d03
BLAKE2b-256 8f825fd0cdc3ebc3b562c1d4dfce55a454d75d234f37c1b9faff83a27d1cb052

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sqlstar-3.1.8-py2.py3-none-any.whl
  • Upload date:
  • Size: 45.9 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.8-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 23345a38c57dbcefa5f41f9f6a7c7a0b7df9c151d4ad41442042aa67c63e24c0
MD5 9d5ca573e9e08e86e2bad28ea54c99c3
BLAKE2b-256 44529a3a6c39b274ef8c3d410476a5a19b661ee0c4a71bca1ad326f121773bfa

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