mysql函数

mysql基础

怎甘沉沦 提交于 2019-12-02 18:35:11
1、描述视图,存储过程,函数,触发器分别是什么并实践 视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。表现为对实体表的查询结果,查完之后存储在视图。方便下次查询   通过视图,可以展现基表的部分数据;视图数据来自定义视图的查询中使用的表,使用视图动态生成。 创建视图 create view v_students as select stuid,name,age from students; 创建视图,将查询结果存储成视图。可方便查询 原始表 视图生成的表 查看表状态。comment表示了是view表。表示为视图 函数 create function hello() returns varchar(20) return "hello world!"; 创建一个无参数的函数。返回字符串。具体返回为 hello world 实现一个打印字符串功能 查看函数定义 创建有参数的函数 MariaDB [hellodb]> delimiter // #将命令执行;号变成 //方便区分。在定义函数内部要执行的命令时。如果出现;号将不会执行 MariaDB [hellodb]> create function del(uid int unsigned) returns varchar(20) #创建函数。添加一个个uid参数,并指定类型为数字。返回结果为字符串 -> begin

scrapy爬取猫眼电影排行榜

老子叫甜甜 提交于 2019-12-02 17:26:14
做爬虫的人,一定离不开的一个框架就是scrapy框架,写小项目的时候可以用requests模块就能得到结果,但是当爬取的数据量大的时候,就一定要用到框架. 下面先练练手,用scrapy写一个爬取猫眼电影的程序,环境配置和scrapy安装略过 第一步肯定是终端运行创建爬虫项目和文件 1 # 创建爬虫项目 2 scrapy startproject Maoyan 3 cd Maoyan 4 # 创建爬虫文件 5 scrapy genspider maoyan maoyan.com 然后在产生的items.py文件夹中定义需要爬取的数据结构 1 name = scrapy.Field() 2 star = scrapy.Field() 3 time = scrapy.Field() 之后打开maoyan.py文件,编写爬虫文件,记得导入items.py文件的MaoyanItem类,并实例化 1 import scrapy 2 from ..items import MaoyanItem 3 ​ 4 class MaoyanSpider(scrapy.Spider): 5 name = 'maoyan3' 6 allowed_domains = ['maoyan.com'] 7 # 去掉start_urls变量 8 ​ 9 # 重写start_requests()方法 10 def

mysql explain详解

流过昼夜 提交于 2019-12-02 15:36:46
在 explain的帮助下,您就知道什么时候该给表添加索引,以使用索引来查找记录从而让select 运行更快。 如果由于不恰当使用索引而引起一些问题的话,可以运行 analyze table来更新该表的统计信息,例如键的基数,它能帮您在优化方面做出更好的选择。 explain 返回了一行记录,它包括了 select语句中用到的各个表的信息。这些表在结果中按照mysql即将执行的查询中读取的顺序列出来。mysql用一次扫描多次连接(single- sweep,multi-join)的方法来解决连接。这意味着mysql从第一个表中读取一条记录,然后在第二个表中查找到对应的记录,然后在第三个表 中查找,依次类推。当所有的表都扫描完了,它输出选择的字段并且回溯所有的表,直到找不到为止,因为有的表中可能有多条匹配的记录下一条记录将从该表读 取,再从下一个表开始继续处理。 在mysql version 4.1中,explain输出的结果格式改变了,使得它更适合例如 union语句、子查询以及派生表的结构。更令人注意的是,它新增了2个字段: id和 select_type。当你使用早于mysql4.1的版本就看不到这些字段了。 explain结果的每行记录显示了每个表的相关信息,每行记录都包含以下几个字段: id :本次 select 的标识符。在查询中每个 select都有一个顺序的数值。

mysql创建使用存储过程

醉酒当歌 提交于 2019-12-02 14:48:53
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言 SQL 语句在执行的时候需要要先编译,然后执行,而存储过程( Stored Procedure )是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有 SQL 语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。 存储过程通常有以下优点: (1). 存储过程增强了 SQL 语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 (2). 存储过程允许标准组件是编程。存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的 SQL 语句。而且数据库专业人员可以随时对存储过程进行修改,对应用程序源代码毫无影响。 (3). 存储过程能实现较快的执行速度。如果某一操作包含大量的 Transaction-SQL 代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。因为存储过程是预编译的。在首次运行一个存储过程时查询,优化器对其进行分析优化

MySQL性能优化

