MySQL补充

mysql内置函数

  • 字符串函数
    select ASCII('A');
    select TRIM(' bar ');

  • 数学函数
    select FLOOR(1.23);
    select PI();
    select RAND();

  • 时期时间函数
    select now();

参考

mysql自定义函数

create function f() returns varchar(30)
    return date_format(now(),'%Y年%m月%d日');

调用 select f();

删除自定义函数 DROP FUNCTION f;

视图

视图是存放数据的一个接口,也可以说是虚拟的表。这些数据可以是从一个或几个基本表(或视图)的数据。也可以是用户自已定义的数据。其实视图里面不存放数据的,数据还是放在基本表里面,基本表里面的数据发生变动时,视图里面的数据随之变动。

  • 视图创建
    use shop; select * from onethink_attrval;
SELECT title,onethink_attrkey.kname,onethink_attrval.vname FROM `onethink_attrval` 
LEFT JOIN onethink_attrkey ON onethink_attrkey.id = onethink_attrval.kid 
LEFT JOIN onethink_goods ON onethink_goods.id = onethink_attrval.gid
SELECT `title` as t,`vname` as v,`kname` as k FROM `onethink_attrval` 
INNER JOIN onethink_attrkey ON onethink_attrkey.id = onethink_attrval.kid 
INNER JOIN onethink_goods ON onethink_goods.id = onethink_attrval.gid

create [or replace] view v_name as select...

drop table tablename 删除表
drop view viewname 删除视图

  • 视图创建特点
     视图涉及到相关字段名,不能有重复
     视图名字不能与任何表名重复
     创建视图的sql查询语句,语法与普通查询一样
     视图查询与普通sql查询一致,如视图名为news_view,查询
    语句:select* from news_view

  • 视图的作用
     安全性:隐藏真实的数据表,防止数据表泄漏。
     开发速度提升:例如多表查询,以往要写复杂的语句,现在
    多个表关联到一个视图,只查询一个视图,语句变得简单
     查询速度提升:以往多表查询,需从硬盘中获取多次,而视
    图只获取一次

预处理

不需要每次请求mysql 提前存储起来

prepare sql1 from 'select * from a where id=?';
set @i=1;
execute sql1 using @i;
drop prepare sql1;

事务处理(innodb)

组合多个操作其中一个失败 执行回滚

set autocommit=0;
delete from a where id=4;
rollback;
commit;
savepoint p1;
rollback to p1;

存储过程

我们常用的操作数据库语言SQL语句在执行的时候需要要先编
译,然后执行,而存储过程(StoredProcedure)是一组为了完
成特定功能的SQL语句集,经编译后存储在数据库中,用户通
过指定存储过程的名字并给定参数(如果该存储过程带有参数
)来调用执行它。MySQL在5.0以前并不支持存储过程。

创建存储过程
CREATE PROCEDURE 过程名([过程参数[,...]])
BEGIN
过程体
END
调用存储过程

CALL过程名 ([过程参数[,...]])

\d //
create procedure p1()
    begin
    set @i=3;
    while @i<=100 do
    insert into aaa(name) values(concat('user',@i));
    set @i = @i+1;
    end while;
    end//

call p1;調用存儲過程
truncate aaa;截断表
show create procedure p1; 查詢創建的 存儲過程

触发器

触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用
,也不是手工启动,而是由事件来触发,比如当对一个表进行操作
(insert,delete,update)时就会激活它执行。触发器经常用于加
强数据的完整性约束和业务规则等。

创建触发器

CREATE TRIGGER 触发器名时机(BEFORE或AFTER)触发
事件(INSERT| UPDATE| DELETE)ON 数据表(必须是实体
表)FOR EACHROW  BEGIN 过程体 END
create trigger t1 before insert on aaa for each row
    begin
    insert into bbb(name) values(new.name);
    end//

drop trigger t1;删除触发器

触发器的优点与缺点
 触发器有回滚性,当触发器发生错误,能回滚此次所做操作。
 维护困难,对于程序员来说,触发器是看不到的,这样给阅读
程序带来一定难度

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,533评论 18 399
  • 今天读完了奇特的一生剩余的全部内容,后面的内容吸引我的不是太多,感觉柳比歇夫的终生成就没有我想象的那么大,...
    丽享成长阅读 1,353评论 0 0