51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1241|回复: 0
打印 上一主题 下一主题

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

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:16
  • 签到天数: 401 天

    连续签到: 2 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2018-12-14 17:05:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    函数
    字符函数
    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、用实例驱动,以框架结构为核心的主流开发方法


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-24 02:44 , Processed in 0.063139 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表