📜  MySQL | DEFAULT()函数

📅  最后修改于: 2021-09-08 15:21:16             🧑  作者: Mango

DEFAULT()函数返回表列的默认值。

列的DEFAULT值是在这种情况下使用的值,没有用户指定的值。

为了使用此函数,应该为该列分配一个 DEFAULT 值。否则会产生错误。

句法:

DEFAULT ( column_name)

column_name: Name of column whose default value is written.

示例:考虑两个关系学生结果

表“学生”的结构-

Field Type Null Default
sid int(11) YES NULL
sname varchar(10) YES NULL
subject varchar(10) YES NULL
marks int(11) YES 0

表“结果”的结构-

Field Type Null Default
lowest_marks int(11) YES NULL
lohighest_marks int(11) YES NULL
grade varchar(5) YES FAIL

表中数据——

Select * from student;

sid sname subject marks
1 aayushi O.S 89
2 yogesh D.A.A 75
3 chestha T.O.C 0
4 manasvi O.S 60
5 hardik D.A.A 99
6 shanu E.S.D 35

Select * from result;

lowest_marks highest_marks grade
85 100 A
60 85 B
40 60 C

问题描述:我们要找到所有学生的结果-

询问:

Select sid, sname, subject, marks, 
    IF ( grade is NULL, DEFAULT ( grade ), grade )
AS grade  FROM  student LEFT JOIN result 
    ON marks > lowest_marks 
AND marks < = highest_marks;

输出:

sid sname subject marks grade
1 aayushi O.S 89 A
2 yogesh D.A.A 75 B
3 chestha T.O.C 0 FAIL
3 chestha T.O.C 0 FAIL
4 manasvi O.S 60 C
5 hardik D.A.A 99 A
6 shanu E.S.D 35 FAIL

说明:这里,default()函数用于返回默认等级,即“FAIL”。此默认值用于学生分数根据加入条件不匹配的地方。这些学生的成绩显示为 FAIL。

注意:带有 select 语句的默认函数将返回所有行的默认值。这意味着,我们将获得该列的默认值列表,而不是获得该列的单个默认值。

例如对于上面的表结果,查询的输出是-

Select default ( grade) from result;

输出:

default ( grade )
FAIL
FAIL
FAIL