测试积点老人 发表于 2018-12-14 17:05:14

基于mysql数据库的基础知识三

函数
字符函数
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)数值截取
BETWEEN...AND...在什么之间
IN()   在列值内      
IS 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支持的存储引擎
MyISAMInnoDBMemory 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、用实例驱动,以框架结构为核心的主流开发方法


页: [1]
查看完整版本: 基于mysql数据库的基础知识三