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”,那么更新数据时不能插入或更新不符合视图限制条件的记录。