MySql教程

数据库 MYSQL

本文主要是介绍数据库 MYSQL,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

数据库 是所有软件体系中最核心的存在 DBA  存数据 管理数据

概念  数据库(DB DateBase) 数据仓库,软件 安装在操作系统之上

数据库分类 

        关系型数据库(SQL)    MySQL,Oracle,Sql Server,DB2,SQLlite  

                通过表和表之间,行和列之间的关系进行数据的存储

        非关系型数据库(NOSQL)  Not Only

                  Redis,MongDB  对象存储 通过对象的自身属性来决定

DBMS(数据库管理系统)

        数据库的管理软件,科学有效的管理我们的数据,维护和获取数据

MySQL 关系数据库管理系统 SQL语言用于访问数据库最常用标准化语言

        体积小 速度快 总体拥有成本低 

数据库数据类型 列类型 

        数值  tinyint 十分小的数据 smallint 较小的数据 int  标准的整数 4个字节 bigint 较大的数据

                 float  浮点数  4个字节 double 浮点数 8个字节  decimal 字符串浮点数 

        字符串  char 字符串固定大小 0~255   varchar 可变字符串 0~65535(常用)String

                tinytext 微型文本  2^8-1 text  文本串 2^16-1 

        时间日期  date  YYYY-MM-DD,日期格式   time  HH:mm:ss时间格式

                 datetime YYYY-MM-DD HH:mm:ss最常用的时间格式

                timestamp 时间戳  1970.1.1 到现在毫秒数 全球统一 

                year 年份表示

        null  没有值 未知  不要使用null 进行运算

DML语言  数据操作语言 

       添加 insert   insert into 表名([字段名1,字段名2])values('值1'),('值2');

       修改update  update 表名 set 字段名=value,字段名=value  where 条件;

                where 子句  运算符 id等于某个值,大于某个值,在某个区间内修改

                通过多个条件定位数据 and 

       删除 delete delete from 表名 where 条件;

        清空  truncate命令 作用 完全清空一个数据库表,表的结构和索引约束不会变

                truncate table 表名 ;//自增会归零

DQL 查询数据  slete 使用频率最高的语句 slete 字段 from 表名   as 起别名 

        函数 concat(a,b)  

去重  distinct 去除查询出来的结果中重复的数据 重复的数据只显示一条

where 条件子句   搜索条件一个或多个表达式组成 结果为 布尔值

        作用 检索 数据中符合条件的值  

        逻辑运算符 与 a and b && 或 a or b  !!  非 not a  ! 

模糊查询 比较运算符 

        is null    a is null      is not null  a is not null 

        between  a between b and c  若a在b和c之间 则结果为真

        like     a like b          SQL匹配 如果a匹配b 则结果为真

        in        a  in(a1,a2,a3...)   假设a 在a1,a2,或者其中一个值中,结果为真

联表查询  ,分析需求 分析查询字段(连接查询) 确定使用哪种连接查询                

                确定交叉点   判断条件 

                join on 连接查询 where 等值查询,

        inner join         如果表中至少有一个匹配,就返回行   

        left join            即使右表中没有匹配,也会从左表中返回所有的值

        right join          即使左表中没有匹配,也会从右表中返回所有的值

排序  升序 asc   降序 desc   order by 通过哪个字段排序  asc/desc 

分页  limit 起始页值(n-1)*页面大小,页面大小  n 当前页  (数据总数/页面大小=总页数)
    select p.username,addr,result from people as p inner join student as s
    on p.id = s.id order by result asc limit 0,2;

子查询    本质在where语句中嵌套一个查询语句

        select p.username,result from people p inner join student s 
        on p.id = s.id where p.username like '%刘%' order by result asc;
    
        select p.username,s.result from people p,student s where p.username = (select username         from people where username like '刘_')

查询  语法  select 查询字段 from 表 xxx join 链接的表 on 等值判断 

                where (具体的值 子查询语句)group by (通过哪个字段分组)

                having (过滤分组后的信息 条件和where一样 位置不同)

                order by (通过哪个字段排序)升序或降序

                limit startindex pagesize 起始页值(n-1)*页面大小,页面大小 n 当前页

事务  要么都成功,要么都失败 

                SQL 执行  A给B转账  A1000----》 200  B 200  

                SQL 执行 B收到A的·钱  A800  -----》B400、

                将一组SQL放在一个批次中执行

        事务原则  ACID原则  原子性,一致性,隔离性,持久性   (脏读,幻读)

                原子性 Atomicity  要么都成功 要么都失败 

                一致性Consistency  事务前后的数据完整性要保持一致

                持久性 Durability 事务一旦提交则不可逆 被持续化到数据库中

                隔离性  Isolation 事务的隔离性 是多个用户并发访问数据库时 数据库

                        为每一个用户开启的事务 不能被其他事务操作干扰

(1)原子性(A):安全性管理子系统;

(2)一致性(C):完整性管理子系统;

(3)隔离性(I):并发控制子系统;

(4)持久性(D):恢复管理子系统;

执行事务  MySQL 默认开启事务自动提交

    set autocommit = 0;//关闭
    set autocommit = 1;//开启  默认
    
    //手动处理事务
    set autocommit = 0;//关闭自动提交
  //事务开启
    start transaction;  //标记一个事务开始,从这个之后sql都在同一事务内
    
    insert xx;
    insert xx;
    
    提交 持久化(成功)
    commit
    回滚 回到原来的样子(失败)
    rollback
    
    //事务结束
    set autocommit = 1;//开启自动提交

        

      

这篇关于数据库 MYSQL的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!