天天看点

MySql数据库知识点复习1. MySql数据类型2.表记录的操作3. MySql常见的函数4. 外键和表关系

文章目录

  • 1. MySql数据类型
    • 1.1 数值类型
    • 1.2 字符串类型
    • 1.3 日期类型
  • 2.表记录的操作
    • 2.1 字段约束
    • 2.2 drop、delete、truncate之间的区别?
  • 3. MySql常见的函数
  • 4. 外键和表关系
    • 4.1 外键介绍
    • 4.2 添加外键
    • 4.3 表关系
    • 4.4 关联查询、外连接查询

1. MySql数据类型

1.1 数值类型

MySql中有很多数值类型,常用的数值类型有:
           
int    对应Java中的int类型, 占用4个字节
double 对应Java中的double类型, 占用8个字节
           

1.2 字符串类型

Mysql中包含char和varchar两种字符串类型:
           
char(n) –- 定长字符串
其中n的范围: 0~255 /个字符
name char(10)
  如果存储的数据长度小于定义的最大长度, 剩余的空间会用空格补全, 因此char类型可能会存在一定的空间浪费。
varchar(n) -- 不定长字符串
其中n的范围: 0~255 /个字符 (mysql5.0之前)
0~65535 /个字节(mysql5.0之后)
  如果存储的数据长度小于定义的最大长度, 剩余的空间可以留给别的数据使用, 因此varchar类型不会有空间的浪费。
大文本类型有:
text 0~65535 /个字节
bigtext 4GB
           

ps: char和varchar有什么区别?

char类型比varchar类型存储的效率略高,但是存在空间浪费。

1.3 日期类型

date 格式:年月日
time 格式:时分秒
datetime 格式: 年月日 时分秒
timestamp 时间戳(实际上存储的是从1970-1-1日到指定时间的毫秒值)
datetime的范围: 1000~9999年
timestamp的范围: 1970~2038年
timestamp类型的列可以设置自动更新为当前时间,但是datetime不能设置
           

2.表记录的操作

2.1 字段约束

1.主键约束
    如果一个列添加了主键约束,那么该列就是这张表的主键,主键要求唯一且不能为空。
           
create table person1(
id int primary key,
...
);
           
2.唯一约束
    如果为一个列添加了唯一约束,那么该列的值就不能重复,但是可以为null。
           
create table person2(
name char(10) unique,
...
);
           
3.非空约束   
    如果为一个列添加了非空约束,那么该列的值就不能为空,但是可以重复。
           
create table person3(
gender varchar(2) not null,
...
);
           

2.2 drop、delete、truncate之间的区别?

● drop只能删除库和表,不能删除表记录。
  ● delete和truncate是删除表记录,不能删除库和表本身
  ● delete删除表记录时,可以删除表中的某一部分记录,也可以删除表中的所有记录,而且删除时,是一条
     一条删除。
  ● truncate也是删除表记录,但是只能删除所有记录,删除时不是一条一条删除,而是将整张表摧毁重建。
           

3. MySql常见的函数

1、ifnull(列名, 值)

判断指定的列的值是否为null, 如果为null, 则用第二个参数对null值进行替换

2、count(列名 | *)

count函数是对指定的列或者所有列统计行数

3、max(列名)和min(列名)

max(列名)

对指定的列求最大值

min(列名)

对指定的列求最小值

4、sum(列名和avg(列名)

sum(列名)

对指定的列进行求和

avg(列名)

对指定的列求平均值

5、curdate()、curtime()、sysdate()、now()

Curdate()

获取当前时间, 格式为年月日

Curtime()

获取当前时间, 格式为时分秒

Sysdate() | now()

获取当前时间, 格式为年月日 时分秒

4. 外键和表关系

4.1 外键介绍

外键就是用于通知数据库两张表数据之间对应关系的一个列, 数据库会通过外键来维护两张表的对
 应关系。
           

4.2 添加外键

● 创建表的同时添加外键

CREATE TABLE student(
sid int primary key auto_increment, -- 学生编号
sname VARCHAR(10),                  -- 学生姓名
s_cid INT,                          -- 班级编号
FOREIGN KEY (s_cid) REFERENCES class(cid)  --指定外键
);
           

● 在建表后添加外键

4.3 表关系

● 一对一

● 一对多

● 多对多

4.4 关联查询、外连接查询

● 关联查询

select * from class, student
where student.s_icd = class.cid;
           

● 左外连接查询

左外连接查询会将左边表中的所有记录都查询出来, 而右边表中只查与左边对应的记录。
           

● 右外连接查询

右外连接查询会将右边表中的所有记录都查询出来,而左边表中只查与右边对应的记录。