折月煮酒 提交于 2019-12-02 14:43:14
数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为前缀并以日期(时间戳)为后缀 所有存储相同数据的列名和列类型必须一致(一般作为关联列,如果查询时关联列类型不一致会自动进行数据类型隐式转换,会造成列上的索引失效,导致查询效率降低) 数据库基本设计规范 1. 所有表必须使用Innodb存储引擎 没有特殊要求(即Innodb无法满足的功能如:列存储,存储空间数据等)的情况下,所有表必须使用Innodb存储引擎(mysql5.5之前默认使用Myisam,5.6以后默认的为Innodb)。 Innodb 支持事务,支持行级锁,更好的恢复性,高并发下性能更好。 2. 数据库和表的字符集统一使用UTF8 兼容性更好,统一字符集可以避免由于字符集转换产生的乱码,不同的字符集进行比较前需要进行转换会造成索引失效,如果数据库中有存储emoji表情的需要,字符集需要采用utf8mb4字符集。 3. 所有表和字段都需要添加注释 使用comment从句添加表和列的备注,从一开始就进行数据字典的维护 4. 尽量控制单表数据量的大小,建议控制在500万以内。

PHP MySQL Insert Into

馋奶兔 提交于 2019-12-02 13:37:37
INSERT INTO 语句用于向数据库表中插入新记录。 向数据库表插入数据 INSERT INTO 语句用于向数据库表添加新记录。 语法 INSERT INTO table_name VALUES (value1, value2,....) 您还可以规定希望在其中插入数据的列: INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,....) 注释:SQL 语句对大小写不敏感。INSERT INTO 与 insert into 相同。 为了让 PHP 执行该语句,我们必须使用 mysql_query() 函数。该函数用于向 MySQL 连接发送查询或命令。 例子 在前面的章节,我们创建了一个名为 "Persons" 的表,有三个列:"Firstname", "Lastname" 以及 "Age"。我们将在本例中使用同样的表。下面的例子向 "Persons" 表添加了两个新记录: <?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("my_db", $con); mysql_query(

PHP MySQL Where 子句

假装没事ソ 提交于 2019-12-02 13:37:33
如需选取匹配指定条件的数据,请向 SELECT 语句添加 WHERE 子句。 WHERE 子句 如需选取匹配指定条件的数据,请向 SELECT 语句添加 WHERE 子句。 语法 SELECT column FROM table WHERE column operator value 下面的运算符可与 WHERE 子句一起使用: seo攻略 运算符 说明 = 等于 != 不等于 > 大于 < 小于 >= 大于或等于 <= 小于或等于 BETWEEN 介于一个包含范围内 LIKE 搜索匹配的模式 注释:SQL 语句对大小写不敏感。WHERE 与 where 等效。 为了让 PHP 执行上面的语句,我们必须使用 mysql_query() 函数。该函数用于向 SQL 连接发送查询和命令。 例子 下面的例子将从 "Persons" 表中选取所有 FirstName='Peter' 的行: <?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("my_db", $con); $result = mysql_query("SELECT * FROM Persons WHERE

关于MySQL数据库中null的那些事

女生的网名这么多〃 提交于 2019-12-02 13:30:32
  在mysql数据库中,null是一个经常出现的情况,关于mysql中的null,有哪些注意事项呢?下面简单总结归纳下,后续会不断补充。   1. is null   首先判断数据库中某一列的值是否为null,不能用等于来判断,必须使用 is。比如,select * from users where user_name is null 或者 select * from users where user_name is not null,而不能是 select * from users where user_name = null   2. ISNULL( )   MySQL数据库中内置了 ISNULL( ) 函数,其使用方法与MySQL中提供的sum()等其他内置函数一样。比如,select ISNULL(user_name) from users where user_name = ‘Demrystv’ 返回值是 0;select ISNULL(NULL) 返回值是1   3. IFNULL()   MySQL数据库中内置了 IFNULL( ) 函数,其使用方法与MySQL中提供的sum()等其他内置函数一样。其主要接收两个参数,第一个参数是要判断空值的字段或值,第二个字段是当第一个参数是空值的情况下要替换返回的另一个值,即如果第一个字段为null,会将其替换成其他值。比如

mysql ifnull

旧时模样 提交于 2019-12-02 12:54:26
ifnull(field,0):如果field为null,则值为0; 先看下SELECT * FROM mytest.orders; 使用ifnull() select id,product,ifnull(price,0) from orders; oracle中使用 nvl() 函数达到一样的功能,mysql中没有nvl()函数。 来源: https://blog.csdn.net/xldmx/article/details/102761260

mysql存储函数入门

半腔热情 提交于 2019-12-02 12:16:07
1.创建一个无参存储函数 功能:查询10部门的平均工资 调用结果: 2.创建一个带输入参数的存储函数 运行结果: 3.创建一个带输出参数的存储函数 运行结果: 4.创建一个带输入参数,输出参数的存储函数 运行结果: 注意事项: 1.存储函数的调用用 call 存储函数名(@变量名) 来源: https://blog.csdn.net/qq_38423256/article/details/102759691