class04_创建表02

创建表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)           

);

设置默认值注意:

  1. 表中所有的字段都可以设置默认值;
  2. 默认值的数据类型必须与字段保持一致;(不一致时,数据库虽然有也会默认做隐式类型转换,但不推荐这样做。一是因为不规范,另一方面是这样做可能会导致其它未知错误)
  3. 除主键字段外,建议其他所有字段都设置默认值;

常用默认值:

数据类型分类

常用默认值

字符型

空字符串 ‘ ’

数值型

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)

);

主键的特点:

  1. 一个表只能有一个主键
  2. 一个表中的所有行,主键字段的值不允许重复;主键的作用是保证数据的唯一性和完整性
  3. 主键字段可以是多个,甚至是表中所有字段一起做主键;多个字段一起做主键时,我们称为联合主键或重复主键;不过一般来说不会超过5个,否则会影响操作性能
  4. 主键字段不允许为NULL;主键不应包含动态变化的数据;
  5. 主键字段不允许更新????【尽力避免】

永远也不要更新主键的值

特殊的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值使用的忠告:

  1. 允许NULL值的字段,不能作为主键字段
  2. 尽量避免将字段设置为可以是NULL,事实上,应该定下规范,多有字段都必须设置为NOT NULL;
原文地址:https://www.cnblogs.com/77-is-here/p/12741932.html