在关系数据库中,数据库表是一系列二维数组的集合,用来表明和储存数据对象之间的关系。它由纵向的列和横向的行组成。数据表是数据库中的最重要、最基本的操做对象,是数据存储的基本单位。数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的。每一行表明一条惟一的记录,每一列表明记录中的一个域。例如一个有关做者信息的名为 authors 的表中,每一个列包含的是全部做者的某个特定类型的信息,好比“姓氏”,而每行则包含了某个特定做者的全部信息:姓、名、住址等等。mysql
在建立数据库表以前,须要选定一个数据库,在选定的数据库中建立数据表,不然建立失败。sql
USE 数据库名称;数据库
CREATE TABELE 数据表名;数组
在建立好数据表以后,使用SQL语句进行查看,建立的数据表是否成功。数据结构
SHOW TABLES;(显示某选定的数据库中的全部的数据表名称)spa
CREATE TABLE 表名称 (3d
字段1 数据类型 列级别的约束条件 (能够设定默认值),对象
字段2 数据类型 列级别的约束条件 (能够设定默认值),blog
......数据类型
)
示例:建立一个员工表 tb_emp,有id,name,deptId,salary等列。
USE wangfang;
mysql> CREATE TABLE tb_emp (
-> id INT(11),
-> name VARCHAR(25),
-> deptId INT(11),
-> salary FLOAT );
SHOW TABLES;
主键又称为主码,是表中一列或者多列的组合。主键约束要求主键列的数据是惟一的,而且不能为空。主键可以惟一的标识表中的一条记录,能够结合外键来定义不一样数据表之间的关系,而且能够加快数据库查询的速度。主键和记录之间的关系是一一对应的,就像人和身份证同样。主键分为:单字段主键和多字段联合主键。
主键是由一个字段组成,定义单字段的方法有两种:一是定义列的同时指定主键,一种是在定义完成后指定主键。
CREATE TABEL 表名 (
字段 数据类型 列级别约束条件 (指定默认值)
id INT PRIMARY KEY ,
......
)
CREATE TABEL 表名 (
字段 数据类型 列级别约束条件 (指定默认值)
id INT ,
PRIMARY KEY (id);
......
)
CREATE TABEL 表名 (
字段 数据类型 列级别约束条件 (指定默认值)
id INT PRIMARY KEY ,
name VARCHAR(25) ,
PRIMARY KEY (id,name);
......
)
外键用来在两个表的数据之间创建链接,能够是一列,也能够是多列。一个表能够有一个或者多个外键。外键对应的是参照的完整性,一个表的外键能够为空值,如果不为空值,那么每个外键值必须等于另外一个表中的主键的某个值。外键首先是一个表中的字段,能够不是本表的主键,可是必定要对应另外一个表的主键。外键的做用是:保证数据引用的完整性。定义完成后,不能删除有关联性的行。
注意:创建外键的条件是,两个表的存储引擎要一致。
建立的语法规则:
CONSTRAINT 外键名称 FOREIGN KEY 外键处的字段名 REFERENCES 主表的主键字段名
示例:
CREATE TABEL wang (
字段 数据类型 列级别约束条件 (指定默认值)
id_info INT PRIMARY KEY ,
name VARCHAR(25) ;
......
)
CREATE TABEL haha (
字段 数据类型 列级别约束条件 (指定默认值)
id INT PRIMARY KEY ,
name VARCHAR(25) ,
CONSTRAINT waijian FOREIGN KEY id REFERENCES wang(id_info) ;
......
)
非空约束指的是:指定的字段不能为空。使用了非空约束的字段,在添加数据的时候,若是没有指定数据的指定值,那么数据库就会报错。
CREATE TABEL 表名 (
字段 数据类型 列级别约束条件 (指定默认值)
id INT PRIMARY KEY NOT NULL;
......
)
惟一性约束:要求该列惟一,容许为空,可是只能出现一个空值,惟一约束能够确保一列或者多列不出现重复的值。
CREATE TABEL 表名 (
字段 数据类型 列级别约束条件 (指定默认值)
id INT PRIMARY KEY UNIQUE,
......
)
CREATE TABEL 表名 (
字段 数据类型 列级别约束条件 (指定默认值)
id INT PRIMARY KEY ,
CONSTRAINT uniq UNIQUE(id) ;
......
)
默认约束是指:给某一个字段设定默认的值,当用户添加数据的时候,没有给该字段添加相应的数据时,填入默认的值。好比说,一个理工科的学校,通常来讲男生比女生要多,那么在存储用户信息的数据库中,能够将性别这一栏设定默认值为:男
CREATE TABEL 表名 (
字段 数据类型 列级别约束条件 (指定默认值)
id INT PRIMARY KEY ,
sex CHAR(2) DEFAULT "m" ;
......
)
在数据库应用中,常常但愿在每次插入新纪录时,系统可以自动的生成字段的主键值。能够经过为表的主键添加 AUTO_INCREMENT 关键字来实现。默认的,在MySQL中AUTO_INCREMENT的初始值为1,每新增长一条记录,字段的值自动加1.一个表只能有一个字段使用 AUTO_INCREMENT关键字,而且该字段必须为主键的一部分。
CREATE TABEL 表名 (
字段 数据类型 列级别约束条件 (指定默认值)
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(25) NOT NULL
......
)
DESC 数据表的名称
SHOW CREATE TABLE 数据表的名称 \G ; ##若是不添加 \G 参数的话,输出的结果可能会很乱。添加该参数会利于查看
语法规则:ALTER TABLE 表名 RENAME 新表名 ;
语法规则:ALTER TABEL 表名 CHANGE 旧字段名 新字段名 跟定义的时候的该字段的数据类型 ;
语法规则:ALTER TABLE 表名 MODIFY 字段名 新的数据类型 ;
语法规则:ALTER TABLE 表名 ADD 字段名 数据类型 列级别的约束条件 ;
语法规则:ALTER TABLE 表名 ADD 字段名 数据类型 列级别的约束条件 FIRST ;
语法结构:ALTER TABLE 表名 ADD 字段名 数据结构 列级别的约束条件 BEFORE 字段名 ;
语法结构:ALTER TABLE 表名 MODIFY 字段名 数据类型 FIRST|AFTER 字段名 ;
语法结构:ALTER TABLE 表名 ENGINE=更改后的存储引擎的名称 ;
用于查看某表的存储引擎的SQL语句是:SHOW CREATE TABLE 表名 ; ##在后面会有表的相应的存储引擎
语法结构:ALTER TABLE 表名 DROP FOREIGN KEY 外键名称 ;
以上的操做是在建立外键
语法结构:DROP TABLE 表名 ;
2.删除有关联的数据表
若是两个表之间存在外键的链接,那么在删除表的时候,就不可能最早删除主表。
想要删除的方法是:先删除外键,再删除数据表;先删除子表,再删除父表。