MySql

  • MySql中的数据类型
  • 注释
  • 数据库操作
  • 表的操作
    • 给表关联约束
      • 主键约束 primary key
        • 创建
        • 删除主键约束
      • 联合主键
        • 创建
        • 删除联合主键
      • 唯一约束 unique
        • 创建
        • 删除唯一约束
      • 自动增长列 auto_increment
        • 创建
        • 删除自动增长
      • 默认约束 default
        • 创建
        • 删除默认约束
      • 非空约束 not null
        • 创建
        • 删除非空约束
      • 外键约束 foreign key
        • 创建
        • 删除外键约束

MySql中的数据类型

1.数值

类型 大小 范围 范围 用途
TINYINT 1字节 -27~ 27 -1 0~28 -1 小整数
SMALLINT 2字节 -215~ 215 -1 0~216 -1 大整数
MEDIUMINT 3字节 -223~ 223 -1 0~224 -1 大整数
INT 4字节 -231 ~ 231 -1 0~ 232 -1 大整数
BIGINT 8字节 -263~ 263 -1 0~264 -1 极大整数
FLOAT 4字节 单精度浮点数
DOUBLE 8字节 双精度浮点数
DECIMAL 小数值

DECIMAL(总位数,小数位) FLOAT(总位数,小数位) DOUBLE(总位数,小数位)

​ 例如decimal(7,2),整数占五位,小数占两位

2.日期/时间

类型 大小 范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 ‘-838:59:59’/‘838:59:59’ HH–MM-SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份
DataTime 8 1000-01-01 00:00:00
9999-12-31 23:59:59
YYYY-MM-DD
HH:MM:SS
混合日期和时间值
TIMESTAMP 8 1970-01-01 00:00:00/2037某时 YYYYMMDDHHMMSS 混合日期和时间值,时间戳

3.字符串(字符)类型

类型 大小(字节) 用途
CHAR 0-255 定长字符串
VARCHAR 0-65535 变长字符串
TINYBLOB 0-255 不超过255字符二进制字符串
TINYTEXT 0-255 短文本字符串
BLOB 0-65535 二进制长文本数据
TEXT 0-65535 长文本数据
MEDIUMBLOB 0-16777215 二进制形式中等长度文本数据
MEDIUMTEXT 0-16777215 中等长度文本数据
LONGBLOB 0-4294967295 二进制形式极大文本数据
LONBTEXT 0-4294967295 极大文本数据

区别:

char(字符串长度) 定长        varchar(字符串长度) 变长

​ 设定多少长度,就会全部占满    以实际长度占用空间


注释

-- 单行注释内容/*多行注释内容*/

数据库操作

1.查看现有的数据库show databases;2.创建数据库create databases 数据库名字;3.删除数据库drop database 数据库名字;

表的操作

在工具中,“打开表”–>看表内容
     “设计表”–>看表结构

