python-MySQL数据库基础(一)数据库基础知识、MYSQL的介绍和安装、数据类型

数据库介绍

数据库(database)简称DB,实际上是一个文件集合,是一个存储数据的仓库,本质上是一个文件系统,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查等操作,音乐,视频等文件也是数据。

数据库存储数据的特点

  1. 持久化存储,不会因为电脑死机、突然断电等情况而丢失数据。
  2. 读写速度极高,用SQL语句进行操作,效率高。
  3. 保证数据的有效性,对数据有数据类型、数据唯一性、有效性等的约束。
  4. 对程序支持非常好,容易扩展,在JAVA、PHP、C、Python等语言中都支持数据库。

数据库的分类

  1. 关系型数据库
    可以保存现实生活中的各种关系数据,数据库中存储数据以表为单位,主流的关系型数据库:MYSQL,Oracle,SQLServer等
  2. 非关系型数据库
    通常用来解决某些特定的需求,比如高并发访问,主流非关系型数据库:Redis,Mongodb,memacahe等

MYSQL介绍与安装

MYSQL介绍

MYSQL是由瑞典MySQL AB公司开发,发现用ISAM和mSQL来访问表格的速度和灵活性不能满足需求,于是便开发了跟mSQL接口类似的数据引擎MYSQL。Oracle和SQL Server是商业的数据库,mysql是开源的。
MYSQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言(结构化查询语言SQL)进行数据库管理,MYSQL因为其速度、可靠性和适应性而备受关注。在不需要事务化处理的情况下,MYSQL是管理内容最好的选择。excel跟MYSQL进行数据管理类似,但数据的存放量和灵活性不如MYSQL。

MYSQL特点

  1. mysql是开源的,所以你不需要支付额外的费用就能使用。
  2. mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
  3. mysql使用标准的SQL数据语言形式。
  4. mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括R、Python、Java、PHP、Ruby等。

MYSQL安装

下载地址:http://www.mysql.com/downloads
python-MySQL数据库基础(一)数据库基础知识、MYSQL的介绍和安装、数据类型_第1张图片
python-MySQL数据库基础(一)数据库基础知识、MYSQL的介绍和安装、数据类型_第2张图片
分为在线安装和下载到本地安装。安装时默认选择,然后依次点击"Excute"、“Next”、"Finish"都能解决。安装完成后把安装目录下的bin文件夹添加到环境变量里才能正常使用。
从cmd中进入到mysql安装目录下的bin文件夹内,输入mysql -uroot -p ,输入密码就可以进入到mysql数据库。
python-MySQL数据库基础(一)数据库基础知识、MYSQL的介绍和安装、数据类型_第3张图片
也可以用PhStudy代替MYSQL,它非常适合用来搭建网站,是一个集成开发环境,安装后需要启动MYSQL服务,才能连接到数据库。

图形界面管理工具

使用命令进行输入的时候,相比用excel等图文并茂的操作会有些不方便,这时候就需要使用图形界面管理工具,这里使用SQLyong图形界面。

SQLyong介绍

SQLyong是一个快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理数据库,由业界著名的Webyong公司出品,也是一个开源软件。
开源软件(open source software),简称OSS,公开源代码软件。因此开源软件具备可以免费使用和公布源代码的特征。
SQLyong只是一个连接数据库的工具,并不是数据库。
下图为安装成功SQLyong后的界面,尽量不要安装到C盘,密码为安装SQL时候的,不要设置的过于复杂。
python-MySQL数据库基础(一)数据库基础知识、MYSQL的介绍和安装、数据类型_第4张图片
下图为进入SQLyong的界面
python-MySQL数据库基础(一)数据库基础知识、MYSQL的介绍和安装、数据类型_第5张图片
右键点击root@localhost,选择创建数据库,输入数据库的名称为test1,基字符集选择utf8,数据库排序规则选择utf8_general_ci,然后点击创建。
python-MySQL数据库基础(一)数据库基础知识、MYSQL的介绍和安装、数据类型_第6张图片
就会出现如下图所示的界面,右键点击表,选择创建表,会弹出新表的界面,输入表名称为demo1,引擎选择InnoDB,字符集选择utf8,在下方输入列名、数据类型、长度等信息。
python-MySQL数据库基础(一)数据库基础知识、MYSQL的介绍和安装、数据类型_第7张图片

MYSQL语法基础

SQL

