创建表02
设置注释
如何为表和字段设置注释
使用SQL语句设置字段默认值:关键字COMMENT
CREATE TABLE teacher
(
teacher_id varchar(20) COMMENT ‘老师编号’,
teacher_name varchar(50) COMMENT ‘老师姓名’,
gender varchar(10) COMMENT ‘性别’
) COMMENT ‘老师’;
假如对一张已经存在的表添加注释,可以使用ALTER TABLE关键字:
alter table teacher comment ’老师’ ;
添加或修改表中字段的注释
设置默认值
如何为表和字段设置默认值
为什么要设置默认值?
例如在博客网站上注册一个新用户时,除了用户名、密码、手机号外,还有一些非必填信息,比如性别、QQ号、职业等。这些信息如果没有填写,那向数据库插入时,就可以使用NULL值替代。
如果性别、QQ号、职业等,这些字段被设置为NOT NULL,不可以插入NULL值,怎么办?
设置默认值:使用关键字:DEFAULT
CREATE TABLE teacher
(
teacher_id varchar(20) ,
teacher_name varchar(50) default ‘‘, 默认设置为空
gender varchar(10)
);
设置默认值注意:
- 表中所有的字段都可以设置默认值;
- 默认值的数据类型必须与字段保持一致;(不一致时,数据库虽然有也会默认做隐式类型转换,但不推荐这样做。一是因为不规范,另一方面是这样做可能会导致其它未知错误)
- 除主键字段外,建议其他所有字段都设置默认值;
常用默认值:
数据类型分类 |
常用默认值 |
字符型 |
空字符串 ‘ ’ |
数值型 |
0、1 |
日期和时间型 |
‘1900-01-01’ ‘0001-01-01’ ‘9999-12-31’ ’00:00:00’ CURRENT_DATE//当前时间 |
根据字段的业务含义来赋默认值
设置主键
如何为表设置主键
主键:唯一标识表中每一行的某一列或多列。使用关键字:PRIMARY KEY
CREATE TABLE teacher
(
teacher_id varchar(20) ,
teacher_name varchar(50) default ‘‘, 默认设置为空
gender varchar(10) ,
primary key(teacher_id)
);
主键的特点:
- 一个表只能有一个主键
- 一个表中的所有行,主键字段的值不允许重复;主键的作用是保证数据的唯一性和完整性
- 主键字段可以是多个,甚至是表中所有字段一起做主键;多个字段一起做主键时,我们称为联合主键或重复主键;不过一般来说不会超过5个,否则会影响操作性能
- 主键字段不允许为NULL;主键不应包含动态变化的数据;
- 主键字段不允许更新????【尽力避免】
永远也不要更新主键的值
特殊的NULL
NULL值以及使用时的注意点
在创建表时,对于表中的每个字段,可以指定字段是否必须包含值。对于可以不包含值的字段,可以向字段中插入NULL值。
CREATE TABLE teacher
(
teacher_id varchar(20) NOT NULL,
teacher_name varchar(50) NOT NULL,
gender varchar(10) NULL, //可以为空
primary key(teacher_id)
);
每个字段,要么是NOT NULL,要么是可以为NULL。创建表时,可以不指定,默认情况下是可以为NULL,也就是可以不包含值。
NULL值表示一种虚空的状态,“不知道”“不确定”的状态,不是0!!!
如何判断某个字段的值是否为NULL?用关键字:is
gender is null
gender is not null
NULL值使用的忠告:
- 允许NULL值的字段,不能作为主键字段
- 尽量避免将字段设置为可以是NULL,事实上,应该定下规范,多有字段都必须设置为NOT NULL;