MySQL基础(一)数据类型及数据表操作

1、数据类型

1.1:整型包括:tinyint、smallint、mediumint、int、bigint

整型.png

1.2:浮点型:float、double 单精度和双精度

浮点型.png

1.3:这个不太常用,一般使用数字类型替代时间戳

日期时间型.png

1.4字符型:char varchar 这两个的区别

比如说写了char(5)---> 存的时候寸了“asd”,那么在数据库里边是5位,叫定长。
但是varchar(5)--->寸了“asd”,那么在数据库里边存储的就是“asd”,3位.

这个Enum是一个枚举类型,就是说存进来的必须是这里边的选项,单个的。
这个Set类型呢,也是存进来的必须的里边的选项,但是可以是单项也可以是多项。

字符型.png

2、约束

约束的作用:保证数据的完整性和一致性

2.1、约束类型

  • 自增(AUTO_INCREMENT)
  • 非空(NOT NULL)
  • 无符号(UNSIGNED)
  • 主键(PRIMARY KEY) 一张表只能有一个主键
  • 唯一约束(UNIQUE) 一张表可以有多个唯一约束
  • 默认约束(DEFAULT) : 如果没有赋值,就设置默认值
  • 外键约束(FOREIGN KEY)

2.2、外键约束

保持数据的完整性和一致性,实现一对一或者一对多的关系

2.2.1、创建外键约束的要求
  • 1、父表(参照的表,上述列子中的球队表)和字表(具有外键列的表,上述列子中的教练表)必须使用相同的存储引擎,禁止使用临时表;
  • 2、数据表的存储引擎必须是InnoDB;
  • 3、外键列(教练表中的teamId)和参照列(球队表中的teamId)必须具有相类似的数据类型。数字长度和有无符号位必须相同;字符长度可以不同;
  • 4、外键列(教练表中的teamId)和参照列(球队表中的teamId)必须创建索引,如果外键列不存在索引,mysql会自动创建。参照列不会自动创建。
2.2.2、创建外键约束的参照操作
  • 1、CASCADE :从父表删除或者更新 自动删除或更新子表中的匹配行;
  • 2、SET NULL:从父表删除或者更新,设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL;
  • 3、RESTRICT:拒绝对父表的删除或者更新操作;
  • 4、NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同。

2.3、表级/列级约束

  • 对于一个数据列建立的约束,叫做列级约束(经常用)
  • 对于多个数据列建立的约束,叫做表级约束(很少用)

列级约束既可以在列定义时声明,也可以在列并以之后声明。表级约束只能在列定义之后声明。

3、操作数据表

3.1:创建数据库表

#创建球队表
CREATE TABLE team(
#球队编号 整型 无符号 自增  主键
teamId INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
#球队名称  字符串  不能为空  唯一
teamName varchar(20) NOT NULL UNIQUE,
#球队年龄  整型 无符号   可以为空
teamAge TINYINT  UNSIGNED NULL ,
#总场次
toalMatch INT NOT NULL,
#胜场 整型  不能为空
victoryNumber INT NOT NULL ,
#冠军数量
championNumber INT NOt NULL,
#球馆名称
ballHall varchar(40) 
);

#创建教练表
CREATE TABLE coach(
#教练ID  整型  无符号  自增  主键
coachId INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
#教练名称   字符串  不能为空  唯一
coachName VARCHAR(20) NOT NULL UNIQUE,
#总场次
toalMatch INT NOT NULL DEFAULT 0,
#胜场 整型  不能为空
victoryNumber INT NOT NULL DEFAULT 0,
#冠军数量
championNumber INT NOT NULL DEFAULT 0,
#球队ID
teamId INT UNSIGNED  NOT NULL,

FOREIGN KEY(teamId) REFERENCES team (teamId)  ON DELETE CASCADE
);

3.2对表结构的修改<一>操作列

#修改表名
ALTER TABLE team RENAME TO teamUpdate;
ALTER TABLE teamUpdate RENAME AS team;
RENAME TABLE team TO teamUpdate,coach TO coachUpdate;
RENAME TABLE teamUpdate TO team,coachUpdate TO coach;


