MySql|一口气看完MySQL--上篇
MySql
- MySql中的数据类型
- 注释
- 数据库操作
- 表的操作
-
- 给表关联约束
-
- 主键约束 primary key
-
- 创建
- 删除主键约束
- 联合主键
-
- 创建
- 删除联合主键
- 唯一约束 unique
-
- 创建
- 删除唯一约束
- 自动增长列 auto_increment
-
- 创建
- 删除自动增长
- 默认约束 default
-
- 创建
- 删除默认约束
- 非空约束 not null
-
- 创建
- 删除非空约束
- 外键约束 foreign key
-
- 创建
- 删除外键约束
MySql中的数据类型 1.数值
类型 | 大小 | 范围 | 范围 | 用途 |
---|---|---|---|---|
TINYINT | 1字节 | -27~27 -1 | 0~2^8 -1 | 小整数 |
SMALLINT | 2字节 | -215~215 -1 | 0~2^16 -1 | 大整数 |
MEDIUMINT | 3字节 | -223~223 -1 | 0~2^24 -1 | 大整数 |
INT | 4字节 | -231~231 -1 | 0~2^32 -1 | 大整数 |
BIGINT | 8字节 | -263~263 -1 | 0~2^64 -1 | 极大整数 |
FLOAT | 4字节 | 单精度浮点数 | ||
DOUBLE | 8字节 | 双精度浮点数 | ||
DECIMAL | 小数值 |
? 例如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 | 混合日期和时间值,时间戳 |
类型 | 大小(字节) | 用途 |
---|---|---|
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(学号,课程号)
);
【MySql|一口气看完MySQL--上篇】?修改表的同时添加联合主键
//方式一
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 外键约束名;
推荐阅读
- 摔跤吧爸爸
- py连接mysql
- 2019-01-18Mysql中主机名的问题
- 观我不是药神电影有感
- MySql数据库备份与恢复
- 天河水到底怎么推(取天河水啥意思?看完这篇搞清楚了!)
- mysql|InnoDB数据页结构
- mysql中视图事务索引与权限管理
- MYSQL主从同步的实现
- MySQL数据库的基本操作