0.选择数据库操作use 数据库名;1.创建表create table 表名(属性名1 数据类型 [约束条件],
//      姓名 varchar(10) not null,属性名2 数据类型 [约束条件],属性名3 数据类型 [约束条件]);2.删除表drop table 表名;3.修改表3.1添加列alter table 表名 add 属性名 数据类型;
//      alter table 学生表 add 专业 carchar(10);3.2删除列alter table 表名 drop 属性名;
//      alter table 学生表 drop 成绩;3.3修改列的数据类型alter table 表名 modify 属性名 新数据类型;
//      alter table 学生表 modify 成绩 float(4,1);3.4修改列名alter table 表名 change 旧字段名 新字段名 数据类型;
//      alter table 学生表 change 姓名 学生名 数据类型;4.显示表结构desc 表名;

给表关联约束

实体完整性约束

在一个表中,找到一个列,该列做到唯一区分效果

主键约束 primary key

创建

 创建表的同时关联约束

//方式一
create table student(id int primary key,name varchar(5),age int
);//方式二
create table student(id int,name varchar(5),age int,constraint 主键约束的名字(PK_列名)  primary key(id)
);//方式三
create table student(id int,name varchar(5),age int,primary key(id)
);

 修改表的同时关联约束

//方式一
alter table student add constraint 主键约束的名字 primary key(列名);//方式二
alter table 表名 add primary key(列名);//方式三
alter table 表名 modify 列名 数据类型 primary key;

删除主键约束

alter table 表名 drop primary key;

联合主键

联合主键 : 将两个列看成一个整体列

创建

 创建表的同时添加联合主键

//方式一
create table student(id int,name varchar(5),age int,constraint 主键约束的名字(PK_列名)  primary key(id,name)
);//方式二
create table student(学号 int,姓名 varchar(5),年龄 int,课程号 varchar(10),primary key(学号,课程号)
);

 修改表的同时添加联合主键

//方式一
alter table 表名 add constraint 主键约束的名字 primary key(列名1,列名2);//方式二
alter table 表名 add primary key(列名1,列名2);

删除联合主键

同删除主键

alter table 表名 drop primary key;

唯一约束 unique

保证是唯一的,不能重复,但是可以为空
一个表中可以有多个唯一约束
设置一个唯一约束会默认给一个索引
若没有给唯一约束起名,默认和列名一致

创建

 创建表的同时关联约束

//方式一
create table student(学号 int unique,姓名 varchar(5),年龄 int,课程号 varchar(10) unique
);//方式二
create table student(学号 int,姓名 varchar(5),年龄 int,课程号 varchar(10),constraint UN_学号 unique(学号),constraint UN_课程号 unique(课程号)
);

 修改表的同时关联约束

alter table student add unique(学号);

删除唯一约束

alter table student drop index 学号(唯一约束的名字);

自动增长列 auto_increment

创建

 创建表的同时关联约束

create table student(学号 int auto_increment,姓名 varchar(5),年龄 int,课程号 varchar(10)
);

 修改表的同时关联约束

alter table student modify 列名 数据类型 auto_increment;

删除自动增长

alter table student modify 列名 数据类型;

域完整性约束

默认约束 default

创建

 创建表的同时关联约束

create table student(学号 int,姓名 varchar(5),-- 字符或者日期时间类型  需要加单引号性别 varchar(3) default '男',入学日期 datetime default '2020-01-01'
);

 修改表的同时关联约束

alter table student modify 性别 varchar(3) default '男';

删除默认约束

alter table student modify   性别 varchar(3);

非空约束 not null

创建

 创建表的同时关联约束

create table student(学号 int,姓名 varchar(5) not null,年龄 int,课程号 varchar(10)
);

 修改表的同时关联约束

alter table student modify 姓名 varchar(5) not null;

删除非空约束

alter table sudent modify 姓名 varchar(5);

外键约束 foreign key

针对两个表,加强表与表之间联系
一张表中可以有多个外键约束
主表想要删除被从表引用的数据,会删除失败

外键约束建立在从表中,拿上从表中的某个列参照引用主表的某个列
要求主表必须要有主键约束或者唯一约束
参照引用的列可以不一致,但数据类型和内容必须保持一致

创建

 创建表的同时关联约束

create table 主表(列名1 数据类型 primary key,列名2 数据类型
);create table 从表(列名1 数据类型,列名2 数据类型,列名3 数据类型,constraint 外键约束的名字(FK_列名) foreign key(从表列名1) references (主表列名1)
);

 修改表的同时关联约束

alter table 从表 add constraint 外键约束名 foreign key(从表列名) references (主表列名);

删除外键约束

alter table 从表 drop foreign key 外键约束名;

本文完:
下篇地址: 一口气看完MySql–下篇.

一口气看完MySQL--上篇相关推荐

  1. B站“一口气看完系列”也叫带货系列?

    "xx分钟一口气看完!" B站影视区已经流行两年的"一口气看完系列"在今年有了新变化,在视频下方大多数都出现了"UP主推荐广告"的跳转入口. ...

  2. 一口气看完 45 个寄存器,CPU 核心技术大揭秘

    作者 | 轩辕之风O 来源 | 编程技术宇宙(ID:xuanyuancoding) 头图 |  CSDN 下载自东方IC 序言 前段时间,我连续写了十来篇CPU底层系列技术故事文章,有不少读者私信我让 ...

  3. 一口气看完——PythonGUI界面编程入门到实战项目

    1.概念 GUI是图形用户界面的缩写.用户不仅可以输入文返回文字,用户还可以看到窗口.按钮.文字框等图形,还可以用鼠标点击,也可以用键盘输入.到目前为止,我们的程序都是命令行或文字模式程序.GUI是一 ...

  4. Redis6通信协议升级至RESP3,一口气看完13种新数据类型

    我们已经知道RESP V2版本协议的规范,RESP的全程是Redis Serialization Protocol,基于这个实现简单且解析性能优秀的通信协议,Redis的服务端与客户端可以通过底层命令 ...

  5. 一口气看完大唐安史之乱

    开元盛世,安史之乱. 历史上,可能再没有那个帝王,像唐玄宗一样励精图治的将一个王朝带入封建王朝的顶峰,为中华民族缔造了一个昂扬浩大.如真似幻的盛世.又将帝国亲手至于战乱,自此黄粱梦醒,大厦将倾,如日中 ...

  6. 一口气看完45个寄存器,CPU核心技术大揭秘

    作者 | 轩辕之风O 来源 | 编程技术宇宙 头图 | CSDN下载自视觉中国 自1946年冯·诺伊曼领导下诞生的世界上第一台通用电子计算机ENIAC至今,计算机技术已经发展了七十多载. 从当初专用于 ...

  7. 地图上的三国(一口气看完15幅地图)

    https://baijiahao.baidu.com/s?id=1666564468693755784&wfr=spider&for=pc

  8. 86张脑图,一口气看完 React,想学React的看过来,React知识图谱汇总

    前言 React 18.0已经发布两周了 所以这两天抽空重新完整的过了一遍 React 我将所有内容整理为以下86张脑图,方便以后查阅 附原图和源文件: 原图和源文件(包括xmind和pos文件)已上 ...

  9. 102条简短深刻的回答,看完人生豁然开朗

    Managershare:一口气看完102条精辟犀利且到位的回答,相信你会对现有的生活更有感悟和深思,新一年,来点营养. 1.怎么定义「想清楚了」? "想清楚了"就是以后出了什么问 ...

最新文章

  1. 学习动力之“学习金字塔 (爱德加•戴尔)”理论
  2. 面向对象设计模式纵横谈:Singelton单件模式(笔记记录)
  3. erlang r19里面的mnesia_ext
  4. 同一台服务器上面安装多个mysql数据库
  5. 第七次团队作业——日不落战队
  6. 《誓鸟》是什么小说?
  7. HDU 2296 Ring AC自动机 + DP
  8. linux中nodejs后台运行工具forever
  9. MySQL读锁的区别和应用场景分析
  10. Android 系统(166)---GMO版本最近应用列表界面显示模糊的解决方案
  11. 天津麒麟正式更名为麒麟软件
  12. xbox手柄测试_【喂你播】苹果官网上架Xbox无线手柄,那么未来会有果牌手柄吗?...
  13. JS间隔指定字符数后面插入
  14. Android Camera2 对焦梳理
  15. 手机计算机怎样可以整分数计算,分数计算器设计
  16. 21级计科专业计算机组成原理实验一报告
  17. Spark—15分钟教程
  18. python数据分析(一):列联分析与方差分析
  19. 利用python从网络上爬取图片_一篇文章教会你利用Python网络爬虫抓取王者荣耀图片...
  20. Matlab多项式和符号函数简介

热门文章

  1. 程序员应当知道的实用工具网站
  2. 【备战春招/秋招系列】初出茅庐的程序员该如何准备面试?
  3. 降本升效-能耗监测物联网解决方案
  4. WPS怎么转PDF?简单几步搞定
  5. 车载以太网第二弹 | 测试之实锤-物理层PMA测试实践
  6. 质监局监督检测指挥系统
  7. BigDecimalUtils
  8. 基于Java+SpringBoot+Thymeleaf+Mysql房产中介预约看房系统设计与实现
  9. 数据的统计量特征---懒得整理
  10. 【可转债,股票】低频量化之 可转债 配债价格表