#查看表结构
SHOW COLUMNS FROM team;
#添加列在最开始
ALTER TABLE team ADD testAdd VARCHAR(20) FIRST
#添加列在最后边
ALTER TABLE team ADD testAddLast VARCHAR(20) 
#添加列在某一列后边
ALTER TABLE team ADD testAddCenter VARCHAR(20)  AFTER teamName
#添加多列(这个不能设置插入的位置,只能插入到最后边)
ALTER TABLE team ADD testAddList1 VARCHAR(20),ADD testAddList2 VARCHAR(20),ADD testAddList3 VARCHAR(20) 

#查看表结构
SHOW COLUMNS FROM team;
#删除列
ALTER TABLE team DROP testAdd 
#批量删除列
ALTER TABLE team DROP testAddList1, DROP testAddList2, DROP testAddList3

#结合使用
ALTER TABLE team DROP testAddLast, ADD testAddNewLast VARCHAR(20) 

#修改数据表
#把某个字段移动到最开始
ALTER TABLE team MODIFY testAddNewLast VARCHAR(20) FIRST
#查看表结构
SHOW COLUMNS FROM team;

#修改字段属性和位置(这里注意,由大类型修改成小类型的时候,可能会造成是数据的丢失)
ALTER TABLE team MODIFY testAddNewLast VARCHAR(10) DEFAULT "小米" FIRST
#查看表结构
SHOW COLUMNS FROM team;
#修改字段属性和位置  移动到哪个字段后边
ALTER TABLE team MODIFY testAddNewLast VARCHAR(20) DEFAULT "小米修改属性" AFTER teamName
#修改列名称
ALTER TABLE team CHANGE testAddNewLast testUpdateLast VARCHAR(20) DEFAULT "小米修改属性和字段名称" AFTER teamAge
#把team表恢复原状 
ALTER TABLE team DROP testAddCenter, DROP testUpdateLast

3.3对表结构的修改<二>操作约束

#创建测试表
CREATE TABLE test(
#ID  整型 
testId INT ,
#名称   字符串  
testName VARCHAR(20) ,
);

#添加约束

#添加主键  CONSTRAINT关键字是给后边的属性添加名字的   可以省略该关键字 写成
#ALTER TABLE test ADD PRIMARY KEY(testId)
ALTER TABLE test ADD CONSTRAINT PK_test_id PRIMARY KEY(testId)
#删除主键约束
ALTER TABLE test DROP  PRIMARY KEY


#添加唯一约束
ALTER TABLE test ADD  UNIQUE(testName)
#删除唯一约束
#先查询出来 testName字段的唯一约束的名字   查询出来,可以看到key_name是testName
SHOW INDEXES FROM test
#然后用testName 去删除这个唯一约束
ALTER TABLE test DROP  KEY testName
#然后用testName 去删除这个唯一约束
ALTER TABLE test DROP  INDEX testName 

#添加球队ID
ALTER TABLE test ADD teamId INT UNSIGNED  NOT NULL
#添加外键约束
ALTER TABLE test ADD  FOREIGN KEY(teamId) REFERENCES team (teamId)  ON DELETE CASCADE
SHOW COLUMNS FROM test 
#删除外键约束要加上外键约束的名称
#先查询出来外键约束的名称
SHOW CREATE TABLE test
#查询出来的结果是  test_ibfk_1
CREATE TABLE `test` (
  `testId` INT(11) NOT NULL DEFAULT '0',
  `testName` VARCHAR(20),
  `teamId` INT(10) UNSIGNED NOT NULL,
  KEY `teamId` (`teamId`),
  CONSTRAINT `test_ibfk_1` FOREIGN KEY (`teamId`) REFERENCES `team` (`teamId`) ON DELETE CASCADE
) ENGINE=INNODB DEFAULT CHARSET=utf8

#然后用 test_ibfk_1去删除外键
ALTER TABLE test DROP FOREIGN KEY  test_ibfk_1


#添加默认约束
ALTER TABLE test ALTER testName SET DEFAULT "小米"
#删除默认约束
ALTER TABLE test ALTER testName DROP DEFAULT  

SHOW COLUMNS FROM test; 

点击下载本节sql文件
下一篇 MySQL基础—操作表记录

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

推荐阅读更多精彩内容