sql知识

mysql

  • 连接命令
    mysql -h<host> -u<user> -p<passwd>

  • mysql默认仅允许本地查询,需开权限

      #授权(命令行执行)
      GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "<root用户密码>";
      flush privileges;
  • sql

    • 示例
      SELECT * FROM [WHERE <条件语句>] [GROUP BY <列名> HAVING <分组后条件>] [ORDER BY <列名> [ASC/DESC]] [LIMIT <单页条数> OFFSET <起始序号>]
    • JOIN
      SELECT * FROM <table1> AS t1 INNER/LEFT/RIGHT JOIN <table2> AS t2 ON t1.<列名> = t2.<列名> [过滤/聚合/排序语句]</table2></table1>
    • 表连接比子表查询性能高
    • 去重查询
      SELECT DISTINCT column_name,column_name FROM table_name;
    • 插入
      INSERT INTO table_name VALUES (value1,value2,value3,...);
      INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);
    • 更新
      UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;
    • 删除
      DELETE FROM table_name WHERE some_column=some_value;
    • 字符串截取
      substring(str,index,len) 截取str,从index开始(从1开始),截取len长度
      SELECT SUBSTRING(str,index,len) FROM table_name;

      存储过程

      • 概念:
        • 存储过程(Stored Procedure)为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。
        • 存储过程可封装,并隐藏复杂的商业逻辑。
        • 存储过程可以回传值,并可以接受参数
      • 声明存储过程
        CREATE PROCEDURE demo_in_parameter(IN p_in int)
      • 存储过程参数说明
        • IN 输入参数:表示调用者向过程传入值(传入值可以是字面量或变量)
        • OUT 输出参数:表示过程向调用者传出值(可以返回多个值)(传出值只能是变量)
        • INOUT 输入输出参数:既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量)
      • 开始和结束
        BEGIN .... END
      • 变量定义
        DECLARE variable_name [,variable_name...] datatype [DEFAULT value];
      • 变量赋值
        SET @变量名 = 表达式值 [,variable_name = expression ...]
      • 条件语句
        • if-then-else-end if
          mysql > DELIMITER //  
          mysql > CREATE PROCEDURE proc2(IN parameter int)  
          -> begin 
          -> declare var int;  
          -> set var=parameter+1;  
          -> if var=0 then 
          -> insert into t values(17);  
          -> end if;  
          -> if parameter=0 then 
          -> update t set s1=s1+1;  
          -> else 
          -> update t set s1=s1+2;  
          -> end if;  
          -> end;  
          -> //  
          mysql > DELIMITER ;
        • case
          mysql > DELIMITER //  
          mysql > CREATE PROCEDURE proc3 (in parameter int)  
          -> begin 
          -> declare var int;  
          -> set var=parameter+1;  
          -> case var  
          -> when 0 then   
          -> insert into t values(17);  
          -> when 1 then   
          -> insert into t values(18);  
          -> else   
          -> insert into t values(19);  
          -> end case;  
          -> end;  
          -> //  
          mysql > DELIMITER ; 
      • 循环语句
        • while
          while 条件 do
          循环体
          end while;
        • repeat
          repeat
          循环体
          until 循环条件  
          end repeat;
        • loop
          loop
          循环体
          leave
          end loop;
      • 示例
        mysql> delimiter $$  #将语句的结束符号从分号;临时改为两个$$(可以是自定义)
        mysql> CREATE PROCEDURE delete_matches(IN p_playerno INTEGER)
          -> BEGIN
          ->   DELETE FROM MATCHES
          ->    WHERE playerno = p_playerno;
          -> END$$
        Query OK, 0 rows affected (0.01 sec)
        mysql> delimiter;  #将语句的结束符号恢复为分号
        注:使用DELIMITER $$命令将语句的结束符号从分号';'临时改为两个美元符,使得过程体中使用的分号被直接传递到服务器,而不会被客户端(如mysql)解释。
全部评论

相关推荐

05-11 11:48
河南大学 Java
程序员牛肉:我是26届的双非。目前有两段实习经历,大三上去的美团,现在来字节了,做的是国际电商的营销业务。希望我的经历对你有用。 1.好好做你的CSDN,最好是直接转微信公众号。因为这本质上是一个很好的展示自己技术热情的证据。我当时也是烂大街项目(网盘+鱼皮的一个项目)+零实习去面试美团,但是当时我的CSDN阅读量超百万,微信公众号阅读量40万。面试的时候面试官就告诉我说觉得我对技术挺有激情的。可以看看我主页的美团面试面经。 因此花点时间好好做这个知识分享,最好是单拉出来搞一个板块。各大公司都极其看中知识落地的能力。 可以看看我的简历对于博客的描述。这个帖子里面有:https://www.nowcoder.com/discuss/745348200596324352?sourceSSR=users 2.实习经历有一些东西删除了,目前看来你的产出其实很少。有些内容其实很扯淡,最好不要保留。有一些点你可能觉得很牛逼,但是面试官眼里是减分的。 你还能负责数据库表的设计?这个公司得垃圾成啥样子,才能让一个实习生介入数据库表的设计,不要写这种东西。 一个公司的财务审批系统应该是很稳定的吧?为什么你去了才有RBAC权限设计?那这个公司之前是怎么处理权限分离的?这些东西看着都有点扯淡了。 还有就是使用Redis实现轻量级的消息队列?那为什么这一块不使用专业的MQ呢?为什么要使用redis,这些一定要清楚, 就目前看来,其实你的这个实习技术还不错。不要太焦虑。就是有一些内容有点虚了。可以考虑从PR中再投一点产出
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务