13、创建与操作表

创建与操作表

1、create table格式

create table 表名(
    字段名 数据类型(长度) 约束,
    ......
    字段名 数据类型(长度) 约束,
    约束
);
# 使用下面语句可以显示表格建立时的结构配置情况
MariaDB> show create table emp;
CREATE TABLE `emp` (
  `empno` int(4) NOT NULL,
  `ename` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
  `job` varchar(9) COLLATE utf8_unicode_ci DEFAULT NULL,
  `mgr` int(4) DEFAULT NULL,
  `hiredate` date DEFAULT NULL,
  `sal` double(7,2) DEFAULT NULL,
  `comm` double(7,2) DEFAULT NULL,
  `deptno` int(2) DEFAULT NULL,
  PRIMARY KEY (`empno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

# 完全复制一张表格
create table emp_bak as select * from emp; # 复制表格

2、常用数据类型

类型 描述
Char(长度) 定长字符串,存储空间大小固定,适合作为主键或外键
Varchar(长度) 变长字符串,存储空间等于实际数据空间
double(有效数字位数,小数位) 数值型
float(有效数字位数,小数位) 数值型
int(长度) 整型
bigint(长度) 长整型
date 日期型
blob Binary Large Object(二进制大对象)
clog Character Large Object(字符大对象)
其他 ......

3、增删改表结构

alter table 表名 rename (to/as) 新表名; # 重命名表格
alter table 表名 add 字段名 数据类型(长度) 约束  # 增加字段
alter table 表名 modify 字段名 数据类型(长度) 约束 # 修改字段属性
alter table 表名 change 旧字段名 新字段名 数据类型(长度) 约束 # 重命名字段
alter table 表名 drop 字段名; # 删除字段
alter table emp rename as emp2; # 重命名表名
rename table emp to emp2; #简单的重命名方法
alter table emp add tel int(11) unique; # 增加电话字段
alter table emp modify tel int(12); # 设为整型12长度,modify不能修改字段名
alter table emp change tel telephone int(12) unique; # change必须修改字段名,同时也能修改字段数据类型和约束
alter table emp drop telephone; # 删除字段

4、约束

  1. 非空约束,not null
  2. 唯一约束,unique
  3. 主键约束,primary key
  4. 外键约束,foreign key (现下绝大部分数据库不再使用fk,改而在应用层面上处理表的联系)
create table emp(
    deptno int(10) primary key,/*列级约束*/
    ename varchar(20) not null,
    job varchar(10),
    constraint unique_class unique(ename),/*表级约束,可给约束取名*/
    constraint fk_deptno foreign key(deptno) references dept(deptno)  # 外键约束
);

#主键约束也可以针对多字段进行约束,表示所有字段不全部一样即可
primary key (字段1,字段2)

use information_schema;
select * from table_constraints where table_name='emp'; # 查询表的约束

5、增删改约束

alter table 表名 drop foreign key 外键名; # 删除外键约束
alter table 表名 drop primary key; # 删除主键约束
alter table 表名 drop constraint 约束名称; # 删除约束

alter table 表名 add constraint 约束名称 foreign key (外键字段) references 主表(主键字段); # 添加外键约束
alter table 表名 add constraint 约束名称  primary key (主键字段); # 添加主键约束
alter table 表名 add constraint  约束名称 unique(字段); # 添加唯一性约束,约束名称可省略,省略后约束名与字段名一样
alter table 表名 modify 字段名 数据类型(长度) 约束; # 修改约束即修改字段

6、自动增量

当表中的某个字段时唯一标识,并没有其他具体含义,只是为了区分而已。
可以使用auto_increment ,使得每增加一行时,该字段自动赋予自己一个可用的值
auto_increment常用于主键当中,并且一个表格只能有一个auto_increment

# 创建表格时添加
create table emp2(
  empno int(4) primary key auto_increment
);
# 单独添加
alter table emp2 modify empno int(4) auto_increment;

7、默认值

在创建表格时,可以使用default关键字指定字段的默认值
大部分时候会使用默认值而非NULL,尤其是用于计算或数据分组的列

# 创建表格时添加
create table emp3(
  empno int(4) primary key,
  sal float(7,2) default 0
);
# 单独添加
alter table emp3 modify sal float(7,2) default 0;

如果一个字段定义含有auto_increment与非NULL默认值,在使用alter table ... modify(change)的时候切记原样写上这些定义,不写就会被覆盖而消失

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352

推荐阅读更多精彩内容