当前位置: 首页 > news >正文

烟台建网站公司价格五一模板网

烟台建网站公司价格,五一模板网,分类信息网站系统cms,万网域名查询工具1.视图概述#xff1a;视图就相当于一个临时表#xff0c;但是只定义了对应关系#xff0c;用这个视图的时候#xff0c;就会自行执行视图里定义好的sql语句#xff0c;视图是只能去查原表的数据#xff0c;不能去修改原表里面的数据的#xff1b;视图的增删改查#x…1.视图概述视图就相当于一个临时表但是只定义了对应关系用这个视图的时候就会自行执行视图里定义好的sql语句视图是只能去查原表的数据不能去修改原表里面的数据的视图的增删改查1.创建视图语法CREATE VIEW 视图名称 AS SQL语句示例CREATE VIEW v1 ASSELECT nid, name FROM userWHERE nid 3;2.删除视图语法DROP 视图名称3.修改视图语法ALTER VIEW 视图名称 AS sQL语句示例ALTER VIEW v1 ASSELECT sex, birthday FROM userWHERE nid 14.使用视图示例select nid, name from v1;2.触发器概述对某个表进行【增/删/改】操作的前后如果希望触发某个特定的行为时可以使用触发器触发器用于定制用户对表的行进行【增/删/改】前后的行为。触发器的创建# 插入前CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1 FOR EACH ROWBEGIN...END# 插入后CREATE TRIGGER tri_after_insert_tb1 AFTER INSERT ON tb1 FOR EACH ROWBEGIN...END# 删除前CREATE TRIGGER tri_before_delete_tb1 BEFORE DELETE ON tb1 FOR EACH ROWBEGIN...END# 删除后CREATE TRIGGER tri_after_delete_tb1 AFTER DELETE ON tb1 FOR EACH ROWBEGIN...END# 更新前CREATE TRIGGER tri_before_update_tb1 BEFORE UPDATE ON tb1 FOR EACH ROWBEGIN...END# 更新后CREATE TRIGGER tri_after_update_tb1 AFTER UPDATE ON tb1 FOR EACH ROWBEGIN...END示例1delimiter //CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1 FOR EACH ROWBEGINIF NEW. NAME alex THENINSERT INTO tb2 (NAME)VALUES(aa)ENDEND//delimiter ;示例2delimiter //CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1 FOR EACH ROWBEGINIF NEW. NAME alex THENINSERT INTO tb2 (NAME)VALUES(aa)ENDEND//delimiter ;注意delimiter // 把默认以“”作为结束符改为了以//作为结束符NEW表示即将插入的数据行OLD表示即将被删除的数据行触发器的删除语法DROP TRIGGER 触发器的名称;使用触发器触发器无法由用户直接调用而知由于对表的【增/删/改】操作被动引发的3.存储过程概述存储过程是一个SQL语句集合当主动去调用存储过程时其中内部的SQL语句会按照逻辑执行创建存储过程1.无参数的存储过程示例-- 创建存储过程delimiter //create procedure p1()BEGINselect * from t1;END//delimiter ;-- 执行存储过程call p1()2.有参数的存储过程对于存储过程可以接收三类参数in:仅用于传入参数用out仅用于返回值用inout既可以传入又可以当作返回值创建有参数的存储过程示例-- 创建存储过程delimiter \\create procedure p1(in i1 int,in i2 int,inout i3 int,out r1 int)BEGINDECLARE temp1 int;DECLARE temp2 int default 0;set temp1 1;set r1 i1 i2 temp1 temp2;set i3 i3 100;end\\delimiter ;-- 执行存储过程set t1 4;set t2 0;CALL p1 (1, 2 ,t1, t2);SELECT t1,t2;事务型存储过程示例delimiter \\create PROCEDURE p1(OUT p_return_code tinyint)BEGINDECLARE exit handler for sqlexceptionBEGIN-- ERRORset p_return_code 1;rollback;END;DECLARE exit handler for sqlwarningBEGIN-- WARNINGset p_return_code 2;rollback;END;START TRANSACTION;DELETE from tb1;insert into tb2(name)values(seven);COMMIT;-- SUCCESSset p_return_code 0;END\\delimiter ;删除存储过程drop procedure 存储过程名称4.函数MySQL中的内置函数INSTR(str, len):返回字符串str从开始的len位置的子序列字符LEFT(str, len):返回字符串str从开始的len位置的子序列字符LOWER(str)变小写UPPER(str)变大写...自定义函数1.定义一个函数delimiter \\create function f1(i1 int,i2 int)returns intBEGINdeclare num int;set num i1 i2;return(num);END \\delimiter ;-- 执行函数f1(1, 3);2.删除函数drop function 函数名称5.事务概述事务用于将某些操作的多个SQL作为原子性操作一旦有某一个出现错误即可回滚到原来的状态从而保证数据库数据完整性6.索引概述索引是数据库中专门用于帮助用户快速查询数据的一种数据结构类似于字典中的目录查找字典内容时可以根据目录查找找到数据的存放位置然后直接获取即可MySQL中常见索引有1.普通索引仅有一个功能那就是加快查询create index 索引名 ob 表名(列名)2.唯一索引加速查询和唯一约束(可为null)create unique index 索引名 on 表名(列名)3.主键索引加速查询和唯一约束(不可为null)alter table 表名 add primary key(列名);4.联合索引将n个列组合成一个索引create index 索引名 on 表名(列名1,列名2。。。);联合索引需要注意的点联合索引的最左匹配原则即最左优先以最左边的为起点任何连续的索引都能匹配上。同时遇到范围查询(、多字段的联合索引在查询单个字段时是否可以用到索引如下面的联合索引的语法所示如果你查询单个字段时查询的是列名1和列名2或者查询列名1的话就能命中索引如果只查询列名2就中不了索引索引相关命令查看表结构desc 表名查看生成表的sqlshow create table 表名查看执行时间set profilling 1;SQL语句...show profiles查看执行计划explain select * from tb2;执行计划里面type属性的值代表的意思type查询时的访问方式性能all index range index_merge ref_or_null ref eq_ref system/constALL 全表扫描对于数据表从头到尾找一遍select * from tb1;特别的如果有limit限制则找到之后就不在继续向下扫描select * from tb1 where email sevenlive.comselect * from tb1 where email sevenlive.com limit 1;虽然上述两个语句都会进行全表扫描第二句使用了limit则找到一个后就不再继续扫描。INDEX 全索引扫描对索引从头到尾找一遍select nid from tb1;RANGE 对索引列进行范围查找select * from tb1 where name alex;PS:between andin 操作注意! 和 符号INDEX_MERGE 合并索引使用多个单列索引搜索select * from tb1 where name alex or nid in (11,22,33);REF 根据索引查找一个或多个值select * from tb1 where name seven;EQ_REF 连接时使用primary key 或 unique类型select tb2.nid,tb1.name from tb2 left join tb1 on tb2.nid tb1.nid;CONST 常量表最多有一个匹配行,因为仅有一行,在这行的列值可被优化器剩余部分认为是常数,const表很快,因为它们只读取一次。select nid from tb1 where nid 2 ;SYSTEM 系统表仅有一行(系统表)。这是const联接类型的一个特例。select * from (select nid from tb1 where nid 1) as A;7.动态执行sql语句示例delimiter \\DROP PROCEDURE IF EXISTS proc_sql \\CREATE PROCEDURE proc_sql ()BEGINdeclare p1 int;set p1 11;set p1 p1;PREPARE prod FROM select * from tb2 where nid ?;EXECUTE prod USING p1;DEALLOCATE prepare prod;END\\delimiter ;8.如何优化SQL语句1.列类型尽量定义成数值类型且长度尽可能短如主键和外键类型字段等等2.建立单列索引3.根据需要建立多列联合索引当单个列过滤之后还有很多数据那么索引的效率将会比较低即列的区分度较低那么如果在多个列上建立索引那么多个列的区分度就大多了将会有显著的效率提高。4.根据业务场景建立覆盖索引只查询业务需要的字段如果这些字段被索引覆盖将极大的提高查询效率5.多表连接的字段上需要建立索引这样可以极大的提高表连接的效率6.where条件字段上需要建立索引7.排序字段上需要建立索引8.分组字段上需要建立索引9.where条件上不要使用运算函数以免索引失效
http://www.sadfv.cn/news/266866/

