MySQL

  MySQL是多用户三十六线程的DBMS,默许接济的储存机制是 InnoDB,InnoDB
通过树立行级锁有限匡助工作的完整性,通过共享锁处理 select
语句,以提供业务安全的囤积机制。

 引擎管理和处理数量,MySQL襄助各样发动机:

 ·  InnoDB :提供可信的事务处理,但不接济全文本搜索。

 ·  MyISAM:品质高、帮衬全文本搜索,但不援救事务处理。

工具的装置和应用

 ·
命令行应用程序安装教程:mysql-5.7.15-winx64.zip, 设置教程常用命令

  net start/stop mysql  // 登录/退出mysql
  mysql [-h 主机名] -u 用户名 -p  (mysql@sqh)
  create user 用户名 identified by '密码'; // 创建用户

 ·  图形化交互界面工具:mysql-workbench 或 Navicat for MySQL

或多或少基本操作

 ·  show databases:数据库实例包括的数据库;

 ·  use/select 数据库名:选取/查看数据库消息;
 ·  show tables:数据库中带有的数据表;

 ·  show columns from 表名:表列新闻;

 ·  analyze table 表名; 检查表键是或不是科学;

 ·  optimize table 表名; 优化表空间;

 ·  show processlist;显示活动的线程;

函数

 ·  系统函数

  select Now()/Date()/Time();   // 时间日期
  select Version();   // 版本信息

 ·  处理函数

  Concat():字符串拼接
  Substring();截取子串
  Locate():查找子串

关键字

 ·insert

 MySql协理在单个insert语句中插入多少个values值,且成效高。

 ·wherehaving
 where 子句过滤行,having 子句过滤组;只可以在 having
子句中应用组函数(聚合函数);
 ·orin

 in 优于 or,速度快,可以分包select子句,与not操作符结合简化SQL语句;

 ·likeregexp

 like利用通配符*_展开字符串匹配,完全同盟列值;regexp,正则表明式,部分匹配列值,利用^xxx$可完全匹配列值,效果等效于like,其中^和$是定点符分别对应首和尾。binary
regexp可分别轻重缓急写。

 ·limit

 限制拔取的行数,MySQL-5新增 limit … offset … 语法;

 ·auto_increment

 自动增添,每个表只允许有一列且必须被索引。再次来到值:(1)last _ insert _ id();
(2)after insert 触发器:

多表查询

 ·  交叉连接 cross join:笛Carl乘积,无连接条件; 
 ·  自然连接 natural join:以 2
表中的所有同名列为连接条件,内部连接的一种; 
      using 子句连接:显式指定某些同名列为连接条件; 
 ·  左、右、全外连接 left/right/full join: 
      on 子句连接:常用连接形式;

约束

  MySQL 使用 auto_increment 协助自增加特点,支持除 check 外的 4
种完整性约束:
·  not null:非空约束;
·  unique:唯一约束;
·  primary key:主键约束;
·  foreign key:外键约束,参照完整性;
  级联删除:删除主表记录时,关联的从表记录也删除,则须要在确立外键约束的背后扩大on delete cascade 或 on delete set
null,前者是级联删除,后者是将从表的关联列的值设置为null。
  具体选取可参见 MySQL –
约束

索引


方式Schema中的一个数据库对象,从属于数据表。通过急忙路径访问方法快速稳定数据、加速对表的查询。缺点是索引的储存占用空间、索引的保安有种类开发。

视图

  一个或多少个数据表中记录的逻辑展现。通过 with check option
子句强制不容许修改视图的数目。
 ·  提供数据的独立性;
 ·  简化查询;
 ·  限制对数据的走访,提供对相同数量的分化显示;
  视图的 本质
是一条被命名的SQL查询语句。利用 子查询 建立视图,同样可以建立表:

   create or replace view 视图名
      as 子查询语句
   查看视图创建语句:show create view 视图名;
   更新视图:create or replace view 视图名;

储存进程

 MySql以call调用存储进度。

  查看存储过程创建语句:show create procedure 存储过程名;
  查看存储过程附加信息:show procedure status like '存储过程名';

游标

 MySql游标只可以用于存储过程和函数。

 内部定义顺序:局地变量,游标,句柄。

触发器

 trigger只可以关联表,常用的NEW(可更新、可读)表和OLD(只读)表是对准近日触发器的一部分表,在高速缓存中存储新插入或删除的行数据的副本。创立:

  create trigger 触发器名 after/before insert/delete/update on 表名
  for each row 
  begin 
      SQL处理语句;
  end;

 其中,before用于数据表达,保障操作的合法性和待操作数据的不利。

事务

 MySql以start
transaction标识事务初叶。

全文本搜索

 MySql要求被寻找的列在成立表时必须加索引,即选择 fulltext(列名)
启用全文本搜索,会自动珍贵更新该索引,通过 Match(列名)
Against(‘格局串’) 执行全文本搜索。

 优点

 ·  fulltext速度比like快; 
 ·  明确决定文件匹配,对寻找结果按等级值智能排序;

 询问扩充:模糊匹配,MySql对数码和目录进行2遍扫描已毕搜索。 Match(列名) Against(‘形式串’ with query
expansion) 

 布尔文本搜索:无需定义fulltext索引,利用全文本布尔操作符明确决定文件匹配方式,效用低。 Match(列名) Against(‘格局串’ in
boolean mode) 

 


参考

·21分钟MySQL 入门教程- wid –
新浪

·  

 

网站地图xml地图