MYSQL基础知识总结(二)
来源:互联网 发布:淘宝联盟怎么建立网站 编辑:程序博客网 时间:2024/05/22 12:59
五、运算符和函数
5.1、字符函数
名称描述说明CONCAT()字符连接 CONCAT(str1,str2,...);SELECT CONCAT(first,second) AS name FROM userCONCAT_WS()使用指定的分隔符进行连接CONCAT_WS(str1,str2,...);SELECT CONCAT(‘-’,'imooc','MYSQL')FORMAT()数字格式化FORMAT(NUMBER,n);保留n为小数,返回字符型数字LOWER()转换成小写字母 UPPER()转换成大写字母 LEFT()获取左侧字符LEFT(str,n)RIGHT()获取右侧字符 LENGTH()获取字符串长度 LIRIM()删除前导空格 RTRIM()删除后续空格 TRIM()删除前导和后续空格 SUBSTRING()字符串截取位置可以为负值,但是长度不能为负值[NOT]LIKE模式匹配like+通配符进行过滤,“%”任意字符出现任意次数,"_"匹配单个字符,"[JM]"以J或M开头的,"[^JM]"不易J或M开头的,[]指定范围的单个字符REPLACE()字符串替换
5.2、数值运算符及函数
名称描述说明CEIL()进一取整向上取整,ceil(2.99)=3DIV整数除法 FLOOR()舍一取整 MOD取余数(取模) POWER()幂运算 ROUND()四舍五入ROUND(NUM,n),n为保留几位小数TRUNCATE()数字截取TRUNCATE(NUM,n),注意TRUNCATE(125.89,0)=125,TRUNCATE(125.89,-1)=120,TRUNCATE(125.89,-2)=100,TRUNCATE(125.89,-3)=0
5.3、比较远算符及函数
名称描述说明[NOT]BETWEEN...AND...[不]在范围之内 [NOT]IN()[不]在列出值范围内 IS [NOT] NULL[不]为空5.4、日期时间函数
名称描述说明NOW()当前日期和时间 CURDATE()当前日期 CURTIME()当前时间 DATE_ADD()日期变化SELECT DATE_ADD('2014-3-12',INTERVAL 1 YEAR),这个输出为2015-03-12DATEDIFF()日期差值 DATE_FORMAT()日期格式化5.5、信息函数
名称描述COUNECTION_ID()连接IDDATABASE()当前数据库LAST_INSERT_ID()最后插入记录的ID号。注意:不管一次插入几条记录,返回的都是最后一条的ID号USER()当前用户VERSION()版本信息5.6、聚合函数
名称描述说明AVG()平均数,NULL 值不包括在计算中SELECT customers FROM Orders WHERE orderPrice>(SELECT AVG(orderPrice) FROM Orders)COUNT()计数,NULL值不计入SELECT COUNT(*) FROM tbl_name//返回表中的记录数SELECT COUNT(DISTINCT column_name) FROM tbl_name;//返回指定列不通知的数目MAX()最大值 MIN()最小值 SUM()求和
5.7、加密函数
名称描述说明MD5()信息摘要算法SELECT MD5('KCY')PASSWORD()密码算法SET PASSWORD = PASSWORD('root);将用户的密码修改成root5.8、自定义函数
创建自定义函数:
CREATE FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL} rountine_body
例如:1)编写一个无参函数,改写日期的格式
CREATE FUNCTION f1() RETURNS VARCHAR(30) RETURNS DATE_FORMAT(NOW(),%Y年%m月%d日 %H点%i分%s秒");
调用:SELECT f1();
2)编写一个有参函数来计算均值
CREATE FUNCTION f2(num1 SMALLINT UNSIGNED,num2 SMALLINT UNSIGNED) RETURNS float(10,2)unsigned return (num1+num2)/2;
调用:SELECT f2(10,15);
六、MYSQL中的存储引擎
6.1、存储引擎就是以不同的存储机制、索引、锁方式等技术将数据存储在文件或者内存中;
常见的存储引擎有MyISAM、InnoDB、Menory、Archive等
6.2、并发控制,多个连接对数据库进行修改时保证数据的一致性和完整性,MySQL提供两个级别的并发控制分别为服务器级和存储引擎级。
6.3、锁,实现并发控制的一种方法。
1)、锁分为共享锁(读个用户可同时进行读操作)和排他锁(只有一个用户进行写操作)
2)、锁的粒度表级锁(开销较小)和行级索(开销较大)。
6.4、事务,是恢复和并发控制的基本单位;
1)、数据库事务的四特性ACID如下:
Atomic 原子性,整个数据库事务是不可分割的工作单位
Consistency 一致性,数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性
Isolation 隔离性,在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间
Durability 持久性,指的是只要事务成功结束,它对数据库所做的更新就必须永久保存下来
2)、事务的隔离级别
Serializable:可避免脏读、不可重复读、虚读情况的发生。
Repeatable read:可避免脏读、不可重复读情况的发生。(可重复读,是 mysql 默认的事务隔离级别)
Read committed:可避免脏读情况发生。(读取已提交的数据)
Read uncommitted:最低级别,以上情况均无法保证。(读取到了未提交的数据)
3)、实际的开发过程用到事务开启、回滚、关闭等操作,保证数据的正确性。
6.5、索引,在存储引擎级别实现的,对一行或者多行记录进行排序的结构,包含普通索引、唯一索引、主键索引、组合索引等,索引的创建同表的创建
create [unique]index on t_name(字段);
6.6、不同存储引擎之间的对比
1)、MyISAM:存储限制为256TB,支持索引,表锁,可进行数据压缩
2)、InnoDB: 存储限制为64TB, 支持事务,支持索引,行锁,支持外键
3)、Memory: 存在内存中,支持索引,表锁
4)、Archive:无存储限制,行锁,支持数据压缩
- MYSQL基础知识总结(二)
- MySQL基础知识二
- JAVA基础知识总结(二)
- Java基础知识总结(二)
- javascript基础知识总结二
- java基础知识总结(二)
- java基础知识总结(二)
- mysql 基础知识总结
- [MYSQL]基础知识总结
- MYSQL基础知识总结(一)
- MySQL基础知识总结
- MYSQL基础知识总结
- MySql基础知识总结
- MySql基础知识总结
- Java 基础知识 mySQL使用 (二)
- DRP基础知识总结(二)
- java基础知识总结(二)--集合
- java基础知识总结(二)
- org.hibernate.InvalidMappingException: Could not parse mapping document from resource 处理办法
- EHCache分布式缓存集群环境配置
- Android TextUtils的常用方法
- 1032. Sharing (25)
- sql
- MYSQL基础知识总结(二)
- Bootstrap-栅格布局实例
- ccf 出现次数最多的数
- 解决win8/8.1系统不兼容Visual C++6.0的问题
- DragonBoard 410c高速扩展口详解
- 拷贝构造函数 http://www.nowcoder.com/profile/380772/test/2198787/36698?onlyWrong=0
- laravel(2) 变量传递
- 堆与栈 内存分配
- 115,字符串替代