sql
talkingmute
这个作者很懒,什么都没留下…
展开
-
mysql触发器介绍和使用
触发器是mysql数据库针对某张表发生增删改操时自动执行的一段语句集合,它是跟某张表关联绑定的,不像存储过程那种需要被动调用。触发器可以用来检验数据完整性,日志跟踪记录等。注意:不能在mysql本身系统数据库的表上创建触发器,要在其他数据库的表上创建。创建触发器的结构:create trigger trigger_namebefore/after insert/update/delet...原创 2020-02-18 14:44:08 · 610 阅读 · 0 评论 -
mysql存储过程之异常处理exit,continue,游标操作
异常处理是存储过程里对各类错误异常进行捕获和自定义操作的机制,是有两种类型:exit——遇到错误就会退出执行后续的,continue——遇到错误会忽略错误继续执行后续。下面举例说明:比如有一个存储过程p_insert_excep,有两个输入参数:s_name varchar(20),i_age intbegin declare exit handler for sqlexcept...原创 2020-02-17 22:05:33 · 3396 阅读 · 0 评论 -
mysql存储过程和函数使用,if语句case语句while语句loop语句,批量插入大量随机记录示范
存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,方便数据库表字段的隐藏和封装。相对于函数来说,存储过程来说可以返回多个值,参数可以有IN,OUT,INOUT三种类型,而函数只能有一个返回值。存储过程一般是作为一个独立的部分来执行,使用call 存储过程名,而函数可以作为查询语句的一个部分来调用(SELECT调用)。存储过程完成的功能也更加复杂强大,函数则是只针对一个功能。...原创 2020-02-05 20:39:55 · 699 阅读 · 0 评论 -
sql语句中case when和as用法
在sql语句里case when then else end可以当做c语言中switch case一样是分支语句,起到不同条件处理作用。而as相当于一个别名,可以给某个列或者某个表起新的名字。比如这里有个employee表,select * from employee;+----+--------+-----+---------+| id | name | age | dept_i...原创 2020-02-05 13:27:04 · 6779 阅读 · 0 评论 -
数据库索引优化和避免索引失效(mysql和sqlite)
数据库索引就好比一本字典前面的目录,它是方便快速查询操作的,能提高查询效率。一方面,我们在编写sql语句时,要争取写出高质量的sql语句,以便减小数据库底层查询优化器组件的工作,提升性能(参见前面一篇介绍sql查询过程的文章https://blog.csdn.net/talkingmute/article/details/104127163);另一方面,要防止索引失效的情况。我们创建索引的场景...原创 2020-02-03 23:11:13 · 1481 阅读 · 1 评论 -
sql外键使用说明
sql中外键一般是用到多表查询,便于多个表的数据统一和完整。它是依附于另外一个表的主键,相当于是一个引用,它的值必须在另外表的主键值范围,不能超界,否则会出现异常错误。它的创建可以是如下两种:(从表就是含有外键的表,主表就是被引用的表)create table 从表名 (id int primary key ...... foreign key 从表(外键字段名称) references ...原创 2020-02-02 22:09:33 · 3279 阅读 · 0 评论 -
sql查询语句的执行过程,Mysql两种存储引擎MyISAM和Innodb的区别,事务介绍和autocommit自动提交
关于数据库查询优化,我们程序员最主要的工作就是优化sql语句和使索引有效。数据库服务器在接收到我们传入的sql语句后并不能马上对该sql进行执行,而是要经过一系列复杂的流程,最终变成二进制的机器码才能被执行的。我们在日常数据库操作,80%以上都是查询语句,这里就解析下查询语句的执行过程。1-通过网络的通讯协议接收客户端传入的sql2-查看该sql对应的结果在查询缓存中是否存在——存在,...原创 2020-02-01 17:00:37 · 450 阅读 · 0 评论 -
sqlite数据库常用sql语句,创建表,添加列,随机数random,自增默认值。
sqlite> create table bird (id integer primary key autoincrement not null,swing int);//创建一个新表,id是整数,自增和主键。sqlite> .schema bird//查看表的架构CREATE TABLE bird (id integer primary key autoincrement not...原创 2020-01-27 19:55:33 · 1781 阅读 · 0 评论 -
sql视图和子查询
视图就是基于sql语句的结果集而产生的一个可视化的表,它其实就是一个虚表,只能进行查询操作,不能插入和修改。当原表的记录有变化时(比如插入修改和删除操作),它的结果集也会跟着变化。比如这样一个student表可以使用:create view teview as select id,name,age from student;创建一个teview视图,它是从student表里提取id,nam...原创 2020-01-27 18:09:21 · 815 阅读 · 0 评论 -
sql语句having,where,group by,order by使用
在sql语句中,HAVING 子句允许指定条件来过滤将出现在最终结果中的分组结果。WHERE 子句在所选列上设置条件,而 HAVING 子句则在由 GROUP BY 子句创建的分组上设置条件。下面是包含 HAVING 子句,where子句的 SELECT 语句的语法:SELECT column1, column2FROM table1, table2WHERE [ condition...原创 2020-01-21 13:16:14 · 246 阅读 · 0 评论 -
sql语句:where和on,join连接
数据库在连接多个表,通过select查询返回结果时,都会生成一个临时表,然后再把这个表返回给用户。这里如要进行过滤的,可以用where或者on,他们两者的使用有些不同。比如,Keys表Sections表两个表含有同个字段SectionID当我们需要从这2个表查找含有相同字段的记录时,使用select * from Keys , Sections on Keys.Sectio...原创 2020-01-15 23:27:02 · 1336 阅读 · 0 评论