• 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('喝酒','抽烟','烫头'));    #传入的数据可以试多个,但必须是表中的
  • 相关阅读:
    树莓派开机启动
    树莓派连接18b20测温度
    树莓派VNC
    树莓派python 控制GPIO
    树莓派笔记
    用nohup执行python程序时,print无法输出
    mysql 函数应用
    mysql 正则表达式判断是否数字
    mysql select into 不支持
    tushare
  • 原文地址:https://www.cnblogs.com/doraemon548542/p/11454603.html
Copyright © 2020-2023  润新知