zoukankan      html  css  js  c++  java
  • 数据库的基本使用——MySQL

    1. 数据库简介

    1. 数据库的介绍

    数据库就是存储和管理数据的仓库,数据按照一定的格式进行存储,用户可以对数据库中的数据进行增加、修改、删除、查询等操作。

    2. 数据库的分类

    • 关系型数据库
    • 非关系型数据库

    关系型数据库-RDBMS(Relational Database Management System):

    是指采用了关系模型来组织数据的数据库,简单来说,关系模型指的就是二维表格模型,好比Excel文件中的表格,强调使用表格的方式存储数据。

    关系型数据库的主要产品:

    • oracle:在以前的大型项目中使用,银行,电信等项目
    • mysql:web时代使用最广泛的关系型数据库
    • ms sql server:在微软的项目中使用
    • sqlite:轻量级数据库,主要应用在移动平台

    非关系型数据库:

    非关系型数据库,又被称为NoSQL(Not Only SQL ),意为不仅仅是SQL,对NoSQL 最普遍的定义是“非关联型的”,强调 Key-Value 的方式存储数据。

    常用的非关系型数据库:

    • MongoDB
    • Redis

     

    2. SQL

    SQL(Structured Query Language)是结构化查询语言,是一种用来操作RDBMS的数据库的语言。也就是说通过 SQL 可以操作 oracle,sql server,mysql,sqlite 等关系型的数据库。

    • SQL语句主要分为:
      • DQL:数据查询语言,用于对数据进行查询,如select
      • DML:数据操作语言,对数据进行增加、修改、删除,如insert、udpate、delete
      • TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback
      • DCL:数据控制语言,进行授权与权限回收,如grant、revoke
      • DDL:数据定义语言,进行数据库、表的管理等,如create、drop
      • CCL:指针控制语言,通过控制指针完成表的操作,如declare cursor
    • 对于web程序员来讲,重点是数据的crud(增删改查),必须熟练编写DQL、DML,能够编写DDL完成数据库、表的操作,其它语言如TPL、DCL、CCL了解即可
    • SQL 是一门特殊的语言,专门用来操作关系数据库
    • 不区分大小写

    在 Python代码中操作数据就是通过 SQL 语句来操作数据:

    # 创建Connection连接
    conn = connect(host='localhost', port=3306, user='root', password='mysql', database='python1', charset='utf8')
    # 得Cursor对象
    cs = conn.cursor()
    # 更新
    # sql = 'update students set name="刘邦" where id=6'
    # 删除
    # sql = 'delete from students where id=6'
    # 执行select语句,并返回受影响的行数:查询一条学生数据
    sql = 'select id,name from students where id = 7'
    # sql = 'SELECT id,name FROM students WHERE id = 7'
    count=cs.execute(sql)
    # 打印受影响的行数
    print(count)

    3. MySQL 简介

    1. MySQL数据库的介绍

    MySQL是一个关系型数据库管理系统,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件,

    它是由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品,MySQL 是最流行的关系型数据库管理系统中的一个。

    MySQL的特点:

    1. MySQL是开源的,所以你不需要支付额外的费用。
    2. MySQL支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
    3. MySQL使用标准的SQL数据语言形式。
    4. MySQL可以安装在不同的操作系统,并且提供多种编程语言的操作接口。这些编程语言包括C、C++、Python、Java、Ruby等等。

    2. MySQL数据库的安装

    • MySQL数据库服务端软件的安装
    • MySQL数据库客户端软件的安装

    服务端

    MySQL数据库服务端软件的安装:

    在Ubuntu中打开终端,输入下面的命令:

    sudo apt-get install mysql-server
    • 服务器用于接收客户端的请求、执行sql语句、管理数据库
    • 服务器端一般以服务方式管理,名称为mysql

    ps说明

    • ps 查看当前系统中的进程
    • -a 表示所有用户
    • -u 表示显示用户名
    • -x 表示显示所有的执行程序
    查看MySQL服务状态: 停止MySQL服务: 启动MySQL服务: 重启MySQL服务:
    sudo service mysql status
    sudo service mysql stop
    sudo service mysql start
    sudo service mysql restart



    配置

    MySQL配置文件的介绍:

    配置文件路径为: /etc/mysql/mysql.conf.d/mysqld.cnf

    主要配置信息说明:

    port表示端口号,默认为3306
    
    bind-address表示服务器绑定的ip,默认为127.0.0.1
    
    datadir表示数据库保存路径,默认为/var/lib/mysql
    
    log_error表示错误日志,默认为/var/log/mysql/error.log

    客户端

    MySQL数据库客户端软件的安装:

    客户端是程序员或者dba使用的软件,通过socket方式与服务端程序通信。

    常用的MySQL数据库客户端软件有

    1. 图形化界面客户端Navicat
    2. 命令行客户端mysql

    命令行客户端mysql的安装

    在Ubuntu中打开终端,输入下面的命令:

    sudo apt-get install mysql-client

    mysql命令的使用帮助:

    mysql --help

    MySQL客户端的使用:

    MySQL客户端连接MySQL服务端命令

    mysql -uroot -p

    说明:

    • -u: 表示MySQL服务端的用户名
    • -p: 表示MySQL服务端的密码
    • quit 或者 exit 或者 ctr + d 表示退出

    3. 数据类型和约束

    数据库中的数据保存在数据表中,在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,比如:数据类型和约束。

    3.1. 数据类型

    数据类型是指在创建表的时候为表中字段指定数据类型,只有数据符合类型要求才能存储起来,

    使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间

    常用数据类型如下:

    • 整数:int,bit
    • 小数:decimal
    • 字符串:varchar,char
    • 日期时间: date, time, datetime
    • 枚举类型(enum)

    数据类型说明:

    • decimal表示浮点数,如 decimal(5, 2) 表示共存5位数,小数占 2 位.
    • char表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为'ab ',3表示字符数
    • varchar表示可变长度的字符串,如varchar(3),填充'ab'时就会存储'ab',3表示字符数
    • 对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存储这个文件的保存路径.
    • 字符串 text 表示存储大文本,当字符大于 4000 时推荐使用, 比如技术博客.

    3.2  数据约束

    约束是指数据在数据类型限定的基础上额外增加的要求.

    常见的约束如下:

    • 主键 primary key: 物理上存储的顺序. MySQL 建议所有表的主键字段都叫 id, 类型为 int unsigned.
    • 非空 not null: 此字段不允许填写空值.
    • 惟一 unique: 此字段的值不允许重复.
    • 默认 default: 当不填写字段对应的值会使用默认值,如果填写时以填写为准.
    • 外键 foreign key: 对关系字段进行约束, 当为关系字段填写值时, 会到关联的表中查询此值是否存在, 如果存在则填写成功, 如果不存在则填写失败并抛出异常.

    说明:虽然外键约束可以保证数据的有效性,但是在进行数据的crud(增加、修改、删除、查询)时,都会降低数据库的性能,所以不推荐使用,那么数据的有效性怎么保证呢?答:可以在逻辑层进行控制

    3.3 数据类型附录表

    1. 整数类型
    2. 字符串
    3. 时间类型
    类型字节大小有符号范围(Signed)无符号范围(Unsigned)
    TINYINT 1 -128 ~ 127 0 ~ 255
    SMALLINT 2 -32768 ~ 32767 0 ~ 65535
    MEDIUMINT 3 -8388608 ~ 8388607 0 ~ 16777215
    INT/INTEGER 4 -2147483648 ~2147483647 0 ~ 4294967295
    BIGINT 8 -9223372036854775808 ~ 9223372036854775807 0 ~ 18446744073709551615
    类型说明使用场景
    CHAR 固定长度,小型数据 身份证号、手机号、电话、密码
    VARCHAR 可变长度,小型数据 姓名、地址、品牌、型号
    TEXT 可变长度,字符个数大于 4000 存储小型文章或者新闻
    LONGTEXT 可变长度, 极大型文本数据 存储极大型文本数据
    类型字节大小示例
    DATE 4 '2020-01-01'
    TIME 3 '12:29:59'
    DATETIME 8 '2020-01-01 12:29:59'
    YEAR 1 '2017'
    TIMESTAMP 4 '1970-01-01 00:00:01' UTC ~ '2038-01-01 00:00:01' UTC
  • 相关阅读:
    Charles 手机抓包HTTPS设置以及证书安装
    Charles 抓包配置
    charles Windows 安装
    charles 过滤指定域名
    charles 手机证书下载安装
    charles 手机抓包设置
    charles overvoew
    charles 主界面总结
    charles 右键菜单
    获取近一周,近两周,本月,上个月
  • 原文地址:https://www.cnblogs.com/zeon/p/13584430.html
Copyright © 2011-2022 走看看