mariadb的使用

  1. 函数是Cancat(),用来拼接两列,其他的很多DBMS使用+或者||进行拼接,eg:SELECT  Cancat(stu_id, ' ( ', math,  ')')        FROM  student 

          ORDER BY math;

       RTrim() 函数去掉值右边所有的空格,LTrim() 去掉左边所有的空格, Trim() 同时裁剪左端和右端。

      可以使用AS 给前面的语句一个列名,SELECT  Cancat(stu_id, ' ( ', math,  ')')   AS   stu_title  

           FROM  student

           ORDER BY math;

    2.可以这样使用SELECT 3*2;,返回6;SELECT Trim('abc');,返回abc;  SELECT Now();,返回当前的日期和时间;

     3.CREATE VIEW  viewname,创建视图的方法,DROP VIEW  viewname,移除视图。视图和表作用一样,也可以使用SELECT语句。一般来说,视图可以更新(INSERT、UPDATE、DELETE),更新视图会更新底层的表。并不是所有的视图都可以更新,如果mariadb不能正确查出底层需要更新的数据,就不能更新视图,有如下情况不能更新视图

分组(使用GROUP BY 和HAVING)

连接

子查询

联合

聚合函数(Min()、Count()、Sum())

DISTINCT

导出列

4.执行存储过程 CALL productpricing(@pricelow,

                                                            @pricehigh,

                                                            @priceaverage);

   创建存储过程  CREATE PROCEDURE  productpricing()

                            BEGIN

                                         SELECT  Avg(prod_price)  AS priceaverage                                                     

                                         FROM products;

                            END;

如果存储过程包含参数,这些参数就需要在左括号和右括号之间列出来。

如果mysql CLI不支持“;”可以使用除了”\“ 的所有字符作为命令分隔符,如;

DELIMITER //                

CREATE PROCEDURE  productpricing()

                            BEGIN

                                         SELECT  Avg(prod_price)  AS priceaverage                                                     

                                         FROM products;

                            END //

 DELIMITER;

DELIMITER //   告诉命令行程序使用“//” 作为新的分隔符结束语句,并且你会注意到END关闭存储过程时,使用“END //”  代替原本的“END;” 这样存储过程的”;“ 依旧是完好的,能够正确传递给数据库引擎,然后,回到它们最初的状态,使用    ”DELIMITER;“  语句关闭。

使用这个存储过程 CALL productpricing( );

删除存储过程  DROP PROCEDURE productpricing;         

使用参数的存储过程第一步:

CREATE PROCEDURE productpricing(

OUT p1 DECIMAL(8,2);

OUT p2 DECEMAL(8,2);

OUT p3 DECEMAL(8,2);

BEGIN

      SELECT Min(prod_price)

        INTO p1

         FROM products;

SELECT Max(prod_price)

        INTO p2

         FROM products;

SELECT Avg(prod_price)

        INTO p3

         FROM products;

END;

INTO ,将值存储到恰当的变量中。OUT 指定参数返回给调用者,IN 传递到存储过程中。

第二步:为了调用这个更新过的存储过程,需要指定3个变量名,如下:

CALL productpricing(@pricelow

                                     @pricehigh

                                     @priceaverage);    

所有的mariadb变量名必须以”@“开始。

第三步:获取三个值

SELECT @pricelow , @pricehigh, @priceaverage;

同时使用IN和OUT,第一步:

CREATE PROCEDURE odertotal(

       IN onumber  INT,

      OUT  ototal     DECIMAL(8,2)                                             

BEGIN

SELECT Sum(item_price * quantity)

FROM oderitems

WHERE oder_num =  onumber

INTO ototal;

END;

第二步:给这个存储过程传递参数:

CALL odertotal(20005,@total) ;

第三步:调用存储过程:

SELECT @total;

5.创建并设置远程访问用户权限,

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

用 FLUSH PRIVILEGES; 使之立即生效。

查看用户权限:SHOW GRANTS FOR usrname;


转载于:https://my.oschina.net/wangzongtao/blog/650299

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值