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

贵阳网站空间WordPress对接QQ聊天

贵阳网站空间,WordPress对接QQ聊天,可以免费开店的平台有哪些,旅业认证二维码有什么用1. MySQL的事务(1)存储引擎的介绍介绍#xff1a;当客户端发送一条SQL语句给服务器时#xff0c;服务器端通过缓存、语法检查、校验通过之后#xff0c;然后会通过调用底层的一些软件组织#xff0c;去从数据库中查询数据#xff0c;然后将查询到的结果集返回给客户端当客户端发送一条SQL语句给服务器时服务器端通过缓存、语法检查、校验通过之后然后会通过调用底层的一些软件组织去从数据库中查询数据然后将查询到的结果集返回给客户端而这些底层的软件组织就是存储引擎。MySQL的存储引擎- MySQL的核心就是存储引擎MySQL可以设置多种不同的存储引擎不同的存储引擎在索引、存储、以及锁的策略上是不同的。- Mysql5.5之前使用的是myisam存储引擎支持全文搜索不支持事务。- Mysql5.5以后使用的是innodb存储引擎支持事务以及行级锁(2)MySQL事务的介绍介绍事务是一个操作序列这些操作要么都做要么都不做是一个不能分割的工作单位。在两条或两条以上的SQL语句才能完成的业务时才需要用事务因为事务时同步原则效率比较低。事务的ACID特性- 原子性放在同一事务的一组操作时不可分割的- 一致性在事务的执行前后整体的状态是不变的- 隔离性事务之间是独立存在的两个不同事务之间互不影响- 持久性事务执行之后将会永久的影响到数据库。#例一个事务操作BEGIN;update t_account set moneymoney100 where id 1;update t_account set moneymoney-100 where id 2;COMMIT;#一个回滚操作BEGIN;update t_account set moneymoney100 where id 1;update t_account set moneymoney-100 where id 2;COMMIT;注意MySQL数据库dml操作采用的是自动提交#查看自动提交show variables like autocommit;#修改自动提交set autocommit0;(3)MySQL事务并发时产生的问题脏读在一个事务的执行范围内读到了另一事务未提交的数据。解决读已提交一个数据库只能读到另一个事务提交后的数据。(Oracle默认的事务隔离级别)不可重复读一个事务在只读范围内被另一事务修改并提交事务导致多次读取的数据不一致的问题。解决可重复读(MySQL默认的事务隔离级别)虚读一个事务的只读范围内被另一个事务删除或者添加数据导致多次读取的数据不一致的问题。解决串行化解决所有问题但是速度十分缓慢不能使用并发事务。注意查看事务的隔离级别select tx_isolation;2. MySQL的存储程序(1)MySQL的存储程序的介绍描述运行与服务器端的程序。优点简化开发执行效率比较高(在服务器端以通过校验可直接使用)缺点服务器端保存这些存储程序需要占用磁盘空间数据迁移时需要将这些存储程序进行迁移调试和编写程序在服务器端都不方便存储程序的分类存储过程、存储函数、触发器注意存储程序不能使用事务(2)存储过程介绍存储过程是在服务器端的一段可执行的代码块。例#修改结束符标志delimiter //#创建存储过程create procedure pro_book()begin#sqlselect * from book;select * from book where bid3;end //#运行call pro_book()#参数的传入delimiter //create procedure pro_book02(num int)beginselect * from book where bidnum;end ; //--调用call pro_book02(3)#传出参数delimiter //create procedure pro_book03(num int,out v_name varchar(10))beginselect bname into v_name from book where bidnum;end ; //--调用,这里的v_name是一个用户变量call pro_book03(1,v_name);select v_name;#传入传出参数delimiter //create procedure pro_book04(num int)beginselect bid into num from book where bidnum;end ; //--调用set v_id3; --给用户变量赋值call pro_book04(v_id);select v_id;控制流程语句#if语句delimiter //create procedure if_test(score int)begin-- 定义局部变量declare myLevel varchar(20);if score80 thenset myLevelA;elseif score 60 thenset myLevelB;elseset myLevelC;end if;select myLevel;end; //-- 调用call if_test(70);#while循环delimiter //create procedure while_test()begindeclare i int ;declare sum int ;set i1;set sum 0;while i100 doset sumsumi;set ii1;end while ;select sum;end ;//call while_test()#loop循环delimiter //create procedure loop_test()begindeclare i int ;declare sum int ;set i1;set sum 0;-- 起别名lip:loopif i100 then-- 离开loop循环leave lip ;end if ;set sumsumi;set ii1;end loop ;select sum;end ;//call loop_test()#repeat循环delimiter //create procedure repeat_test()begindeclare i int ;declare sum int ;set i1;set sum 0;repeatset sumsumi;set ii1;-- 不要加分号until i100end repeat ;select sum;end ;//call loop_test()(3)存储函数存储在服务器端有返回值函数可以作为SQL的一部分进行调用。**例**delimiter //create function func_01(num int)-- 返回值类型returns varchar(20)deterministicbegindeclare v_name varchar(20);select bname into v_name from book where bid num ;return v_name;end ; //set v_namefunc_01(3);select v_name;-- 作为SQL的一部分调用select * from book where bnamefunc_01(3);函数和存储过程的区别- 存储过程有三种参数模式(in、out、inout)实现数据的输入输出而函数是通过返回值进行数据传递。- 关键字不同- 存储过程可以作为独立个体执行函数只能作为SQL的一部分执行。(4)触发器触发器存储在服务器端由事件调用不能传参。事件类型增、删、改语法create trigger 触发器名触发时机(after|before) event(update|delete|insert)on 需要设置触发器的表名 for each row (设置为行级触发器)begin一组sqlend;例delimiter //;-- 创建一个触发器create trigger tri_testafter delete-- 设置为行级别的触发器on book for each rowbegininsert into book values(old.id,悲惨数据,zzy);end;//注意在触发器中有两个对象old、newold表示删除数据时那条原数据记录new表示修改和插入数据时那条新数据记录。3. MySQL的表的设计(1)数据库的三大范式- 1NF所有字段都是原子性的不可分割的。- 2NF非主键字段必须与主键相关(每一张表只描述一类事物)而不能与主键部分相关(在联合主键时有效)- 3NF非主键字段必须与主键相关(每一张表只描述一类事物)而不能与主键部分相关(在联合主键时有效)(2)表的关系一一对应#以人和×××为例人表CREATE TABLE t_people (id int(11) NOT NULL,name varchar(50) DEFAULT NULL,age int(11) DEFAULT NULL,PRIMARY KEY (id))×××表create table t_idcard(card_number varchar(18) primary key,create_date date,p_id int unique,foreign key (p_id) REFERENCES t_people(id))注意设计方法想办法让外键字段同时拥有唯一约束外键字段在任意的表中都可以一对多以部门和员工表为例create table t_emp(eid int PRIMARY KEY,ename varchar(50) not null,job varchar(50),deptno int ,foreign key (deptno) REFERENCES t_dept(deptno))部门表create table t_dept(deptno int primary key,deptname varchar(50))注意设计方法只需要在多的那个表中增加一个外键约束多对多设计方法需要找一张中间表转化成两个一对多的关系(3)数据库的优化SQL的优化在查询时一般不使用 *因为在查询记录时一般使用(*),他会将*转换为列名然后在查询(耗时)使用 not null /null 对索引进行搜索会导致索引失效索引列中使用函数也会导致索引失效索引列中进行计算也会导致索引失效索引列不要使用not||尽量不要使用or,使用union索引列中使用like也会导致索引失效exists 和 in的使用选择exists先执行主查询如果主查询过滤的比较多则使用existsin先执行子查询如果是子查询的过滤比较多则使用in。
http://wiki.neutronadmin.com/news/157249/

