SQL 知识量:22 - 44 - 129
有两种创建表的方法:
直接使用SQL语句创建。
利用DBMS提供的交互式创建和管理数据库表的工具。
其实,DBMS提供的交互式工具在底层也是使用SQL语句来操作表,包括创建表。
要创建表应当使用create table语句。使用时必须给出以下要素:
新表的名字,在关键字create table后面给出。
表列的名字和定义,每个表列间使用逗号分隔。
有的DBMS还要求指定表的位置。
例如:创建一个员工表(staff)。
create table staff ( id int(11) not null, name varchar(255) not null, age int(11) not null, sex varchar(255) not null );
以上SQL语句中,在括号内定义了表的4个列,以列名开始,之后是数据类型和是否可以是空值。每个列定义使用逗号分隔。
创建新表时必须确保表名是不重复的。为防止意外覆盖已有的表,SQL要求如果要使用重复的表名,必须先删除已有的表,再重建它,不能简单的用创建语句覆盖它。
NULL值就是没有值或缺值。如果一个列定义时为null,那么在插入数据时就允许不给出值,如果定义的是not null,那么在插入或更新数据时,必须确保该列有值。
多数DBMS在不指定not null时,默认认为就是null,但是DB2要求必须指定null或not null,否则将出错,因此,总是明确指定null或not null是个好习惯。
需要注意的是:
主键作为每行数据的唯一标识是不允许为null的,也就是说,可以是null的列不能成为主键。
null与空字符串是完全不同的概念,null表示什么都没有,即没有赋值;而空字符串表示是个字符串,但是它是空白的。
SQL允许指定默认值,在插入数据时,如果没有给出值,DBMS就会使用默认值。
默认值在创建表时,由default关键字来指定。
例如:创建员工表(staff),其中国家列默认是“china”。
create table staff ( id int(11) not null, name varchar(255) not null, age int(11) not null, sex varchar(255) not null, country varchar(255) not null default 'china' );
在staff表中,country列的默认值是china,如果插入行时,不给出country列的值,那么它的值将默认为china。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6