相关文章:

  • 电商网站运营网站建设 APP开发销售怎么做
  • 找做网站签证如何制作数据库网站
  • 合肥网站开发网络公司服务器网站模板
  • 做网站要先买域名吗个人注册公司需要多钱
  • 网站建设与管理视频宁波市公共资源交易中心官网
  • 温州网站推广有哪些方法站内推广途径
  • 网站在线制作生成电子商务网站建设与管理相关论文
  • 网站是什么?做行业网站广告
  • 商城网站的设计风格wordpress接入paypal
  • 电子商务网站管理系统南京网站设计建设推荐
  • 南阳建设重要区域中心城市网站网站制作做站长挣钱
  • php小网站wordpress文章id排列
  • 没有域名可以建网站吗rails 网站开发
  • 网站建设改版升级制作网页怎样添加背景音乐
  • 如何留住网站用户哈尔滨模板建站定制网站
  • 学网站建设可以从事什么工作信息网官网
  • 深圳海洋网络做网站成立公司需要几个人
  • 商业网站改版需要多久中国外贸导航网
  • 诸暨网站开发域名注册服务
  • 汉网网站建设做托福的网站
  • 如何更换网站空间千万别去代理记账公司
  • 北京做网站的公司东道wordpress中文语言
  • 做装修网站云南住房和城乡建设厅网站首页
  • 门户网站营销可以看违禁网页的浏览器
  • drupal和wordpress怎么做网站优化排名
  • html模板网站推荐工厂管理培训课程
  • 网站系统怎么做营销网站制作都选ls15227
  • 非官方网站建设给被k的网站做友链
  • 怎么能将网站做的不简单牡丹区住房和城乡建设局网站
  • 如何选择深圳网站建设3d地图网站模板html