mysql常用用法

alter table oldtable rename newtable; #改表名
alter table tablename modify name varchar(20);#改表结构
alter table tablename change name newname varchar(20);#改表结构
alter table tablename add age float after name;#新增字段的位置

delete from student;

insert into student (name,money,sex,phone) values ('hk',10000,'男',188);

update student set money=110 where name='hk';

SELECT * from students ORDER BY money desc;
#order by xxx desc,根据哪个字段继续排序,默认是升序,
降序是desc,升序asc

grant all on *.* to user@localhost identified by "password"; 增加一个管理员帐户

创建一个简单的存储过程

DELIMITER ;;:之前说过了,把默认的输入的结束符;替换成;;。

DEFINER:创建者;

DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_if`(IN type int)
BEGIN
    #Routine body goes here...
    DECLARE c varchar(500);
    IF type = 0 THEN
        set c = 'param is 0';
    ELSEIF type = 1 THEN
        set c = 'param is 1';
    ELSE
        set c = 'param is others, not 0 or 1';
    END IF;
    select c;
END
;;
DELIMITER ;

优点:

有输入输出参数,可以声明变量,有if/else, case,while等控制语句,通过编写存储过程,可以实现复杂的逻辑功能;

函数的普遍特性:模块化,封装,代码复用;

速度快,只有首次执行需经过编译和优化步骤,后续被调用可以直接执行,省去以上步骤;

缺点:

不同数据库,语法差别很大,移植困难,换了数据库,需要重新编写;

不好管理,把过多业务逻辑写在存储过程不好维护,不利于分层管理,容易混乱,一般存储过程适用于个别对性能要求较高的业务,其它的必要性不是很大;

创建视图

CREATE VIEW 视图名(列1,列2...) AS SELECT (列1,列2...) FROM ...;

使用视图和使用表完全一样,只需要把视图当成一张表就OK了。视图是一张虚拟表。

 修改视图CREATE OR REPLACE VIEW

查看数据库中有哪些视图 show tables 

查看视图详情的方法有两种,一种是和查看表详情一样使用desc 视图名,另外一种方法是show fields from 视图名;

可以看到表格数据变化后,在通过视图检索,得到的结果也同步发生了变化

因此,可以通过视图插入数据,但是只能基于一个基础表进行插入,不能跨表更新数据。

如果在创建视图的时候制定了“WITH CHECK OPTION”,那么更新数据时不能插入或更新不符合视图限制条件的记录。

猜你喜欢

转载自blog.csdn.net/qq_35240226/article/details/82951845