1.修改表名
create procedure product()
2.修改表注释
alter table sys_application comment '系统信息表';
1.修改字段类型和注释
alter table sys_application modify column app_name varchar(20) COMMENT '应用的名称';
2.修改字段类型
alter table sys_application modify column app_name text;
3.单独修改字段注释
4.设置字段允许为空
alter table sys_application modify column description varchar(255) null COMMENT '应用描述';
5.增加一个字段,设好数据类型,且不为空,添加注释
alert table sys_application add `url` varchar(255) not null comment '应用访问地址';
6.增加主键
alter table t_app add aid int(5) not null ,add primary key (aid);
7.增加自增主键
alter table t_app add aid int(5) not null auto_increment ,add primary key (aid);
8.修改为自增主键
alter table t_app modify column aid int(5) auto_increment ;
9.修改字段名字(要重新指定该字段的类型)
alter table t_app change name app_name varchar(20) not null;
10.删除字段
alter table t_app drop aid;
11.在某个字段后增加字段
alter table `t_app` add column gateway_id int not null default 0 AFTER `aid`; #(在哪个字段后面添加)
12.调整字段顺序
alter table t_app change gateway_id gateway_id int not null after aid ; #(注意gateway_id出现了2次)
-- ----------------------------
-- Table structure for usr_mstr
-- ----------------------------
DROP TABLE IF EXISTS `usr_mstr`;
CREATE TABLE `usr_mstr` (
`usr_code` int(11) NOT NULL AUTO_INCREMENT,
`usr_name` varchar(255) DEFAULT NULL,
`usr_pwd` varchar(255) DEFAULT NULL,
`usr_tel` varchar(255) DEFAULT NULL,
PRIMARY KEY (`usr_code`)
) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of usr_mstr
-- ----------------------------
INSERT INTO `usr_mstr` VALUES ('1', 'zhangsan', '123456', '456');
INSERT INTO `usr_mstr` VALUES ('2', 'lisi', '123456', '456');
INSERT INTO `usr_mstr` VALUES ('4', 'wangwu', '123456', '123213');
INSERT INTO `usr_mstr` VALUES ('5', 'chenliu', '123456', '123213');
INSERT INTO `usr_mstr` VALUES ('6', 'zhaoqi', '123456', '123213');
INSERT INTO `usr_mstr` VALUES ('20', 'zhangsan', '123', '12311');
INSERT INTO `usr_mstr` VALUES ('21', 'asdf', 'sdfas', '0000');
INSERT INTO `usr_mstr` VALUES ('22', 'asdf', 'sdfas', '0000');
INSERT INTO `usr_mstr` VALUES ('23', 'asdf1', 'sdfas', '0000');
INSERT INTO `usr_mstr` VALUES ('24', 'asdf1', 'sdfas', '0000');
二,流程控制语句
case when 3>5 then 'aaa' else 'bbb' end
case when 3>5 then 'aaa'
when 3=5 then 'bbb'
when 3<5 then 'ccc' end
if 语句只能在存储过程中使用
IF search_condition THEN
statement_list
[ELSEIF search_condition THEN]
statement_list ...
[ELSE
statement_list]
END IF
select if(3>5,'aaa','bbb')
select ifnull(1,0) 类似SQLSERVER的 isnull()
select nullif(1,5) 相当于if (1=5) 返回5 else 返回 null
三。存储过程 mysql不能alter 只能delete 重新create
drop PROCEDURE pro_usr_mstr1
create procedure pro_usr_mstr1()
begin
select * from usr_mstr;
end;
call pro_usr_mstr1
drop PROCEDURE pro_upd_usr_mstr;
create PROCEDURE pro_upd_usr_mstr(
in _usr_name varchar(30),
in _usr_pwd varchar(30),
in _usr_tel varchar(30),
out flag int,
out msg varchar(255) )
BEGIN
set flag = -1 ,msg ='';
if exists (select * from usr_mstr where usr_name = _usr_name) then
select flag = 111,
msg = '用户名不能重复';
end if;
insert into usr_mstr (usr_name,usr_pwd,usr_tel)
values (_usr_name,_usr_pwd,_usr_tel);
end
set @flag =-1,@msg = '';
call pro_upd_usr_mstr('asdf1','sdfas','0000',@flag,@msg);
select @flag ,@msg
select nullif(1,1),nullif(0,1)
create PROCEDURE a()
begin
if 1>2 THEN
select 1;
else
select 2;
end if;
end ;
call a