Mysql学习笔记–day05

1.字符型

较短的文本:M最大的字符数
char
varchar
特点比较:
在这里插入图片描述
binary和varbinary类型用户保存较短的二进制
较长的文本:
text
blob(较大的二进制)

2.采用枚举类型创建表格,并且插入数据,后查看插入结果?
CREATE TABLE tab_char(
 c1 enum('a','b','c','d')
);
insert into tab_char values('a');
insert into tab_char values('b');
insert into tab_char values('c');
select * from tab_char;
3.创建集合类型的表格,插入数据,并查看结果
CREATE TABLE tab_set(
 s1 set('a','b','c','d')
);
insert into tab_set VALUES('a');
insert into tab_set VALUES('A,B');
insert into tab_set VALUES('a,C,d');
select * from tab_set

运行结果为:

a
a,b
a,c,d
4.日期类型

图片2
timestamp和实际时区有关,更能反映实际的日期,而datetime则只能反映出插入时的当地时区。
timestamp的属性受Mysql版本和SQLMode的影响很大。

5.用时间格式创建数据表,插入数据并查询表
CREATE TABLE tab_date(
 t1 DATETIME,
 t2 TIMESTAMP
);
insert into tab_date values(now(),now());
select * from tab_date;
6.有哪两种删除表的方式?两者的区别是什么?

方式一:使用delete
一、删除表单的记录
delete from 表名[where 筛选条件] [limit]
二、级联删除
delete 别名1,别名2 from 表1 别名
inner|left|right join 表2 别名
on 连接条件
[where 筛选条件]
方式二:使用truncate
语法:truncate table 表名
两者的区别:
1.truncate删除后,如果再插入,识别列从1开始
delete删除后,如果再插入,识别列从断点开始
2.delete可以添加筛选条件
truncate不可添加筛选条件
3.truncate效率高
4.truncate没有返回值
delete可以返回受影响的行数
5.truncate不可以回滚
delete可以回滚

7.修改表

1.添加列
alter table 表名 add column 列名 类型 [first|after 字段名];
2.修改列的类型或约束
alter table 表名 modify column 列名 新类型 [新约束];
3.修改类名
alter table 表名 change column 旧列名 新列名 类型;
4.删除列
alter table 表名 drop column 列名;
5.修改表名
alter table 表名 rename [to] 新表名;

8.删除表名语法

drop table [if exists] 表名;

9.复制表

1.复制表的结构
create table 表名 like 旧表;
2.复制表的结构+数据
create table 表名
select 查询列表 from 旧表[where 筛选]

10.为什么要对表添加约束?

为了保证表中的数据的准确和可靠性

11.常见的约束有哪些?

六大约束
1.NOT NULL:非空,用于保证该字段的值不能为空,比如姓名、学号等
2.DEFAULT:默认约束,用于保证该字段有默认值,比如性别
3.PRIMARY KEY:主键约束,用于保证字段的值具有唯一性,并且非空,比如学号、员工编号等
4.UNIQUE:唯一,用于保证该字段的具有唯一性,可以为空,比如座位号
5.CHECK:检查约束,【mysql中不支持】
6.FORIEIGN KEY:外键,用于限制两个表的关系,用于保证从表该字段的值必须来自于主表的关联列的值

12.添加约束的时机有哪些:

1.创建表时
2.修改表时

13.添加约束的分类

1.列级约束:六大约束语法上都支持,但是外键约束没有效果
2.表级约束:除了非空、默认,其他的都支持

14.创建一个新的数据库students,并使用列级约束创建一张表,并查看表结构
create database students;
use students;
CREATE table stuinfo(
 id int PRIMARY key,
 stuName VARCHAR(20) not null,
 gender char(1),#无效check(gender='男' or gender='女')
 seat int UNIQUE,
 age int DEFAULT 18,
 majorId int
);
desc stuinfo;
show index from stuinfo;
15.创建一个表,使用表级约束
use students;
drop table if exists stuinfo;
create table major(
 id int PRIMARY key,
 majorName VARCHAR(20)
)
create table stuinfo(
 id int,
 stuname varchar(20),
 gender char(1),
 seat int,
 age int,
 majorid int,
 constraint pk PRIMARY key(id),
 constraint uq UNIQUE(seat),
 #constraint ck CHECK(gender='男' or gender='女'),
 CONSTRAINT fk_stuinfo_major foreign key(majorid) REFERENCES major(id)
);
show index from stuinfo;

查看结果如下:
在这里插入图片描述
说明:表级约束
在创建表的最下面写上如下字段:
[constraint 约束名] 约束类型(字段名)

16.使用通用方式创建表
create table stuinfo(
 id int primary key,
 stuname varchar(20) not null,
 sex char(1),
 age int default 18,
 seat int unique,
 majorid int,
 constraint fk_stuinfo_major FOREIGN key(majorid) REFERENCES major(id)
)
desc stuinfo;
17.约束中主键约束和唯一约束有什么区别?

主键约束:保证唯一性,不允许为空,一个表中可以至多只能有一个主键约束,可以多个字段组合使用,但不推荐
唯一约束:允许唯一为空,一个表中可以有多个唯一约束,可以多个字段组合使用,但不推荐

18.如何在表中定义组合唯一键
constraint pk primary key(id,stuname)
19.使用外键的前提和满足条件是什么?

1.要求在从表设置外键关系
2.从表的外键列的类型和主表的关联列的类型要求一致兼容,名称无所谓
3.主表的关联列必须是一个key(一般是主键或唯一约束)
4.插入数据时,先插入主表,再插入从表
删除数据时,先删除从表,再删除主表

20.修改表时添加约束
ALTER table stuinfo MODIFY COLUMN stuname VARCHAR(20) not null;
21.添加主键
ALTER TABLE stuinfo modify column id int PRIMARY key;
Alter table stuinfo add PRIMARY key(id);
22.添加外键约束
ALTER table stuinfo add CONSTRAINT fk_stuifo_major foreign key(majorid) REFERENCES major(id);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值