博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql命令(三)-操作数据表中的记录
阅读量:6422 次
发布时间:2019-06-23

本文共 2212 字,大约阅读时间需要 7 分钟。

hot3.png

约束类型:
1,外键约束
外键约束的要求:
mysql配置文件:default-storage-engine=INNODB (将数据表的默认引擎改为INNODB)
2,查看数据表的创建命令,索引
show create table provinces;//查看表provinces的创建命令

show index from provinces;//查看表provinces中的约束

 show INDEX from users2\G;//换一种直观的格式查看users2的唯一约束

3,添加外键
创建主表
CREATE TABLE 
provinces
(
id smallint UNSIGNED  PRIMARY key  auto_increment,
pname varchar(20) not NULL
);
创建子表
CREATE TABLE users (
    id SMALLINT UNSIGNED PRIMARY KEY auto_increment,
    username VARCHAR (10) NOT NULL,
    pid SMALLINT UNSIGNED,
   
 FOREIGN KEY (pid) REFERENCES provinces (id)  //参照provinces中的id创建pid外键
); 
4,外键约束的参照操作
5,添加数据表字段
alter table user1 add age tinyint UNSIGNED not null DEFAULT 10;//为表user1添加字段age,该字段自动出现在最后面
alter table user1 add password VARCHAR(32)  not null after username;//为表user1添加字段password ,该字段出现在username后面
 
alter table user1 add truename VARCHAR(32)  not null first; //为表user1添加字段truename,该字段出现在表的最前面

ALTER TABLE user1 ADD (     //添加多个字段,备注:不能给字段指定位置,必须添加小括号

t1namea VARCHAR (32) NOT NULL,
t1amea VARCHAR (32) NOT NULL
);
6,删除数据表字段
ALTER TABLE user1 DROP t1amea;   //删除表user1 中的t1amea列

ALTER TABLE user1  drop id,drop age;//同时删除user1中的id列,age列

ALTER TABLE user1  drop tame , add age VARCHAR (32) NOT NULL;//删除user1中的id列,添加age列

7,为数据表添加删除约束

alter table users2 add  PRIMARY key (id); //将表users2中的字段id修改为主键

ALTER table users2 add UNIQUE (username);//为表users2中的字段username添加唯一约束

alter table users2 add FOREIGN key(pid) REFERENCES provinces(id); 为users2中的字段pid添加外键,外键指向provinces表中的id字段

alter table users2 alter age set DEFAULT 15; //将字段age的默认值修改为15

alter table users2 alter age drop DEFAULT; //删除字段age的默认值

alter table users2  drop PRIMARY key;;//删除表users2的主键约束(因为每张表只有一个主键,所以不用指定主键对应的字段名称)

alter table users2 drop INDEX username;//删除表users2中username的唯一约束

alter table 表名 drop constraint 外键约束名
8,修改数据表

alter table users2 MODIFY id SMALLINT UNSIGNED not null FIRST;//将id字段放在表的第一个位置

alter table users2 MODIFY id TINYINT UNSIGNED not null ;//将id的类型修改为TINYINT (大类型改成小类型,有可能会造成数据的丢失)

alter table users2 change pid p_id TINYINT UNSIGNED not null ;//将字段pid 修改成p_id,并且类型是TINYINT 

alter table users2 RENAME users3 ;//将表users2 的名称修改成users3 

RENAME table users3 to users2;//将表users3 的名称修改成users2(不要随意更改表的名字和列的名字,避免视图以及引用不可用) 

转载于:https://my.oschina.net/appleliu/blog/549934

你可能感兴趣的文章
在DLL中获取主进程窗口句柄
查看>>
基于消息队列的双向通信
查看>>
一个不错的loading效果
查看>>
Debian允许root用户登录
查看>>
linux的文件系统
查看>>
上云利器,K8S应用编排设计器之快到极致
查看>>
袋鼠云服务案例系列 | 从DB2到MySQL,某传统金融平台的互联网转型之路
查看>>
RealServer配置脚本
查看>>
九月份技术指标 华为交换机的简单配置
查看>>
python 写json格式字符串到文件
查看>>
分布式文件系统MogileFS
查看>>
电力线通信载波模块
查看>>
Java23种设计模式案例:策略模式(strategy)
查看>>
XML解析之DOM4J
查看>>
图解微服务架构演进
查看>>
SQL PATINDEX 详解
查看>>
一些常用的网络命令
查看>>
CSP -- 运营商内容劫持(广告)的终结者
查看>>
DIV+CSS命名规范有助于SEO
查看>>
js生成二维码
查看>>