Mysql命令添加外键
前提是有这么几个表 以mall_product 和 mall_category为例
ALTER TABLE mall_product
ADD CONSTRAINT fore_pro_cate
FOREIGN KEY ( pro_category_id )
REFERENCES mall_category ( category_id );
外键记得用括号包起来
值得一提的是 constraint fore_pro_cate 是可以省略的 有MySQL来给出外键约束名称,很方便。为了规范可以在表名 和字段名加上单引号 。还可为约束指定级联操作,在后面继续添加:ON UPDATE CASCADE(级联更新) ON DELETE CASCADE(级联删除)默认是RESTRICT就是不级联删除 不级联更新要修改先解除外键关系。
修改字段名:假设原来字段是uname 想改成username
ALTER TABLE mall_user
CHANGE uname username VARCHAR ( ) NOT NULL;
添加字段:在username字段后面添加字段emaila字段
ALTER TABLE mall_user
ADD COLUMN emaila VARCHAR ( 50 ) DEFAULT NULL
AFTER username ;
删除字段:删除emaila字段
ALTER TABLE mall_user
DROP emaila;
给某个字段改名:
alter table mall_user
change username user_name varchar();
修改某个字段的类型
alter table mall_user
modify user_name int default null;
创建表:创建testUser表
create table testUser (
username varchar(),
user_id varchar() ,
role_id varchar(),
primary key( 'user_id' ),
CONSTRAINT 'aosdoahdoahsdoa ' FOREIGN KEY (`role_id`) REFERENCES testRole (`role_id`) )engine=innodb charset=uf8;
创建用户::localhost 代表小白只能本地登陆 除了localhost还能配置* 代表只要连接到mysql这个用户就能通过口令登陆到该数据库
create user 'xiaobai' @'localhost' indentified by 'xiaobai';
还有个比较有用的命令:查看授予某个用户的权限
show grants for mall;
一下是MySQL的输出 同样授权给某个用户所需要使用的命令就是下面打印的命令 all privileges代表对 mall数据库的所有操作 mall。*代表mall数据库下所有的table 做相应的修改就能改变权限
设置MySQL的主键自增长
alter table mall_user change column user_id user_id int primary key auto_increment;
如果提示
Multiple primary key defined
则需要删除之间的primary key亦可先创建
又或者是你当初设置了default value,则需要先删除设置的defaultvalue
alter table mall_user alter username drop default;
在修改过权限后最好:
flush privileges
一下 否则MySQL可能报一些错误
收回某个用户的一些权限
revoke all on mall.* from xiaobai;
其他的操作也可以参照以上的 如mall.* 换成*.*代表着把xiaobai对所有数据库的所有权限都收回