mysql函数

MySQL数据库笔记总结

匿名 (未验证) 提交于 2019-12-02 22:02:20
MySQL数据库总结 一、数据库简介 1. 数据    所谓 数据(Data)是指对客观事物进行描述并可以鉴别的符号,这些符号是可识别的、抽象的 。 它不仅仅指狭义上的数字,而是 有多种表现形式:字母、文字、文本、图形、音频、视频等 。现在计算机存储和处理的数据范围十分广泛,而描述这些数据的符号也变得越来越复杂了。 2. 数据库   数据库(Database,DB)指的是 以一定格式存放、能够实现多个用户共享、与应用程序彼此独立的数据集合 。举例:车库,水库,数据库 3. 数据库管理系统   数据库管理系统(Database Management System,DBMS)是用来定义和管理数据的软件。 如何科学的组织和存储数据,如何高效的获取和维护数据,如何保证数据的安全性和完整性,这些都需要靠数据库管理系统完成 。目前,比较流行的数据库管理系统有:Oracle、MySQL、SQL Server、DB2等。 4. 数据库应用程序   数据库应用程序(Database Application System,DBAS)是在数据库管理系统基础上,使用数据库管理系统的语法,开发的 直接面对最终用户的应用程序 ,如学生管理系统、人事管理系统、图书管理系统等。 5. 数据库管理员   数据库管理员(Database Administrator,DBA)是 指对数据库管理系统进行操作的人员

MYSQL双主模式,触发器(trigger)不可见问题

匿名 (未验证) 提交于 2019-12-02 22:02:20
MYSQL版本信息: Your MySQL connection id is 71851 Server version : 5.7 . 24 - log MySQL Community Server ( GPL ) 昨晚解决一个紧急问题,计划用MYSQL的触发器简单做两表的数据同步。 单机模式创建的触发器(trigger)可正常看到,在双主模式下执行SQL命令创建的触发器在Navicat下看不到,但是用show trigger可以看到。 在双主模式下,函数在Navicat下也是存在一些问题。 关于双主模式下trigger的详细描述 https://dev.mysql.com/doc/refman/5.7/en/replication-features-triggers.html 转载请标明出处: MYSQL双主模式,触发器(trigger)不可见问题 文章来源: MYSQL双主模式,触发器(trigger)不可见问题

mysql数据库专业术语说明

匿名 (未验证) 提交于 2019-12-02 21:59:42
1. 数据库简介: 数据库(database): 数据库是数据的汇集,它以一定的组织形式存于存储介质上。 补充说明: 数据库软件称为数据库管理系统(DBMS), DBMS实现数据库系统的各种功能,是数据库系统的核心。 关系型数据库: 各个数据之间存在关联是关系型数据库得名的主要原因。 当前主流的关系型数据库有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。 非关系型数据: 非关系型的,分布式的,且一般不保证遵循ACID原则的数据存储系统。 有NoSql、Cloudant等。 2.关系型数据库常见术语: 行(row): 表是一种结构化的文件,可用于存储特定类型的数据,表中的每一行,也称为一条记录。 列(column): 表中的一个字段,所有表都是由一个或多个列组成的。表中的每一列,称为属性,字段。 索引: 将表中的一个或多个字段中的数据复制一份另存,并且按特定次序排序存储。 视图: 视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。 约束(constraint)条件: 表中的数据要遵守的限制。 主键: 一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行。 惟一键: 一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;允许为NULL,一个表可以存在多个 外键:

mysql

匿名 (未验证) 提交于 2019-12-02 21:59:42
查看所以库大小 select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size, concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size from information_schema.tables group by TABLE_SCHEMA order by data_length desc; 查询 表结构 show create tables tablename 查询视图结构 show create view viem.name 查询数据库中的存储过程和函数 select `name` from mysql.proc where db = 'xx' and `type` = 'PROCEDURE' //存储过程 select `name` from mysql.proc where db = 'xx' and `type` = 'FUNCTION' //函数 show procedure status; //存储过程 show function status; //函数 查看存储过程或函数的创建代码   show create procedure proc_name;   show

MySQL 语句IFNULL函数使用

匿名 (未验证) 提交于 2019-12-02 21:59:42
MySQL IFNULL函数是MySQL控制流函数之一,它接受两个参数,如果不是NULL,则返回第一个参数。 否则,IFNULL函数返回第二个参数。 IFNULL函数的语法结构 IFNULL(expression_1,expression_2); IFNULL应用实例 USE testdb; CREATE TABLE IF NOT EXISTS contacts ( contactid INT AUTO_INCREMENT PRIMARY KEY, contactname VARCHAR(20) NOT NULL, bizphone VARCHAR(15), homephone VARCHAR(15) ); 请注意,应避免在WHERE子句中使用IFNULL函数,因为它会降低查询的性能。 文章来自 www.huthon.cn

Mysql中的delimiter详解

