来源:自学PHP网 时间:2015-04-16 10:50 作者: 阅读:次
[导读] 创建数据表1、创建数据表的语法 26684;式 数据表属于数据库,在创建数据表之前要使用USE 数据库名指定操作是在哪个数据库中进行的,如果没有选择数据库,将会出现No database selected的...
创建数据表1、创建数据表的语法格式
数据表属于数据库,在创建数据表之前要使用“USE <数据库名>”指定操作是在哪个数据库中进行的,如果没有选择数据库,将会出现“No database selected”的错误 创建数据表的语句为: CREATE TABLE , 语法规则为: CREATE TABLE <表明> ( 字段1 数据类型 [列级约束条件] [默认值], 字段2 数据类型 [列级约束条件] [默认值], ...... [表级约束条件] ); 使用CREATE TABLE创建表的时候,必须指定以下信息: (1)要创建的表的名称,不区分大小写,不能使用SQL语言中的关键字,如DROP、ALTER、INSERT等。 (2)创建表中每一列的名称、数据类型时,如果要创建多个列,要使用逗号。
范例: 创建员工表employee。 首先选择创建表的数据库: USE study 创建employee表的SQL语句: CREATE TABLE employee ( id INT(11), name VARCHAR(25), deptId INT(11), salary FLOAT, );
使用SHOW TABLES;查询数据表是否创建成功。
2、主键约束主键,又称主码,是表中一列或多列的组合。逐渐约束要求主键列的数据唯一,并且不允许为空。主键能唯一的表示表中的一条数据,可以结合外键来定义不同数据表之间的关系,并且可以加快数据查询的速度。主键分为两种类型:单字段主键和多字段联合主键。
单字段主键 单字段主键是有一个字段组成,SQL语句格式分为以下两种情况: (1)在定义列的同时指定主键,语法规则如下:
字段名 数据类型 PRIMARY KEY [默认值] 范例: 定义数据表employee2,其主键为id CREATE TABLE employee2 ( id INT (11) PRIMARY KEY, name VARCHAR(25), deptId INT(11), salary FLOAT ); (2)在定义完所有的列之后指定主键
[CONSTRAINT <约束名>] PRIMARY KEY(字段名)
范例:定义数据表employee3,其主键为id,SQL语句如下 CREATE TABLE employee3 ( id INT(11), name VARCHAR(25), deptId INT(11), salary FLOAT, PRIMARY KEY(id) );
多字段联合主键 多字段联合主键是由多个字段联合组成的,语法规则如下: PRIMARY KEY [字段1,字段2,......字段n]
范例: 定义数据表employee4,假设表中没有主键id,为了唯一确定一个员工,可以把name和deptId联合起来作为主键,SQL语句如下: CREATE TABLE employee4 ( name VARCHAR(25), deptId INT(11), salary FLOAT, PRIMARY KEY (name,deptId) );
3、使用外键约束外键用来在两个表之间建立连接,他可以是一列或多列。一个表可以有一个或多个外键。外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每个外键值必须等于另一个表中主键的某个值。 外键: 外键是表中的一个字段,外键可以不是本表的主键,但是外键应该是另一个表的主键。外加的主要作用就是保存数据引用的完整性,定义外键后,不允许删除在另一表中具有关联关系的行。外键的作用是保持数据的一致性,完整性。例如:部门表department的主键是id,在员工表employee5中有一个键deptId与这个id关联。
主表(父表):对于两个具有关联关系的表而言,相关连字段中主键所在的那个表即是主表
从表(子表):对于两个具有关联关系的表而言,相关联字段中外键所在的表即是从表
创建外键的语法格式: [CONSTRAINT <外键名>] FOREIGN KEY 字段名1 [,字段名2,...] REFERENCES <主表名> 主键列1 [,主键列2,....] “外键名”为定义的外键约束的名称。一个表中不能有相同的外键;“字段名”表示子表需要添加外键约束的字段列;“主表名”即被子表外键所依赖的表的名称;“主键列”表示主表中定义的主键列或列组合 范例: 定义数据表emplpyee5,并在employee5表上创建外键约束。 创建一个部门表department: CREATE TABLE department ( id INT(11) PRIMARY KEY, name VARCHAR(22) NOT NULL; location VARCHAR(50) );
定义数据表employee5,让它的键deptId作为外键关联到deparment的主键: create table employee5 ( id int(11) primary key, name varchar(25), deptId int(11), salary float, constraint foreign_key_emy_dept foreign key(deptId) references department(id) );
以上语句执行成功后,在表emplyee5上添加了名为foreign_key_emy_dept的外键约束。外键名称为的deptId,其依赖于主表department的主键id
4、使用非空约束
非空约束指的是字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错。 非空约束的语法规则如下: 字段名 数据类型 not null
范例: 定义数据表employee6,指定员工的名称不能为空: create table employee6 ( id int(11) primary key, name varchar(25) not null, deptId int(11), salary float, constraint foreign_key_emy_dept2 foreign key(deptId) references department(id) ); 执行后,在employee6中创建了一个name字段,其插入值不能为空。
5、使用唯一性约束
唯一性约束要求该列唯一,允许为空,但是只能出现一个空值。唯一性约束可以确保一列或者几列不出现重复值。 非空约束的语法规则如下: (1)在定义列之后直接定义唯一性约束。语法规则如下:
字段名 数据类型 UNIQUE 范例:创建department2,指定部门名称唯一: create table department2 ( id int(11) primary key, name varchar(22) unique, location varchar(50) );
(2)在定义完所有的列之后指定唯一性约束,语法规则如下:
[CONSTRAINT<约束名>] UNIQUE (<字段名>) 范例: 定义数据表department3,指定部门名称唯一。 create table department3 ( id int(11) not null, name varchar(22), location varchar(50), constraint sth unique(name) ); UNIQUE和PRIMARY KEY的区别:一个表中可以有多个字段声明为UNIQUE,但是只能有一个PRIMARY KEY声明;声明为PRIMARY KEY 的列不允许有空值,但是声明为UNIQUE的字段可以有空值。
6、使用默认约束
默认约束指定某列的默认值。如男同学较多,性别就可以设置为默认的’男‘。如果插入一条新的记录时没有为这个字段赋值,那么系统会自动将这个字段赋值为’男‘。 默认约束的语法格式: 字段名 数据类型 DEFUALT 默认值
范例: 定义数据表employee7,指定员工的部门编号默认为1111: create table employee7 ( id int(11) primary key, name varchar(24) not null, deptId int(11) default 1111, salary float, constraint foreign_key_emp_dept4 foreign key(deptId) references department(id); );
7、设置表中的属性值自动增加
在数据库中,经常希望在每次插入新纪录时,系统自动生成字段的主键值。可以通过为表的主键添加AUTO_INCREMENT关键字来实现。默认的,在MySQL中,AUTO_INCREMENT的初始值是1,每新增一条记录,字段值自动加1.一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。AUTO_INCRE MENT约束的字段可以是任何的整数类型(TINYINT/SAMLLIN/INT/BIGINTD等) 设置自动增加的语法规则: 字段名 数据类型 AUTO_INCREMENT 范例:
create table employee8 ( id int(11) primary key auto_increment, name varchar(25) not null, deptId int(11) );
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com