zoukankan      html  css  js  c++  java
  • MySQL(一)

    1.  MySQL

    为什么使用MySQL

    1、mysql性能卓越,服务稳定,很少出现异常宕机。

    2、mysql开放源代码且无版权制约,自主性及使用成本低。

    3、mysql历史悠久,社区及用户非常活跃,遇到问题,可以寻求帮助。

    4、mysql软件体积小,安装使用简单,并且易于维护,安装及维护成本低。

    5、mysql品牌口碑效应,使得企业无需考虑就直接用之,lamp,lnmp流行架构。

    6、mysql支持多种操作系统,提供多种API接口,支持多种开发语言,特别对流行的PHP语言有很好的支持。

    MySQL是什么

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

    关系型数据库

    数据库中的记录是有行有列的数据库就是关系型数据库,与之相反的就是NoSQL数据库了。

    数据库管理系统

    指一种操作和管理数据库大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。

    2. SQLyog使用

     输入用户名、密码,点击连接按钮,进行访问MySQL数据库进行操作

    在Query窗口中,输入SQL代码,选中要执行的SQL代码,按F8键运行,或按执行按钮运行。

    3.  SQL语句

    SQL分类

    数据定义语言

    数据操作语言

    数据控制语言

    数据查询语言

    简称DDL

    简称DML

    简称DCL

    简称DQL

    定义数据库对象:数据库,表,列等

    对数据库中表的记录进行更新。

    定义数据库的访问权限和安全级别

    查询数据库中表的记录

    关键字:create,alter,drop等

    关键字:insert,delete,update等

    关键字:grant,revoke等

    关键字:select,from,where等

     

    数据库操作:database

    创建数据库

    查看数据库

    删除数据库

     删除数据库需慎重,搞不好就是炒鱿鱼

    表操作:table

    创建表

    单表约束:

        * 主键约束:primary key

        * 唯一约束:unique

        * 非空约束:not null

    注意:主键约束 = 唯一约束 + 非空约束

    查看表

    删除表

    修改表

    插入数据:INSERT

    注意:

    1. 列名数与values后面的值的个数相等
    2. 列的顺序与插入的值得顺序一致
    3. 列名的类型与插入的值要一致.
    4. 插入值得时候不能超过最大长度.
    5. 值如果是字符串或者日期需要加引号’’ (一般是单引号)

    修改数据:UPDATE

      注意:

    1. 列名的类型与修改的值要一致.
    2. 修改值得时候不能超过最大长度.
    3. 值如果是字符串或者日期需要加’’.

    删除数据:DELETE

    查询数据:SELECT  

    语法顺序和执行顺序(重要)

    MySQL查询语法顺序

    1. SELECT
    2. FROM
    3. LEFT JOIN
    4. ON
    5. WHERE
    6. GROUP BY
    7. HAVING
    8. ORDER BY
    9. LIMIT

    执行顺序

     示例SQL:SELECT * FROM user LEFT JOIN order ON user.id = order.uid WHERE order.price > 1000 GROUP BY user.name HAVING count(1) > 5 ORDER BY user.name LIMIT 0,10

    1. FROM(将最近的两张表,进行笛卡尔积)---VT1
    2. ON(将VT1按照它的条件进行过滤)---VT2
    3. LEFT JOIN(保留左表的记录)---VT3
    4. WHERE(过滤VT3中的记录)--VT4…VTn
    5. GROUP BY(对VT4的记录进行分组)---VT5
    6. HAVING(对VT5中的记录进行过滤)---VT6
    7. SELECT(对VT6中的记录,选取指定的列)--VT7
    8. ORDER BY(对VT7的记录进行排序)--游标
    9. LIMIT(对排序之后的值进行分页)

    WHERE条件执行顺序(影响性能)

    1. MYSQL:从左往右去执行WHERE条件的。
    2. Oracle:从右往左去执行WHERE条件的。

    排序

    关键字ORDER BY  ASC(升序) DESC(降序)

    聚合函数

    常用的:

    sum():  求某一列的和

    avg():   求某一列的平均值

    max():  求某一列的最大值

    min():   求某一列的最小值

    count():求某一列的元素个数

    分组

    关键字:1.GROUP BY   2.HAVING

    注意事项:

    1. select语句中的列(非聚合函数列),必须出现在group by子句中
    2. group by子句中的列,不一定要出现在select语句中
    3. 聚合函数只能出现select语句中或者having语句中,一定不能出现在where语句中。

    字段类型

    常用的类型:

    数字型:int

    浮点型:double

    字符型:varchar(可变长字符串)

    日期类型:date(只有年月日,没有时分秒)

                    datetime(年月日,时分秒)

    分类

    类型名称

    说明

    整数类型

    tinyInt

    很小的整数

    smallint

    小的整数

    mediumint

    中等大小的整数

    int(integer)

    普通大小的整数

    小数类型

    float

    单精度浮点数

    double

    双精度浮点数

    decimal(m,d)

    压缩严格的定点数------开发时用

    日期类型

    year

    YYYY  1901~2155

    time

    HH:MM:SS  -838:59:59~838:59:59

    date

    YYYY-MM-DD 1000-01-01~9999-12-3

    datetime-开发用

    YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59

    timestamp

    YYYY-MM-DD HH:MM:SS  1970~01~01 00:00:01 UTC~2038-01-19 03:14:07UTC

    文本、二进制类型

    CHAR(M)            

    M为0~255之间的整数

    VARCHAR(M)  

    M为0~65535之间的整数

    TINYBLOB

    允许长度0~255字节

    BLOB

    允许长度0~65535字节

    MEDIUMBLOB

    允许长度0~167772150字节

    LONGBLOB

    允许长度0~4294967295字节

    TINYTEXT

    允许长度0~255字节

    TEXT

    允许长度0~65535字节

    MEDIUMTEXT

    允许长度0~167772150字节

    LONGTEXT

    允许长度0~4294967295字节

    VARBINARY(M)

    允许长度0~M个字节的变长字节字符串

    BINARY(M)

    允许长度0~M个字节的定长字节字符串

    注释

    4.  多表关联查询

    交叉连接: CROSS JOIN

    内连接: INNER JOIN

        内连接也叫等值连接,内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。

    外连接

    外连接又分为:左外连接、右外连接、全外连接

    左外连接:LEFT JOIN(使用LEFT JOIN,则主表在它左边)

    右外连接::RIGHT JOIN (使用RIGHT JOIN,则主表在它右边)

    全外连接(MySQL不支持):FULL  JOIN 

    分页查询:LIMIT

    5.  MySQL事务处理

    事务概述:MySQL 事务主要用于处理操作量大,复杂度高的数据。

    1.  在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。
    2. 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
    3. 事务用来管理DML操作,比如 insert,update,delete 语句

    一般来说,事务是必须满足4个条件(ACID):

    原子性:构成事务的的所有操作必须是一个逻辑单元,要么全部执行,要么全部不执行。

    稳定性:数据库在事务执行前后状态都必须是稳定的。

    隔离性:事务之间不会相互影响。

    持久性:事务执行成功后必须全部写入磁盘。

  • 相关阅读:
    【嵌入式开发】写入开发板Linux系统-模型S3C6410
    大约cocos2d-X 3.x使用引擎版本自带的物理引擎Physics
    它们的定义PropertyPlaceHolder无法完成更换任务
    [Cocos2d-x]在Cocos2d-x 3.x如何通过版本号WebSocket连接server数据的传输
    Java 内存架构
    类似的微博推断客户关系sql声明
    Kienct与Arduino学习笔记(2) 深度图像与现实世界的深度图的坐标
    etl工具,kettle实现了周期
    Android中自定义checkbox样式
    ndroid网络(4):HttpClient必经之路----使用线程安全的单例模式HttpClient,及HttpClient和Application的融合
  • 原文地址:https://www.cnblogs.com/dzlj/p/12099082.html
Copyright © 2011-2022 走看看