zoukankan      html  css  js  c++  java
  • Python全栈 MySQL 数据库 (简述 、安装、基本命令)

    ParisGabriel
     
     
             每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰
     
      开局一张图
     
     
    一个月的python已经结束了  下面就是数据库了   先说MySQL 
    这个数据库应该差不多是用户量最多的了
      

    MySQL概述:
    1.什么是数据库:
        存储数据的厂库
    2.有哪些公司在用数据库
      金融机构、游戏网站、购物网站、论坛网站...
    3.提供数据库服务的软件
        1.软件的分类:
          MySQL、Oracle、SQL_Server、DB2、MongoDB、MariaDB
        2.生产环境中,如何选择使用哪些数据库软件:
          1.是否开源
            1.开源软件:MySQL、Mariadb、MongoDB
            2.商业软件:Oracle、DB2、SQL_Server
          2.是否跨平台
            1.不过平台:SQL_Server
            2.跨平台:......
            3.公司的类型:
        商业软件:政府部门、金融机构
        开源软件:游戏网站、购物网站、论坛网址站

    4.MySQL的特点:
      1.关系型数据库
        1.关系型数据库的特点
          1.数据是以行和列表格)的形式存储的
          2.表格到的每一行是一条记录 ,没一列叫一个字段
          3.表与表之间的逻辑关联叫关系
        2.示例:
          1.关系型数据库:
            表1 学生信息表
              姓名    年龄    班级
              张三    25       三班
              李四    25       六班
            表2 班级信息表
              班级     班主任
              三班     大空翼
              六班     松人
            寻找张三的班主任是谁
            通过两张表的关联关系查询出来(查询功能强大
        2.非关系型数据库
          {”姓名“:“张三”, ”年龄“:25, “班主任”}
          以字典的形式存储 键值对形式纯在的
         如果没有则则无法找到 (查询速度快
      2. 跨平台:
        可以在Windows、Unix、Linux、上运行数据库服务
      3. 支持多种编程语言
        Python、Java、PHP....

    5.数据库软件数据库数据厂库概念
      1.数据库软件:
        就是一个软件看的见可操作、是现实数据的逻辑功能
      2.数据库:
        是一种逻辑概念,用来存放数据的厂库侧重于存储
      3.数据厂库
        从数据量来说,比数据库庞大的多,主要用于数据分析和数据挖掘
        那个时间段用户登录最多,那个用户一年购物最多

     MySQL的安装

    1.Ubuntu安装MySQL服务

      1.安装服务端
        sudo apt-get install mysql-server
        apt-get系统自带到的安装服务

      2.安装客户端
        sudo apt-get install mysql-client

      3.Ubuntu安装软件:
        1.sudo apt-get update

          访问源列表中的每个网址,读取软件列表,保存到本地 /var/lib/apt/lists

        2.sudo apt-get upgrade      

          把本地已安装的软件与刚下的列表进行对比
          如果发现已安装的软件版本低    则全部更新

        3.sudo apt-get -f install
          修复依赖关系

        2.启动和链接MySQL服务
          1.服务端启动
            1.查看状态
              sudo /etc/init.d/mysql status (查询)
            2.启动
              sudo /etc/init.d/mysql start (启动)
              sudo /etc/init.d/mysql stop (停止)
              sudo /etc/init.d/mysql restart(重启)
              sudo /etc/init.d/mysql reload(重新加载配置文件)
          2.客户端链接
            1.命令格式
              mysql -h主机地址 -u用户名 -p密码
              mysql -hlocalhost -uroot -p123456
    SQL命令的使用规则:
        1.没填命令必须 结尾
         2.SQL不区分大小写
        3.使用c终止当前命令执行
    2.库的管理:
    1.库的基本操作
      1.查看已有的库
        show databases;
      2.创建库
        create database 库名;
        create database 库名 character set utf8;(字符编码)
      3.查看创建库的语句(字符集)
        show create database 库名;
      4.查看当前所在的库:
          select database():
      5.切换库
        use 库名;
      6.查看库中已有的表
        show tables;
      7.删除库
        drop database 库名;
      库名的命名规则:
        1.数字、字母、下划线,但是不能使用纯数字
        2.库的名字区分大小写
        3.不能使用特殊字符和MySQL关键字
        3. 表的管理
    2.表的基本操作
      1.查看表
        show tables
      2.创建表
        create table 表名(
        字段名 数据类型,
        字段名 数据类型,
        .......
        );
      3.查看已有表的字符集
        show create table 表名;
      4.查看表结构
        desc 表名;
      5.删除表
        drop table 表名;
    3.注意:
      1.所有的数据都是以文件的形式存放在数据库根目录下
      2.数据目录/var/lib/mysql

    4.mac安装mysql
      1.cd
      2.vi.bash_profile
      添加:PATH=“$PATH”:/usr/local/myswl/bin
      3.source .bash_profile
    5.表记录管理
      1.插入(insert)
        1.insert into 表名 values(值1),(值2).....;
        2.insert into 表名(字段1,.....)values(值1),....;
      2.查询(select)
        select * from 表名 [where 条件] 查询所有字段;
        select 字段名1,字段名2,... form 表名 [where 条件];

    6.如何更改默认字符集
      1.方法(通过更改mysql配置文件实现)
      2.步骤
        1.获取root权限
          sudo -i
        2.cd /etc/mysql/mysql.conf.d/
        3.备份:cp mysql.cnf mysqld.cnf.bak
        4.subl mysqld.cnf
          [mysqld]
          character_set_server = utf8
        5.重启mysql服务
          /etc/init.d/mysql
    7. 客户端把数据存到数据库服务器上的过程
      1.链接到数据库服务器 mysql -uroot -p123456
      2.选择一个 use 库名
      3.创建表/修改表 update 表名...
      4.断开与数据数据库链接  exit;| quit; | q
    8.数据类型
      1.数字类型
        1.整型
          1.int 大整型(4个字节
          取值范围:2**32 - 14294967295
        2.tinyint 微小整型(一个字节
          1.有符号(signed默认):-128 ~ 127
          2.无符号(unsigned):0 ~ 255
          3.smallint 小整型(2字节
          4.bigint 极大整型(8字节
        2.浮点型
          1.float4个字节,最多显示7个有效位
          1.用法:
            字段名 float(m,n) m:总位数  n:小数位数
            float(5,2)取值范围? -999.99 ~ 999.99
          2.decimal(最多显示28有效位
            decimal(m,n)
            存储空间(整数小数分开存储)
          规则将9的倍数包装成4个字节
            余数        字节
              0       0
            1-2      1
            3-4      2
            5-6      3
            7-9      4
          示例decimal(19,9)
            整数部分: 10/9 = 1 % 1 4字节+1字节=5字节

            小数部分: 9/9 = 1 % 0 4字节+0字节=4字节

            共占:9字节

      2.字符类型
        1.char(定长)
          1.取值范围:1~255
          2.varcahr(变长)
            1.取值范围:1~65535
          3.text  / longtext(存储范围:4G)/blob /longblob(4G)
    char和varchar的特点:
      1.cahr浪费储存空间,性能高
      2.varchar节省储存空间,性能低

    3、练习
    1、创建库testdb,指定字符集为 utf8
    2、进入到库 testdb
    3、查看当前所在库
    4、创建库 testdb2,指定字符集为 latin1
    5、进入到库 testdb2
    6、查看 testdb2 的字符集(查看创建库的语句)
    7、删除库 testdb
    8、删除库 testdb2
    答案:

    create database testdb character set utf8;
    use testdb;
    select database();
    create database testdb2 character set latin1;
    use testdb2;
    show create database testdb2;
    drop database testdb;
    drop database testdb2;

    2、练习
    1、创建库python1
    2、在python1库中创建表 pymysql并指定字符集为utf8,字段有三个:id 、name char(15) 、 age
    3、查看创建表pymysql的语句
    4、查看pymysql的表结构
    5、删除表pymysql
    6、创建库python2
    7、在python2中创建表t1并指定字符集为utf8,字段有 id 、name 、score,数据类型自己定义
    8、查看t1的表结构
    9、删除表t1
    10、删除库 python2

    答案:

    create database python1;
    use python1;
    create table pymysql(
    id int,
    name char(15),
    age int
    ) character set utf8;
    show create table pymysql;
    desc pymysql;
    drop table pymysql;
    create database python2;
    use python2;
    create table t1(
    id int,
    name char(15),
    score float(5,2)
    ) character set utf8;
    desc t1;
    drop table t1;
    drop database python2;

    3、练习
    1、查看所有的库
    2、创建新库 studb
    3、在 studb 中创建表 tab1 ,指定字符集utf8,字段有 id 、name、age
    4、查看tab1的表结构
    5、在tab1中随便插入2条记录
    6、在tab1中的name、age两个字段插入2条记录
    7、查看tab1中所有记录
    8、查看tab1表中所有人的姓名和年龄
    9、查看tab1表中年龄大于20的信息
    答案:

    show databases;
    create database studb;
    use studb;
    create table tab1(
    id int,
    name char(10),
    age int
    )character set utf8;
    desc tab1;
    insert into tab1 values
    (1,"张三丰",100),(2,"张无忌",30);
    insert into tab1(name,age) values
    ("金毛狮王",88),("紫衫龙王",87);
    select * from tab1;
    select name,age from tab1;
    select * from tab1 where age>20;

    3、练习
    1、创建库 studb2 ,并在库中创建表 stuinfo,要求:
    id :大整型
    name :字符类型,宽度为15
    age :微小整型,不能为负数
    height :浮点型,小数位为2位(float)
    money :浮点型,小数位为2位(decimal)
    2、查看stuinfo的表结构
    3、查看stuinfo的默认字符集
    4、在表中插入1条完整记录
    5、查询所有表记录
    6、在表中id 、name两个字段插入2条记录
    7、查询所有学生的id和姓名
    答案:

    create table stuinfo(
    id int,
    name char(15),
    age tinyint unsigned,
    height float(5,2),
    money decimal(20,2)
    );
    desc stuinfo;
    insert into stuinfo values (1,"Bob",23,176,88888.88);
    select * from stuinfo;
    insert into stuinfo(id,name) values
    (2,"Jim"),(3,"Tom");
    select id,name from stuinfo;

    8、作业
    1、MySQL中数据类型有:____ ____ 枚举类型 日期时间类型
    整数型、字符型
    2、关系型数据库中的核心内容是 ___ 即 二维表
    关系
    3、简述客户端把数据存储到数据库服务器上的过程
    链接数据库
    切换的相应的库
    找到相应的表格进行操作
    断开数据库链接
    4、char和varchar的区别,各自的特点
    char:浪费储存空间 但性能高
    varcchar:节省存储空间 但性能低
    5、操作
    1、创建一个学校的库 school
    2、在库中创建表 students 用来存储学生信息:
    id 大整型
    姓名、年龄(不能为负)、性别、成绩(浮点)
    3、查看students的表结构
    4、在表中随意插入3条记录
    5、在表中的 姓名、成绩两个字段插入3条记录
    6、查看所有学生的姓名和成绩
    8、查看成绩及格(>60分)的学生的姓名和成绩

    答案:

    create database school;
    use school;
    create table students(
    id int,
    name char(15),
    age tinyint unsigned,
    gender char(2),
    score float(5,2)
    );
    desc students;
    insert into students values 
    (1,"张三",20,"男",95.56),
    (2,"李四",21,"男",98.30),
    (3,"王浅",21,"女",100);
    
    insert into students (name,score) values 
    ("tom",60),
    ("lili",56),
    ("zhao",58.56);
    select name,score from sutdents;
    select name,score from students where score>=60;
  • 相关阅读:
    PyQt 滚动条自动到最底部
    Python 装饰器示例,计算函数或方法执行时间
    pyuic5将.ui文件转为.py文件
    Python pyinstaller 参数
    Win+R 常用命令
    CODEVS 2171 棋盘覆盖
    P3924 康娜的线段树
    P1850 换教室
    U33405 纽约
    POJ
  • 原文地址:https://www.cnblogs.com/ParisGabriel/p/9393540.html
Copyright © 2011-2022 走看看