相关文章:

  • 东台网站制作免费公开api接口大全
  • 网站建设氵金手指下拉部门网站的开发 意义
  • 高端上海网站设计公司dedecms建设慕课网站
  • 给公司做一个网站wordpress搬家简书
  • ip网站查询服务器展示网站源码下载
  • 深圳官方网站新闻上海做网站 公司有哪些
  • 广州手机网站建设联系电话比较出名的网站域名
  • 开发网站的费用属于什么费用小程序怎么删除
  • 客户关系管理的重要性网站seo培训
  • 起名网站建设seo分析师
  • 建设商业门户网站的重要性龙岩做网站多少钱
  • 福州网站制作费用做网站三年3万块钱
  • 有谁做过网站建设政务网站集约化建设推进情况
  • 创恒建设有限公司网站网页设计实训报告总结200字
  • 做关于车的网站有哪些无锡网站建设推荐
  • 国外有哪些做deal的网站wordpress 内容编辑器
  • 广东哪有做网赌网站东营网站seo服务
  • 网站建设好的乡镇欧阳网站建设
  • 扬州做网站的公司哪个好WordPress 百度联盟优化主题
  • 河南省建设银行网站ueditor编辑器wordpress
  • google网站怎么做流量网站建设saas
  • 网站中客户的权限设置做甜品网站
  • 上海建设网站的价格网站频繁被攻击怎么办
  • 网站建设包含哪些160mk2成色
  • 忘记网站后台用户名云闪付当前页面设计隐私
  • 山东聊城建设局网站wordpress支付系统开发
  • 海南州建设厅官方网站秦皇岛英文网站建设
  • 手机可以做网站做网站要钱的吗
  • 廊坊 网站临湘网站
  • 郑州建网站371论文网站建设的参考文献