Python编程入门学习笔记(六)

python学习笔记(六)

## Python第三课

### 推荐一个python数据结构可视化工具 http://www.pythontutor.com/

### 课表

- Mysql数据库的基本操作
- 用python操作数据库
- 编写python爬虫并保存到数据库

### 数据库

    我们平时说的数据库,指的是数据库管理系统

### Mysql数据库

    MariaDB:MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品

### 关系型数据库

    另外一种类型的数据库是:非关系型数据库。比较流行的是:Mongodb,redis


```python
dict = {
    'a' = 100,
    'b' = 200
}
```

    json格式 数据交换语言


```python
import json

with open('K:/Code/jupyter-notebook/Python Study/test.json') as f:
 #  json.load(f)
    print(f.readlines())

```

    ["{'a' : 100,'b' : 200,'c' : 300}"]
    


```python
#错误
data_1 = "{'a': 1,'b': 2,'c': 3}"
#正确,单引号在外
data_2 = '{"a": 1,"b": 2,"b": 3}'

j_data = json.loads(data_2)
type(j_data)

with open('K:/Code/jupyter-notebook/Python Study/test.json', 'r') as f:
    json.load(f)
    print(j_data)
```

    {'a': 1, 'b': 3}
    

### MySQL数据库基本操作


```python
# 链接数据库
mysql -u root -p
# u 是用户名 p 是需要用密码登录

# 查看数据库
show databases;

# 选择数据库
use database_name;

# 查看数据库中的table表
show tables;

# 查看table表的数据结构
desc tables;

# 查看表中的数据
select * from table_name;

# 查看数据并限制数量
select * from table_name limit 10;
```

### 数据库管理工具

 sequelpro(mac) 链接: http://www.sequelpro.com/  
 Navicat(Win)

#### 命令行操作数据库

#### 创建数据库
    creat database database_name;
#### 删除数据库
    drop database database_name;
#### 指定字符集和校对集,创建数据库
    creat database database_name default charset utf8mb4 collate utf8mb4_general_ci; 
#### 创建表格
    create table table_name{
        id int(11) unsigned not null default null auto_increment,
        name varchar(80) not null,
        primary key('id')
    };
#### 插入数据
    insert into column_name ('id','name')
        values(1,'value_name');
#### 修改数据
    update column_name set name = 'value_name2';
        where name = 'value_name1';
#### 删除数据
    delete from column
        where id = 6;

#### mysql数据类型: http://www.runoob.com/mysql/mysql-data-types.html

### 使用Python操作数据库

#### python安装第三方库
    1、pip : 举例:pip install pymysql
    2、conda : 举例:conda install pymysql

#### python安装MySQL数据库支持
    pip install MySQL-python
    pip install pymysql 


```python
import pymysql
```


```python
DATABASE = {
    'host': 'localhost', #如果是远程数据库,此处为远程服务器的ip地址
    'database': 'db_library',
    'user' : 'root',
    'password': 'toor',
    # 字符集编码,防止数据乱码
    'charset' : 'utf8'
}
# db = pymysql.connect(host = 'localhost',user = 'root',password = 'toor',database = 'goods',charset = 'utf8')
# 等价于
# db = pymysql.connect('localhost','root','toor','goods',)
# 等价于
db = pymysql.connect(**DATABASE)
```

### 游标


```python
cursor = db.cursor()
```

### 查询


```python
sql = "SELECT * FROM tb_booktype limit 5"
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
    print(row)
```

    (1, '文学作品', 5, 5.0)
    (2, '武侠小说', 3, 0.0)
    (3, '计算机类', 10, 1.0)
    (4, '微型小说', 6, 1.0)
    (5, '逻辑推理', 13, 10.0)
    

### 插入操作


```python
sql = "INSERT INTO tb_booktype(typename) VALUES('英语阅读');"
cursor = db.cursor()
cursor.execute(sql)
db.commit()
```

### 删除操作


```python
sql = "delete from tb_booktype where typename='英语阅读';"
cursor = db.cursor()
cursor.execute(sql)
db.commit()
```

### 更新操作


```python
sql = "update tb_booktype set typename='英语文学' where typename='英语阅读';"
cursor = db.cursor()
cursor.execute(sql)
db.commit()
```

### 捕捉异常


```python
try:
    do something
except Exception as e:
    print(e)
```

猜你喜欢

转载自blog.csdn.net/sonicgyq_gyq/article/details/80692764