美文网首页
Python操作三大数据库

Python操作三大数据库

作者: orca123456 | 来源:发表于2018-12-28 23:42 被阅读0次

python MySQL数据库

//查看数据库列表
show databases;
//切换到其中一个
use baidu;
//查看表
show tables;

SQL语法基础

DDL(数据定义语句)

CREATE TABLE/DATABASE
ALTER TABLE/DATABASE
DROP TABLE/DATABASE

DML(数据管理语句)

INSERT 增
DELETE 删
UPDATE 改
SELECT 查

创建并使用数据库
CREATE DATABASE mydatabase;
USE mydatabase;
查看已有数据库
SHOW DATABASES;
建表语句

CREATE TABLE `students`(
    `id` INT NOT NUL AUTO_INCREMENT,
    `name` VARCHAR(200) NOT NULL
);

查询语句

SELECT select_expr,...
FROM table_references
[WHERE where_definition]
[GROUP BY {col_name|expr|position}]
[HAVING where_definition]
[ORDER BY {col_name|expr|position} [ASC|DESC], ...] --排序
[LIMIT {[offset,] row_count}]

修改语句

UPDATE tables_references SET col_name1=expr1[,col_name2=expr2...]
[WHERE where_definition]

删除

DELETE FROM tbl_name
[WHERE where_definition]

例子

CREATE DATABASE `school`;
USE `school`;
CREATE TABLE `students`(
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `name` VARCHAR(20) NOT NULL,
    `nickname` VARCHAR(20) NULL,
    `sex` CHAR(1) NULL,
    `in_time` DATETIME NULL
) DEFAULT CHARSET 'UTF8';

INSERT INTO `students`(`name`, `nickname` , `sex`) VALUES
    ('张三','三哥','男'),
    ('张三X','三哥X','男'),
    ('张三X1','三哥X1','男'); 
SELECT `id`,`name`,`nickname` FROM `students` WHERE `sex`='男' ORDER BY `id` DESC LIMIT 0,2;
SELECT `id`,`name`,`nickname` FROM `students` WHERE `sex`='男' ORDER BY `id`;
UPDATE `students` SET `sex`='女',`nickname`='没有昵称' WHERE `sex`='男';
UPDATE `students` SET `sex`='男',`nickname`='没有昵称' WHERE `id`>6;
DELETE FROM `students` WHERE `sex`='男';

安装mysql

MySQL ORM --SQLAlchemy

pip install SQLAlchemy --安装
import sqlalchemy --测试
sqlalchemy.version

Python MongoDB

  • 安装
    https://www.mongodb.com/download-center/
    msi版如果安装不成功可以下载zip版直接解压

  • 启动
    Windows: mongod.exe --dbpath D:\MongoDB\DB
    Mac: mongod --config /usr/local/etc/mongod.conf
    Linux: sudo service mongod start

  • 连接数据库
    mongo

  • 查看数据库列表
    show dbs

  • 切换到某个数据库(不需要创建)
    use databasename

  • 插入数据

stu = {
    name:'Jhon',
    age:21
}
db.databasename.insert(stu)
  • 查询数据
    db.students.find()
  • 修改数据
    stu.name = "Amy"
    db.students.update({name:"Jhon",stu})
  • 删除数据
    db.students.update({name:"Amy"})

pymongo

//安装
pip install pymongo
文档:http://api.mongodb.com/python/current/
pypi:https://pypi.python.org/pypi/pymongo
github:https://github.com/mongodb/mongo-python-driver/
//连接数据库
client = MongoClient()
client = MongoClient('localhost',27017)
client = MongoClient('mongodb://localhost:27017/')

MongoDB ODM MongoEngine

pip install mongoengine

flask-mongoengine

pip install flask-mongoengine
文档:http://flask-mongoengine.readthedocs.io/en/latest/

在ubantu服务器上安装mongoDB

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

sudo vi /etc/apt/sources.list.d/mongodb-org-3.4.list //设置下载镜像
http://mirrors.aliyun.com/mongodb/apt/ubuntu

cat /var/log/mongodb/mongod.log //检查服务是否开启
sudo service mongod start //开启服务
sudo service mongod stop //停止服务
sudo service mongod restart //重启

sudo vi /etc/mongod.conf //打开配置文件,修改默认端口
sudo vi /etc/iptables.up.rules //更改防火墙配置文件中的端口号

//配置远程连接
sudo vi /etc/mongod.conf //配置文件,把 bind_ip=127.0.0.1 修改为 0.0.0.0

Redis数据库

//官网
http://redis.io/
//中文网站
http://www.redis.cn/
//windows
http://github.com/MSOpenTech/redis/releases

String操作

set --设置值
get --获取值
mset --设置多个键对
mget --获取多个键对
append --添加字符串
del --删除
incr/decr --增加/减少1

List列表相关操作

lpush/rpush --从左/右插入数据
lrange --获取指定长度的数据
ltrim --截取一定长度的数据
lpop/rpop --移除最左/最右的元素并返回
lpushx/rpushx --key存在的时候才插入数据,不存在时不做任何处理

Set集合相关操作

sadd/srem --添加/删除元素
sismember --判断是否为set的一个元素
smembers --返回该集合的所有成员
sdiff --返回一个集合与其他集合的差异
sinter --返回几个集合的交集
sunion --返回几个集合的并集

Hash散列相关操作

hset/hget --设置/获取散列值
hmset/hmget --设置/获取多对散列值
hsetnx --如果散列已经存在,则不设置
hkeys/hvals --返回所有Keys/Values
hlen --返回散列包含域(field)的数量
hdel --删除散列指定的域(field)
hexists --判断是否存在

Redis Desktop Manager

官网:https://redisdesttop.com/
Github: https://github.com/uglide

python操作redis

pip install redis
import redis

相关文章

网友评论

      本文标题:Python操作三大数据库

      本文链接:https://www.haomeiwen.com/subject/ojmylqtx.html