MySQL数据库基础

    MySQL数据类型

      整数类型:TINYINT   SMALLINT   MEDIUMINT   INT   BIGINT

      属性:UNSIGNED

      长度:可以为整数类型指定宽度,列如:INT(11)、对大多数应用是没有意义的,它不会限制值的合法范围,只会影响显示字符的个数。

      实数类型:FLOAT   DOUBLE   DECIMAL

      DECIMAL可存储比BIGINT还大的整数;可以用于存储精确的小数FLOAT和DOUBLE类型支持使用标准的浮点进行近似计算。

      字符串类型:VARCHAR   CAHR  TEXT   BLOB

      VARCHAR类型用于存储可变长字符串,它比定长类型更节省空间

      VARCHAR使用1或2个额外字节记录字符串的长度,列长度小于255字节,使用一个字节表示,否则用2个

      varchar长度,如果存储内容超过指定长度,会被截断。、

      char是定长的,根据定义的字符串长度分配足够的空间。char会根据需要采用空格进行填充以方便比较。

      char适合存储很短的字符串,或者所有值都接近同一个长度

      char长度,超出设定的长度,会被截断

      对于经常变更的数据,CHAR比VARCHAR更好,CHAR不容易产生碎片,对于非常短的列,CHAR比VARCHAR在存储空间上更有效率只分配真正需要的空间,更长的列会消耗更多的内存

    MySQL基础操作

       连接数据库:mysql -u -p -h -p    用户名   密码   IP   端口

       show    create   use   drop  delete  select  update

    MySQL存储引擎

        InnoDB:默认事务型引擎,最重要最广泛的存储引擎,性能非常优秀,数据存储在共享表空间,可以通过配置分开。对主键查询的性能高于其他类型的存储引擎,内部做了很多优化,从磁盘读取数据时自动在内存构建hash索引,插入数据时自动构建插入缓冲区。

        通过一些机制和工具支持真正的热备份,支持崩溃后的安全回复,支持行级锁,支持外键。

        MyISAM:5.1版本以前,MyISAM是默认的存储引擎。拥有全文索引、压缩、空间函数

        不支持事务和行级锁,不支持崩溃后的安全恢复。表存储在两个文件,MYD和MYI,分别存储数据和索引。设计简单,某些场景下性能很好。

      其他表引擎:Archive   Blackhole   CSV   Memory

    MySQL锁机制

     锁是计算机协调多个进程或线程并发访问某一些资源的机制。

     共享锁(读锁)/排它锁(写锁)

      读锁:针对同一份数据,多个读操作可以同时进行而不会互相影响

      写锁:当前写操作没有完成前,它会阻断其他线程对当前数据的修改和读取。

    MySQL事务处理、触发器

      事务:原子性----一组操作,要么全部执行成功,要么全部都不执行。

         隔离性----在所有的操作没有执行完毕之前,其他会话不能够看到中间改变的过程。

         一致性----事务发生前和发生后,数据的总额依然匹配

         持久性----事务所执行的结果不能撤销 

       start   transaction;开启事务

          要执行的SQL语句

       Commit   提交

       rollback    回滚

       当一个事务提交或回滚之后就结束事务。 

      触发器:监视某种情况并触发某种操作

        Create trigger triggerName

        After/before insert/update/delete  on 表名

        For each row #这句话是固定的

        Begin

        Sql语句;  # 一句或多句,insert/update/delete范围内

        End;

        删除触发器的语法:

        Drop trigger 触发器名

        查看触发器

        Show triggers

最新文章

  1. Spring 4 使用Freemarker模板发送邮件&添加附件
  2. RadioButton(单选按钮)文字在按钮的左边
  3. React组件库
  4. 介绍开源的.net通信框架NetworkComms框架 源码分析(十六 ) ConnectionStatic
  5. Lazarus IDE的几个小技术
  6. css link和@import区别用法
  7. [RxJS] Filtering operator: filter
  8. Struts1的实现原理
  9. JavaScript实例技巧精选(12)—计算星座与属相
  10. 怎样通过WireShark抓到的包分析出SIP流程图
  11. 【2】构建一个SSM项目结构
  12. C语言程序设计(基础)- 第7周作业
  13. hadoop sentry错误记录
  14. html5 - drag 拖拽
  15. cookie的基本操作
  16. 记一次Springboot启动异常
  17. xpinyin模块
  18. mac 回车键、空格键失灵(非物理原因)解决方法
  19. zookeeper集群环境搭建(使用kafka的zookeeper搭建zk集群)
  20. 【JAVA】内部类,内部接口

热门文章

  1. APPium连接真机输入框中输入的内容与代码中不一致
  2. hbase 1.4 部署
  3. row_number() over partition by 分组聚合
  4. selenium报错TypeError: 'FirefoxWebElement' object is not iterable
  5. 1.Jmeter 快速入门教程(一) - 认识jmeter和google插件
  6. 开发 MFC 应用的一般过程
  7. Visual C++中error spawning cl.exe解决办法
  8. css怎么解决表格边框线重复问题
  9. Dubbo 系列(05-1)服务发布
  10. log4j/slf4j