zoukankan      html  css  js  c++  java
  • MySQL的常用命令:添加外键,修改字段名称,增加字段 设置主键自增长等

    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 ( 30 ) 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(20);

    修改某个字段的类型

    alter table mall_user
    modify user_name int default null;

    创建表:创建testUser表

    create table testUser (
    username varchar(50),
    user_id varchar(5) ,
    role_id varchar(50),
    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对所有数据库的所有权限都收回

  • 相关阅读:
    iOS側拉栏抽屉效果Demo
    Juce源代码分析(九)应用程序基类ApplicationBase
    Android获取手机方向
    2014手机号码归属地数据库
    自译Solr in action中文版
    HUD 2031: 进制转换
    《学习opencv》笔记——矩阵和图像操作——cvConvertScale,cvConvertScaleAbs,cvCopy and cvCountNonZero
    Xcode5.1.1+ios 7.1.2 免证书真机调试
    《你不知道的JavaScript》读书笔记(二)词法作用域
    python生成word中文字体
  • 原文地址:https://www.cnblogs.com/notably/p/10513824.html
Copyright © 2011-2022 走看看