doraemon的python 数据库1

## 第十章 数据库

### 10.1 数据库的基本认识

为什么要有数据库:

- 很多功能如果只能通过文件来改变数据是给常繁琐的,程序员就需要做很多事情
- 对于多台机器或者多个进程操作一份数据,程序员自己解决并发问题和安全问题比较麻烦
- 自己处理一些数据备份,容易出错



基本概念:

- 数据库管理系统——专门用来管理数据文件,帮助用户更简洁的操作数据的软件    DBMS
- 数据 data
- 文件夹 database
- 数据库管理员 DBA



数据库管理系统:

- 关系型数据库
  - spl server
  - oracle 收费、比较严谨、安全性比较高
    - 国企 事业单位 银行 金融行业在用
  - mysql 开源的
    - 小公司 互联网公司
  - sqllite
- 非关系型数据库
  - redis
  - mongodb

### 10.2 mysql常用指令

mysql的CS架构:

- mysql install 安装数据库服务
- net start mysql 启动数据库的server端
- server net stop mysql 停止



mysql的用户和权限:

- 在安装数据库之后,有一个最高级的用户root
- mysql 192.168.12.87 eva/123 或者 mysql -h192.168.12.87 -uroot -p123



重要的操作指令:

查看当前用户是谁

- select user()  ;

设置密码

- set password = password('密码')   ;

创建用户

- create user 'liujia'@'192.168.12.%' identified by '123';    #表示192.168.12.0网段的用户可以使用这个用户名
- mysql -uliujia -p123 -h192.168.12.%;

授权

- grant all on day37.* to '' to 'liujia'@'192.168.12.%'- grant select on 库名.* to '用户名'@'ip地址/段' identified by '密码'

授权并创建用户

- grant all on day37.* to 'alex'@'%' identified by '123';

查看文件夹

- show databases;

创建文件夹

- create database day37;

### 10.3库、表、数据

库、表、数据:

- 创建库、创建表 DDL数据库定义语言
- 存数据,删除数据,修改数据,查看 DML数据库操纵语句
- grant/revoke DCL数据控制权限

#### 10.3.1 库:

- create database 数据库名;  创建数据库
- show database;  查看大年有多少个数据库
- select database(); 查看当前使用的数据库
- use 数据库名; 切换到这个数据库(文件夹)下

#### 10.3.2 表:

表:

- show tables 查看当前文件夹中有多少张表
- create table student(id int,name char(4)); 创建表
- drop table student; 删除表
- desc 表名;  查看表结构,值查看表的字段的基础信息
- show create table 表名; 能看到和这张表相关的所有信息
- show variables like '%engine%';  查看配置项

操作表中的数据:

- 数据的增加
  - insert into student values(1,'liujia');
  - insert into student values(2,'liudanni');
- 数据的查看
  - select * from student;
- 修改数据
  - updata 表 set 字段名=值;
  - updata student set name = 'liuxinyu';
  - updata student set name = 'liujai' where id = 2;
- 删除数据
  - delete from 表名;
  - delete from student where id = 1

表的存储方式:

- 存储方式1:MyISAM mysql5.5 以下 默认的存储方方式
  - 存储的文件个数:表结构、表中的数据、索引
  - 支持表级锁
  - 不支持行级锁 不支持事务 不支持外键
- 存储方式2:InnoDB mysql5.5以上 默认的存储方式
  - 存储的文件个数:表结构、表中的数据
  - 支持行级锁、执行表级锁
  - 支持事务
  - 支持外键
- 存储方式3:MEMORY 内存
  - 存储的文件个数:表结构
  - 优势:增删改查很快
  - 劣势:重启数据消失、容量有限

##### 10.3.2.1 数据类型

整数 int

create table t1 (id1 int(4),id2 int(11));

- int默认是有符号的,可以传带有符号的
- 它所表示的数字范围不被宽度约束
- 他是能约束数字的显示宽度

小数 float

create table t2 (f1 float(5,2),d1 double(5,2));

create table t3 (f1 float,d1 double);

create table t3 (d1 decimal,d2 decimal(25,20));

日期和时间

类型:

- year 年
- date 年月日
- time 时分秒
- datetime、timestamp 年月日时分秒

create table t4 (y year,d date,dt datetime,t time,ts timestamp)

字符串 

char(15) 定长的单位,当传字符串长度不够时候,会自动补充空格

varchar(15) 变长的单位,在字符串后面生成一个记录字符串长度的数字

哪一个存储方式好:

- varchar:节省空间、存取效率相对低
- char:浪费空间,存取销量相对高,长度变化小
- 生活中示例:
  - char:手机号、身份证、用户名、密码
  - varchar:评论 微博 说说 微信状态

enum和set

create table t6 (name,char(4),

gender ENUM('male','female'),   #只能传入一个数据,只能是male或者female

hooby set('喝酒','抽烟','烫头'));    #传入的数据可以试多个,但必须是表中的

猜你喜欢

转载自www.cnblogs.com/doraemon548542/p/11454603.html