您的位置:首页 > 博客中心 > 数据库 >

Mysql学习

时间:2022-03-15 20:07

Mysql学习

  •  什么是数据库

     数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

 

  •  数据库分类
    • 关系数据库:Mysql、oracle、SQL server、DB2、SQLL李特
    • 非关系数据库(NoSql===》Not Only SQL):redis、MongoDB

 

  •  Mysql()
    • 配置文件在mysql的安装目录下的my.ini

技术图片

    • “--”单行SQL的注释、“/*    */”多行SQL的注释

 

  • 操作数据库
1 2 3 4 5 6 7 8 9 10 11 --创建数据库 create database [if not exists] dataname   --删除数据库 drop database [if not exists] dataname   --使用数据库 use dataname   --查看所有数据库 show databases

  

  • 数据库的列类型
    • 数值

    TINYINT:   微整型,一个字节,  范围  -128~127

    SMALLINT:   小整型,2个字节,范围  -32768~32767

    INT:   整型,4个字节

    BIGINT:   大整型,8个字节

    FLOAT:   单精度浮点型,4个字节,最大3.4e38,可能产生误差

    DOUBLE:   双精度浮点型,8个字节,可能产生误差

    DECIMAL(M,D):  定点小数,小数点不会变化,几乎也不会产生误差,M代表总的有效数,D代表小数点后的有效位数(工资、价格.....)

   BOOL/BOOLEAN: 通常用于存储两个值得数据,  TRUE/FALSE。真正存储时 true转为1,FALSE转为0。因为Mysql中没有真正的布尔型,最终会自动转为微整型TINYINT。

    • 日期时间型

   DATE:           日期型          YYYY-MM-DD

   TIME:            时间型          HH:mm:ss

  DATETIME:   日期时间型    YYYY-MM-DD  HH:mm:ss

    • 字符串型

  VARCHAR(M): 变长字符串,不会产生空间浪费,操作速度相对慢,M的最大值为65535

  CHAR(M):  定长字符,可能会产生空间浪费,操作速度相对快,往往存储一些固定长度的数据(如手机号码、身份证号等),M的最大值为255

  TEXT(M):   大型变长字符串,M的最大值是2G.   

    •  null

 

  • 数据库的字段属性(重点)
    • unsigned:无符号的整数,不能为负
    • zerofill:0填充,不足的0补上
    • 自增:在基础上自增1
    • 非空:not null
    • 默认:如果插入没有值则选择默认值

 

  •  mysql的引擎

参考:

 

  •  mysql数据管理

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 --插入数据 insert into tablename (xxx,xxx,xxx) values(xxx,xxx,xxx)   --查询 select xxx from tablename   --删除 delete from tablename where xxx   --清空表 truncate table   --修改 update tablename where set  name=newvalue

  

  • select
    • 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 SELECT     [ALL | DISTINCT | DISTINCTROW ]     [HIGH_PRIORITY]     [STRAIGHT_JOIN]     [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]     [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]     select_expr [, select_expr] ...     [into_option]     [FROM table_references       [PARTITION partition_list]]     [WHERE where_condition]     [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]     [HAVING where_condition]     [WINDOW window_name AS (window_spec)         [, window_name AS (window_spec)] ...]     [ORDER BY {col_name | expr | position}       [ASC | DESC], ... [WITH ROLLUP]]     [LIMIT {[offset,] row_count | row_count OFFSET offset}]     [into_option]     [FOR {UPDATE | SHARE}         [OF tbl_name [, tbl_name] ...]         [NOWAIT | SKIP LOCKED]       | LOCK IN SHARE MODE]     [into_option]   into_option: {     INTO OUTFILE ‘file_name‘         [CHARACTER SET charset_name]         export_options   | INTO DUMPFILE ‘file_name‘   | INTO var_name [, var_name] ... }
    • where
    • in
    • null
    • not null
    • having
    • like
    • join in
    • as
    • desc
    • asc
    • order by
    • group by
    • limit

 

  • 聚合函数
    • count()
    • sum()
    • avg()
    • max()
    • min()

 

  • 事务(要么都成功,要么都失败)

原子性(Atomicity):原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。

一致性(Consistency):事务前后数据的完整性必须保持一致。

隔离性(Isolation):事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。

持久性(Durability):持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响

 

 

脏读:指一个事务读取了另外一个事务未提交的数据。

不可重复读:在一个事务内读取表中的某一行数据,多次读取结果不同。(这个不一定是错误,只是某些场合不对)

幻读(虚读):是指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致。(一般是行影响,多了一行)

 

  • 索引:简单来说就像一本书的目录
    1. 普通索引:仅加速查询 最基本的索引,没有任何限制,是我们大多数情况下使用到的索引。
    2. 唯一索引:与普通索引类型,不同的是:加速查询 + 列值唯一(可以有null)
    3. 全文索引:全文索引(FULLTEXT)仅可以适用于MyISAM引擎的数据表;作用于CHAR、VARCHAR、TEXT数据类型的列。
    4. 组合索引:将几个列作为一条索引进行检索,使用最左匹配原则。
    5. 参考:

 

  • 数据库三大范式
    • 第一范式:原子性,属性不可再分
    • 第二范式:在1下,属性完全依赖于主键,在一张表只描述一件事
    • 第三范式:在2下,每一列只依赖主键

热门排行

今日推荐

热门手游