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对所有数据库的所有权限都收回

MySQL的常用命令:添加外键,修改字段名称,增加字段 设置主键自增长等的更多相关文章

  1. mysql常用命令添加外键主键约束存储过程索引

    数据库连接 mysql -u root -p123456 查看表 show databases 创建数据库设置编码 create table books character set utf8; 创建用 ...

  2. SQL Server 2008设置主键为自增

    环境:SQL Server 2008 问题:设置主键,将主键设为自增. 解决:点击table->选中表->design->选中需要设置主键的字段,单击右键"设置主键&quo ...

  3. MYSQL增删改查添加外键

    给商品表(从表)添加一个外键 ALTER TABLE product ADD CONSTRAINT FK_cno FOREIGN KEY(cno) REFERENCES category(cid  从 ...

  4. MYSQL的常用命令和增删改查语句和数据类型

    连接命令:<a href="http://lib.csdn.net/base/mysql" class='replace_word' title="MySQL知识库 ...

  5. MYSQL的常用命令和增删改查语句和数据类型【转】

    连接命令:<a href="http://lib.csdn.net/base/mysql" class='replace_word' title="MySQL知识库 ...

  6. SQL学习之MYSQL的常用命令和增删改查语句和数据类型

    连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 创建数据库:create database [库名] 显示所有数据库: show databases; 打开数据库:use [ ...

  7. MySQL 数据库常用命令小结

    MySQL 数据库常用命令 1.MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删 ...

  8. mysql 中启动服务的命令 、登录命令、退出命令 mysql 的常用命令

    1.cmd 以管理员执行 下面命令 启动服务 :net start mysql57 关闭 服务:net stop mysql57 查看mysql 的版本信息 : mysql -V 指定主机地址登录: ...

  9. CentOS系统操作mysql的常用命令

    MySQL名字的来历MySQL是一个小型关系型数据库管理系统,MySQL被广泛地应用在Internet上的中小型网站中.由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了 ...

随机推荐

  1. C#-构造函数中base

    base 是调用基类的有参数构造函数  因为在子类不能直接继承父类的构造函数   实例 using System; using System.Collections.Generic; using Sy ...

  2. Linux唤醒抢占----Linux进程的管理与调度(二十三)

    1. 唤醒抢占 当在try_to_wake_up/wake_up_process和wake_up_new_task中唤醒进程时, 内核使用全局check_preempt_curr看看是否进程可以抢占当 ...

  3. python集合与字典的用法

    python集合与字典的用法 集合: 1.增加  add 2.删除   •del 删除集合 •discard(常用)删除集合中的元素  #删除一个不存在的元素不会报错 •remove 删除一个不存在的 ...

  4. Servlet(五):一个Servlet处理多个请求

    一.为什么要使用一个Servlet来处理多个请求? 当浏览器发送了一次请求到服务器时,servlet容器会根据请求的url-pattern找到对应的Servlet类,执行对应的doPost或doGet ...

  5. JQuery Plugin 开发

    学习 JQuery 插件开发之后, 可以将自己平时常用的功能封装成插件, 便于在不同的项目之间使用. JQuery 官网上的 插件开发教程就很不错, 简单易懂. 参考网址: http://learn. ...

  6. K-means算法的matlab程序

    K-means算法的matlab程序 在“K-means算法的matlab程序(初步)”这篇文章中已经用matlab程序对iris数据库进行简单的实现,下面的程序最终的目的是求准确度. 作者:凯鲁嘎吉 ...

  7. Sudoku 小项目

    Sudoku 小项目 - 软工第二次作业 Part 1 · 项目相关 Github 地址: https://github.com/TheSkyFucker/Sudoku 项目的更多信息以及所有开发文档 ...

  8. Spring的IOC注解开发入门1

    基本知识点如下: 引入注解约束,配置组件扫描 类上的注解: @Conponent  @Controller @Service @Repository 普通属性的注解   @value 对象属性的注解  ...

  9. Django进阶使用

    Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行 ...

  10. sqlite线程模式的设置

    (1)编译阶段 这几种模式可以通过参数SQLITE_THREADSAFE在编译阶段指定,可以取值0,1,2,默认是1.这三种取值的含义如下: 0:单线程模式,即内部不做mutex保护,多线程运行sql ...