MySQL 开发篇——2

运算符:

             +,-,*,(/,DIV) 除法  (%,MOD)除余 

             = , (<>,!=)不等于


常用函数

          字符串函数   cancat(s1,s2,...)  。。。。  不常用

          数值函数   abs(x) 绝对值 rand() 随机数 ceil(x)大于x的整数 floor(x)小于x的整数 truncate(x,y)截断x为y位小数的数 不四舍五入

          日期函数   curdate() 当前日期  curtime() 当前时间  now() 当前日期和时间 时间间隔的函数


索引

         创建 create index cityname on city(city(10)) 创建city表中的city字段十个字节的前缀索引

         删除  drop index  cityname on city

        InnoDB 与MyISAM都是用的BTREE索引算法


视图

        (优势:根据原表的数据筛选出根据业务需求所得到的一份副本,与原数据独立,保护数据完整性)

        需要create view权限;

        create [or replace]

                   view   view_name[column_list]         as     [select_statement]    

          示范: create or replace view staff_list_view      as     select  s.staff_id,s.first_name,s.last_name ,a.address from staff  as  s,address as a where s.address_id = a.address_id;

         修改  alter ... view ...  同上

                                               注意: 有些视图是不可以更新的

         1.聚合函数 [SUM,MIN,MAX,COUNT] ,GROUP BY,HAVING,UNION

          2.常量视图

          3.select包含子查询

          4.JION

          5.FROM一个不能更新的视图

          6.WHERE 的子查询引用了FROM的表


         更新视图  update view_name set xxx where xxx;

         删除视图  drop view [if exists] view_name;

         查看视图  show tables;           show table status like '表或视图名‘;            show create view view_name 视图的定义


存储过程

         作用:减少数据在数据库和应用服务器之间的传输,提高数据处理效率。无返回值,参数类型 IN OUT INOUT 与函数区别 函数有返回值,参数类型 IN

         权限 create routine 权限,alter routine 权限 ,execute 权限

         语法:存储过程 create procedure  sp_name (IN|OUT|INOUT]

                                         [characteristic]            routine_body

[characteristic] : reads SQL data 读写权限

        示范:

                        delimiter $$

                         create procedure film_in_stock(IN p_film_id int ,In p_store_id int,OUT p_film_count int)

                                reads SQL DATA

                               begin

                                    select  inventory_id from invoutory where film_id = p_film_id   and  store_id = p_store_id  and inventory_in_stock(inventory_id);

                              select FOUND_ROWS() into p_film_count;

                             end $$

                         delimiter ;

             函数: create function sp_name (...)

                               return type

                               [characteristic]  routine_body

          调用过程: call  sp_name (...);


触发器:

          创建: create  trigger    trigger_name   [before|after]  trigger_event

                                on  [table_name]  for each row trigger_stmt

   

事务控制,锁定语句:

            lock   tables  talbe_name  [as alias]   { read[local] |  [LOW_PRIORITY]  WRITE  }

             unlock tables


            start  tranaction |begin [work]  开始事务

             commit [work]  提交

              rollback  回滚

               set autocommit={0|1}  0需要指令执行

              保存节点

                 savepoint  test;

                 rollback to savepoint test;




你可能感兴趣的:(mysql)