匿名 (未验证) 提交于 2019-12-02 21:59:42
初学mysql时,可能不太明白delimiter的真正用途,delimiter在mysql很多地方出现,比如存储过程、触发器、函数等。 学过oracle的人,再来学mysql就会感到很奇怪,百思不得其解。 其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。 默认情况下,delimiter是分号( 。 在命令行客户端中,如果有一行命令以分号结束, 那么回车后,mysql将会执行该命令。如输入下面的语句 mysql> select * from test_table; 然后回车,那么MySQL将立即执行该语句。 但有时候,不希望MySQL这么做。在为可能输入较多的语句,且语句中包含有分号。 如试图在命令行客户端中输入如下语句 mysql> CREATE FUNCTION `SHORTEN`(S VARCHAR(255), N INT) mysql> RETURNS varchar(255) mysql> BEGIN mysql> IF ISNULL(S) THEN mysql> RETURN ''; mysql> ELSEIF N<15 THEN mysql> RETURN LEFT(S, N); mysql> ELSE mysql> IF CHAR_LENGTH(S) <=N THEN mysql> RETURN S; mysql> ELSE mysql

linux 脚本实现程序自动安装

匿名 (未验证) 提交于 2019-12-02 21:59:42
2017年06月21日 09:45:00 阅读数:391 linux 脚本实现程序自动安装 #!/bin/bash //设置脚本中所需命令的执行路径 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH // $? 是取得上面执行命令的返回值,一般正确为0,错误为1 if [ "$?" != 0 ] ; then //echo 为输出到屏幕 echo "Please check your need software" //exit 0 为强制终止脚本 exit 0 fi // 声明回滚函数(作用是删除解压出来的文件) rollback(){ rm -rf apache-tomcat.tar.gz rm -rf MySQL-client-5.5.31-2.rhel5.i386.rpm rm -rf MySQL-server-5.5.31-2.rhel5.i386.rpm rm -rf jdk-6u29-linux-i586-rpm.bin rm -rf mysql.cnf } echo "Please choose to install or uninstall? (Installation: 1 / Uninstall: 0)" //接收键盘输入

Can’t connect MySQL server through socket的解决方法

不羁岁月 提交于 2019-12-02 21:35:09
mysql ,Mysqldump,Mysqladmin,php连接 mysql 服务常会提示下面错误: 1 ERROR 2002 ( HY000 ) : Can 't connect to local MySQL server through socket ' / var / lib / mysql / mysql . sock ' ( 2 ) 这是由于修改mysql服务的了socket文件mysql.sock位置,而导致无法通过mysql socket文件连接到mysql服务引起的,具体解决办法如下: 1、查看mysql服务的socket文件位置: mysql socket文件的位置是在/etc/my.cnf中设置的,cat /etc/my.cnf内容如下: 1 2 3 4 [ mysqld ] datadir = / storage / db / mysql socket = / storage / db / mysql / mysql . sock user = mysql 其中socket等于的路径就是socket文件的位置,我们只要修改my.cnf文件,告诉mysql, mysqldump , mysqladmin mysql服务的socket位置在哪里就可以。 2 、修改my.cnf文件: 在/etc/my.cnf文件中添加如下内容,并重启mysqls服务

mysql_connect报告“No such file or directory”错误的解决方法

梦想的初衷 提交于 2019-12-02 19:24:52
在网上搜了一下,找到了这篇文章: mysql_connect and No such file or directory 。原来,我的apache/php是mac系统自带的,而mysql是通过MacPorts安装的,它的本地socket设置与默认的不一样,导致php无法找到mysql的socket文件。解决方法上面那篇文章也给了,这里简单翻译一下: 首先确定是mysql_connect()和mysql_pconnect()的问题,故障现象就是函数返回空,而mysql_error()返回“No such file or directory”。 写个phpinfo页面,找到mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket。 启动mysql,执行命令 STATUS; 记下UNIX socket的值。 如果2和3的值不一样,则打开php.ini(可以从phpinfo页面中找到php.ini的位置,默认是/private/etc/php.ini),将2中提到的三个配置项的值改成3的值。 重启apache。 来源: oschina 链接: https://my.oschina.net/u/575659/blog/110082

MySQL:group by分组数据

一曲冷凌霜 提交于 2019-12-02 19:15:03
group by能够把数据分为多个逻辑组,各组内进行聚集计算,在where匹配特定行基础上有了更大的灵活性。 例1:返回每个供应商提供的产品数,需要按照供应商id分组 SELECT vend_id,COUNT(*) AS num_items FROM products GROUP BY vend_id 有了初步印象后,介绍group by一些使用规则: 1、group by后面可以跟任意数目的列进行分组嵌套,例如按照身高和性别分组,那么170的男生和170的女生都会展开显示出来。 2、group by子句列出的每个列都必须为检索列或有效的表达式,不能是聚集函数,且select语句中使用了表达式那么group by子句中需要是相同的表达式,不能为别名。 反例:SELECT order_num AS orderid, SUM(quantity*item_price) AS sum_price FROM orderitems GROUP BY orderid 原因:对于大多数关系数据库系统,如Oracle和SQLServer,GROUP BY是在SELECT子句之前执行的,不能使用在SELECT子句中定义的别名。MySQL对查询进行了加强,可以使用,但是仍不建议使用别名,避免混淆。 另外where子句中也不能使用别名。 3、除聚集函数外,select语句中的每个列都需要在group