| name | database |
| version | 0.1.0 |
| author | devclaw |
| description | Database operations — PostgreSQL, MySQL, MongoDB, Redis queries |
| category | data |
| tags | ["database","postgres","mysql","mongodb","redis","sql"] |
| requires | {"bins":["psql","mysql","mongosh","redis-cli"]} |
Database
Interact with various databases using CLI tools.
Setup
command -v psql
command -v mysql
command -v mongosh
command -v redis-cli
command -v sqlite3
PostgreSQL
psql -h localhost -U user -d dbname
psql "postgresql://user:pass@host:5432/dbname"
psql -h localhost -U user -d dbname -c "SELECT * FROM users LIMIT 10;"
psql -f queries.sql
psql -l
psql -d dbname -c "\dt"
psql -d dbname -c "\d tablename"
psql -d dbname -c "COPY (SELECT * FROM users) TO STDOUT WITH CSV HEADER" > users.csv
psql -d dbname -c "\COPY users FROM 'users.csv' WITH CSV HEADER"
MySQL
mysql -h localhost -u user -p dbname
mysql -h localhost -u user -p dbname -e "SELECT * FROM users LIMIT 10;"
mysql -h localhost -u user -p dbname < queries.sql
mysqldump -u user -p dbname > backup.sql
mysql -u user -p dbname < backup.sql
mysqldump -u user -p dbname tablename > table.sql
MongoDB
mongosh "mongodb://user:pass@host:27017/dbname"
mongosh "mongodb+srv://cluster.example.com/dbname" --username user
mongosh dbname --eval 'db.users.find().limit(10)'
mongoexport --uri="mongodb://host/dbname" --collection=users --out=users.json
mongoimport --uri="mongodb://host/dbname" --collection=users --file=users.json
mongodump --uri="mongodb://host/dbname" --out=backup/
mongorestore --uri="mongodb://host/dbname" backup/dbname/
Redis
redis-cli -h localhost -p 6379
redis-cli -h localhost -p 6379 -a password
redis-cli -h localhost GET mykey
redis-cli -h localhost SET mykey "value"
redis-cli -h localhost KEYS '*'
redis-cli -h localhost INFO
redis-cli -h localhost MONITOR
redis-cli -h localhost BGSAVE
redis-cli -h localhost --scan | xargs -L 1 redis-cli -h localhost GET
SQLite
sqlite3 database.db
sqlite3 database.db "SELECT * FROM users LIMIT 10;"
sqlite3 database.db -cmd ".mode csv" -cmd ".import users.csv users"
sqlite3 database.db -cmd ".mode csv" -cmd ".output users.csv" "SELECT * FROM users;"
sqlite3 database.db .dump > backup.sql
Common Queries
psql -d dbname -c "
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE,
created_at TIMESTAMP DEFAULT NOW()
);"
mysql -u user -p dbname -e "
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);"
mongosh dbname --eval 'db.users.createIndex({email: 1})'
Tips
- Use connection strings for complex auth
- Use
-c or -e for single queries
- Use
\d in psql to describe tables
- Use
.help in SQLite for commands
- Always backup before destructive operations
Triggers
database, postgres, mysql, mongodb, redis, sql, database query,
psql, database connect