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. mssql sql语句过滤百分号的方法分享

    转自:http://www.maomao365.com/?p=6743 摘要: 下文讲述sql脚本中过滤百分号的方法: 实验环境:sql server 2008 R2  百分号:在sql脚本编写中“百 ...

  2. AWS云使用100条宝贵经验分享

    在今天的文章中,我整理出了大量当初曾经错过.而至今仍将我追悔莫及的Amazon Web Services(简称AWS)使用心得.在几年来的实践当中,我通过在AWS之上新手构建及部署各类应用程序而积累到 ...

  3. Thread和Runnable的区别和联系、多次start一个线程会怎么样

    一.Java有两种方式实现多线程,第一个是继承Thread类,第二个是实现Runnable接口.他们之间的联系:   1.Thread类实现了Runable接口. 2.都需要重写里面Run方法. 二. ...

  4. 高通 NXP NFC(PN547PN548) 移植流程 android6.0

    一.驱动部分 首先向NXP 的 fae要android 6.0 bring up的代码,如:NFC_NCIHALx_AR0F.4.3.0_M_NoSE 结构目录如下: 1. 添加驱动文件 高通平台需使 ...

  5. iOS application/json上传文件等

    在和sever后台交互的过程中.有时候.他们需要我们iOS开发者以“application/json”形式上传. NSString *accessUrl = [NSString stringWithF ...

  6. CentOS上安装 Docker-CE以及Docker 加速器配置

    在CentOS 7.0上安装 Docker-CE 官方源安装教程 https://docs.docker.com/install/linux/docker-ce/centos/#install-usi ...

  7. LeetCode算法题-Nth Digit(Java实现)

    这是悦乐书的第215次更新,第228篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第83题(顺位题号是400).找到无限整数序列的第n个数字1,2,3,4,5,6,7,8 ...

  8. MySQL高级知识(七)——索引面试题分析

    前言:该篇随笔通过一些案例,对索引相关的面试题进行分析. 0.准备 #1.创建test表(测试表). drop table if exists test; create table test( id ...

  9. 缓存数据库Memcache

    为什么用缓存数据库 MySQL:将数据存储在磁盘上,数据写入读取相对较慢 Memcached:将数据存在内存中的数据库,数据读写都快,但是数据容易丢失 数据存储,数据仓库选择MySQL这种磁盘的数据库 ...

  10. windows下python2和python3共享

    其实最好的解决方案使用 virtualenv http://pythonguidecn.readthedocs.io/zh/latest/dev/virtualenvs.html 不太好的方法,先安装 ...