MySQL数据库学习笔记

这篇博客详细介绍了MySQL数据库,从数据库的基本概念、分类、作用,到关系型数据库管理系统、SQL语言、数据类型和约束,再到MySQL的命令行使用、条件查询、事务处理和PyMySQL的使用。此外,还探讨了索引的优缺点及使用策略,帮助读者深入理解MySQL数据库的管理和操作。
摘要由CSDN通过智能技术生成

1. 数据库简介

1. 定义

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

2. 分类

  1. 关系型数据库:指采用了关系模型来组织数据的数据库,简单来说,关系模型指的就是二维表格模型
    • 数据行
    • 数据列
    • 数据表
    • 数据库(数据表的集合)
  2. 非关系型数据库:非关系型数据库,又被称为NoSQL(Not Only SQL ),对NoSQL 最普遍的定义是“非关联型的”,强调 Key-Value 的方式存储数据。

3. 作用

​ 数据库的作用就是存储和管理数据的

4. 数据库的作用就是存储和管理数据的

  1. 持久化存储
  2. 读写速度极高
  3. 保证数据的有效性

2. 关系型数据库管理系统

1. 介绍

数据库管理系统(英语全拼:Relational Database Management System,简称RDBMS)是为管理关系型数据库而设计的软件系统,如果大家想要使用关系型数据库就需要安装数据库管理系统,其实就是一个应用软件

2. SQL的介绍

  • SQL(Structured Query Language)是结构化查询语言,是一种用来操作RDBMS的数据库的语言。
  • SQL语言主要分为:
    • DQL:数据查询语言,用于对数据进行查询,如select
    • DML:数据操作语言,对数据进行增加、修改、删除,如insert、update、delete
    • TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback
    • DCL:数据控制语言,进行授权与权限回收,如grant、revoke
    • DDL:数据定义语言,进行数据库、表的管理等,如create、drop

3. 数据类型和约束

1. 数据类型

  • 整数:int,bit

    • bit是二进制位0,1;类似Boolean类型中的True和False
    类型 字节大小 有符号范围(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
  • 小数:decimal;表示浮点数,如 decimal(5, 2) 表示共存5位数,小数占 2 位.

  • 字符串:varchar,char

    • char表示固定长度的字符串,如char(3),如果填充’ab’时会补一个空格为’ab ',3表示字符数
    • varchar表示可变长度的字符串,如varchar(3),填充’ab’时就会存储’ab’,3表示字符数
    • text,可变长度,字符个数大于 4000
    • longtext,可变长度, 极大型文本数据
  • 日期时间: date, time, datetime

    类型 字节大小 示例
    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
  • 枚举类型:enum(枚举值)

    • 使用时,枚举值可以用数字代替,对应数字从1开始

2. 数据约束

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

4. 命令行客户端MySQL的基本使用

1. 登录和退出

mysql -uroot -p
quit 或 exit 或 ctrl + d
sudo service mysql start 
	sudo service mysql stop
	sudo service mysql restart
	sudo service mysql status

2. 数据库操作

  1. 查看所有数据库

    show databases;
    
  2. 创建数据库

    create database 数据库名 charset=utf8;
    
  3. 使用数据库

    use 数据库名;
    
  4. 查看当前使用的数据库

    select database();
    
  5. 删除数据库-慎重

    drop database 数据库名;
    

3. 表结构操作

  1. 查看当前数据库中所有表

    show tables;
    
  2. 创建表

    create table 表名(
    字段名称 数据类型  可选的约束条件,
    column1 datatype contrai,
    ...
    );
    
  3. 修改表-添加字段

    alter table 表名 add 列名 类型 约束;
    例:
    alter table students add birthday datetime;
    
  4. 修改表-修改字段类型

    alter table 表名 modify
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值