SQL是结构化查询语言,是一种用来操作RDBMS(关系型数据库管理系统)的数据库语言,当前关系型数据库都支持SQL语言进行操作,也就是说通过SQL操作orcal,sql sever,mysql等关系型数据库。

SQL语句分类

  1. DDL语句:数据定义语言,这些语句定义了不同的数据点、数据库、表、列、索引等数据库对象。
  2. DML语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。
  3. DCL语句:数据控制语句,用于控制不同数据段直接许可和访问级别的语句。

数据完整性

在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束。

数据类型

数值类型

整数类型有5种,每个种类包含的数字大小是不一样的,定义数据的范围是合适就好,当定义数据的范围比较大的时候,建议使用无符号范围。

整数类型 有符号范围(有正有负) 无符号范围(正数范围)
TINYINT(size) -128~127 0~255
SMALLINT(size) -32768~32767 0~65535
MEDIUMINT(size) -8388608~8388607 0-16777215
INT(size) -2147483648~2147483647 0-4294967295
BIGINT(size) -9223372036854775808~9223372036854775807 0~18446744073709551615

小数类型有3种,size指的是数据的长度,d为保留的小数位数。

小数类型 描述
FLOAT(size,d) 带有浮动小数点的小数字。在括号中规定最大位数,在d参数中规定小数点右侧的最大位数。
DOUBLE(size,d) 带有浮动小数点的大数字。在括号中规定最大位数,在d参数中规定小数点右侧的最大位数
DECIMAL(size,d) 作为字符串存储的DOUBLE类型,允许固定的小数点,默认会保留整数,舍去小数。(定点数类型)

字符串类型

字符串类型 字节大小 示例
CHAR(size) 0~255 char(3)输入’ab ‘(添加空格,凑成3个字符的长度),实际存储为’ab’;输入’abcd’,实际存储为’abc’
VARCHAR(size) 0~65535 char(3)输入’ab’,实际存储为’ab’;输入’abcd’,实际存储为’abc’

枚举类型

枚举类型的英文为ENUM,对1~ 255个成员的枚举需要1个字节存储;对于255~65535个成员,需要2个字节存储,最多允许65535个成员,创建方式:enum(“M”,“F”),创建时会自动弹出枚举值列表框,在输入值中填入要输入的内容,如男、女分别添加进去,在进行表内容输入的时候,就只能输入或选择男、女,输入其他的值则不显示

日期类型

数据类型 描述
DATE() 日期,格式:YYYY-MM-DD,支持范围:‘1000-01-01’到‘9999-12-31’
DATETIME() 日期和时间的组合,格式:YYYY-MM-DD HH:MM:SS ,支持范围:‘1000-01-01 00:00:00’到‘9999-12-31 23:59:59’
TIME() 时间,格式:HH:MM:SS,支持范围:‘-838:59:59’到‘838:59:59’
YEAR() 2位或4位格式的年。4位格式:1901到2155;2位格式:70到69,表示从1970到2069
TIMESTAMP() 时间戳,跟随系统时间发生变化,跟时区有关。格式:YYYY-MM-DD HH:MM:SS,支持的范围:‘1970-01-01 00:00:0’ UTC 到 ‘2038-01-09 03:14:07’ UTC

注意

  • decimal表示定点小数,如decimal(5,2)表示共存5位数,小数占2位,不写则默认为decimal(10,0),默认舍去小数位。
  • char 表示固定长度的字符串,如char(3),如果填充’ab’时则会补充一个空格为’ab ’
  • varchar 表示可变长度的字符串,如carchar(3),填充’ab’时就会存储’ab’
  • 对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存储这个文件的保存路径
  • 枚举类型不区分大小写

约束

  • 主键约束(primary key):它能够唯一确定表中的一条记录,也就是我们通过给某个字段添加约束,就可以使得字段不重复且不为空。如身份证号
  • 自增约束(auto_increment),创建表时勾选自增,在填充内容时,会自动增加序列
  • 惟一约束(unique):此字段的值不允许重复,主键是惟一的,但惟一并不一定是主键,如身份证和银行卡
  • 非空约束(not Null):此字段不允许填写空值
  • 默认约束(default):当不填写此值时会使用默认值,如果填写时则以填写为准
  • 外键约束(foreign key):对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常,一个表的主键也可以为另一个表的外键

你可能感兴趣的:(数据库,mysql,pymysql,python)