TA的每日心情 | 无聊 昨天 09:06 |
---|
签到天数: 530 天 连续签到: 2 天 [LV.9]测试副司令
|
函数
字符函数
CONCAT('字符连接','sssgddhdhd','vdsvsdss');
CONCAT_WS('分隔符|','aaaa','bbbbb','ccccc');
FORMAT(1224445.54,0); //数字格式化
LOWER(); //转换成小写
UPPER(); //转换成大写
LEFT(); //获取左侧字符
RIGHT();
················
LENGTH(); //获取长度
LTRIM(); //删除前导空格
RTRIIM(); //后导
TRIM(); 中间空格
REPLACE('??MY??SQL???','??','!!');
SUBSTRING('MYSQL',1,2); //负值的话就会倒过来去
%代表任意个字符
_代表任意一个字符
数值运算符
CEIL(3.01); //
FLOOR(3.01);
DIV
MOD
POWER(3,3) 幂运算
ROUND(3.4555,2)
TRUNCATE(2132.45646,2) 数值截取
[NOT]BETWEEN...AND... 在什么之间
[NOT] IN() 在列值内
IS[NOT] NULL 不为空
日期时间函数
NOW()
CURDATE()
CURTIME()
DATE_ADD('2014-3-12',INTERVAL 365 DAY); 日期的变化
DATEDIFF('2013-3-12','2014-3-12');
DATE_FORMAT('2014-3-12','%m/%d/%y');
信息函数
CONNCETTION_ID()
DATEBASE()
LAST_INSERT_ID() 最后插入的记录
USER()
VERSION()
聚合函数
AVG()
SELECT ROUND(AVG(goods_price),2) AS avg_price FROMtdb_goods;
COUNT()
MAX()
MIN()
SUM()
加密函数
MD5() 信息摘要
PASSWORD() 密码算法
··········································
自定义函数UDF
两个必要条件 参数,返回值
可以接受,返回任意类型的参数或值
语法:
CREATE FUNCTION function_name RETURN 函数体
函数体
1、sql语句
2、简单的SELECT或insert
3、声明、循环、控制
SELECT DATE_FORMAT(NOW(),%Y年%m月%d日 %H点:%i分:%s秒);
如:
CREATE FUNCTIONS VARCHAR(30)
RETURN DATE_FORMAT(NOW(),%Y年%m月%d日 %H点:%i分:%s秒);
带有参数的自定义函数
CREATE FUNCTION f2(num1 SMALLINT UNSIGNED,num2 SMALLINTUNSIGNED)
RETURN FLOAT(10,2) UNSIGNED
RETURN (num1+num2)/2;
具有复合结构的函数 DELIMITER// 修改分界符
CREATE FUNCTION adduser(username VARCHAR(20))
RETURN INT UNSIGNED
BEGIN
INSERT test(uesrname) VALUES(username);
RETURN LAST_INSERT_ID();
END
删除函数
DROP FUNCTION name;
·······························
存储过程
是sql语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理
优点
- 增强sql语句的功能和灵活性
- 实现较快的运行速度
- 较少运行流量
·············
语法结构分析
过程体
·············
通过CALL来调用
创建
CREATE PROCEDURE sp1() SELECT VERSION();
procedure
调用存储过程
CALL sp_name();
创建带有IN类型的存储过程
CREATE PROCEDURE removeUserById(IN id INT UNSIGNED)
BEGIN
DELETE FROM users WHERE id=id;
END
创建带有IN、out类型的存储过程
CREATE PROCEDURE removeUserAndReturnUserNums(IN UNSIGNED,OUTuserNums INT UNSIGNED)
DEGIN
DELETE FROM users FROM users WHERE id=p_id;
SELECT count(id) FROM users INTO userNums;
END
创建带有多个out类型的存储过程
CREATE PROCEDURE removeUserByAgeAndReturnInfos(IN p_age SMALLINTUNSIGNED,OUT deleteUser SMALLINT UNSIGNED,OUT userCounts SMALLINTUNSIGNED)
BEGIN
DELETE FROM user WHERE age = p_age;
SELECT ROW_COUNT() INTO deleteUsers;
SELECT COUNT(id) INTO userCounts;
END
删除存储过程
DROP PROCEDURE ·····
········································
存储引擎
MySQL将以不同的技术存储在文件内存中,这种技术就称为存储引擎
MySQL支持的存储引擎
MyISAM InnoDB Memory CSV Archive
存储引擎的特点············
设置、修改存储引擎的方法
通过修改MySQL配置文件实现
-default-storage-engine = engine
通过创建数据表命令实现
CREATE TABLE tp1(
s1 VARCHAR(10))
ENGINE = MyISAM;
/////////////
ALTER TABLE tp1 ENGINE = InnoDB
并发控制 保证数据的一致性和完整性
由共享锁(读锁) 排它锁(写锁)完成
锁
锁颗粒
--表锁 是一种开销最小的锁策略
--行锁 是一种开销最大的锁策略
事务处理
事务用于处理保障数据库的完整性
特性 原子性 一致性 隔离性
外键
索引
是对数据表中一列或多列的值进行排序
····································
数据库的管理工具
PHPMyAdmin
Navicat
MySQL Workbench
PHPMyAdmin
去官网了解,要支持相对应的版本
Navicat
1、连接数据库··········
MySQL Workbench
三大数据库:
1、甲骨文 oracel
2、IBM DB2
3、Microsoft SQL
SQLServer 是发展最快的关系数据库
SQLServer 是 MicrosoftWindows 平台上最流行的关系数据库,占 38% 的市场份额。
SQLServer 是最流行的 Web 数据库,市场份额为 68%。在 SQL Server 上运行的应用程序超过了2000 个。
三大数据库中,SQLServer 拥有成本最低
1、基本步骤
2、面向对象的分析,设计技巧
3、用实例驱动,以框架结构为核心的主流开发方法
|
|