900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 【博学谷学习记录】超强总结 用心分享|【Java Web】MySQL基础

【博学谷学习记录】超强总结 用心分享|【Java Web】MySQL基础

时间:2018-11-18 16:05:16

相关推荐

【博学谷学习记录】超强总结 用心分享|【Java Web】MySQL基础

目录

一 、创建数据表

(1) 主键约束

(2) 外键约束

(3) 非空约束

(4) 唯一性约束

(5) 默认约束

(6) 设置表的属性自加

(7) 查看表的结构

二 、修改数据表

(1) 修改表名

(2) 修改字段的数据类型

(3) 修改字段名

(4) 添加字段

(5) 删除字段

(6) 修改字段的排列位置

(7) 更改表的储存引擎

(8) 删除表的外键约束

三 、删除数据表

一 、创建数据表

use test_db;create table tb_emp1(id int(11),name varchar(15),deptID int(11),salary float);

使用下面语句查看此数据库存在的表

show tables;

(1) 主键约束

主键,又称主码,是表中一列或多列的组合。主键约束〈Primary Key Constraint) 要求主键列的数据唯一,并且不允许为空!= null。主键能够唯一地标识表中的一条记录,可以结合外键来定义不同数据表之间的关系, 并且可以加快数据库查询的速度。主键和记录之间的关系如同身份证和人之间的关系,它们之间是一一对应的。主键分为两种类型:单字段主键和多字段联合主键。

单字段主键;在定义完所有列之后定义主键;多字段联合主键;

单字段约束:

create table tb_emp2(id int(11) primary key,name varchar(15),deptID int(11),salary float);

后面约束:

create table tb_emp3(id int(11),name varchar(15),deptID int(11),salary float,primary key(id));

联合约束:假设没有主键id,可以通过namedeptID来确定一个唯一的员工。

create table tb_emp4(id int(11),name varchar(15),deptID int(11),salary float,primary key(name,deptID));

(2) 外键约束

外键用来在两个表的数据之间建立链接, 它可以是一列或者多列。一个表可以有一个或多个外键。外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值。外键 : 首先它是表中的一个字段,它可以不是本表的主键,但对应另外一个表的主键。外键主要作用是保证数据引用的完整性, 定义外键后,不允许删除在另一个表中具有关联关系的行。外键的作用是保持数据的一致性、完整性。例如,部门表tb_dept的主键是id,在员工表tb_emp5中有一个键deptId与这个id关联。

有关主表和从表:

主表(父表) : 对于两个具有关联关系的表而言,相关联字段中主键所在的那个表即是主表。

从表(子表) : 对于两个具有关联关系的表而言,相关联字段中外键所在的那个表即是从表。

需要注意:

子表的外键必须要关联父表的主键相关联的数据类型必须匹配先删子表,再删父表

下面的例子tb_emp5(员工表)中的deptID关联部门表中的ID(主键)

//父表create table tb_dept1(id int(11)primary key,name varchar(22) not null,location varchar(50))//子表create table tb_emp5(id int(11) primary key,name varchar(25),deptID int(11),salary float,constraint fk_emp5_dept foreign key(deptID) references tb_dept1(id))

(3) 非空约束

非空约束指定的字段不能为空,如果添加数据的时候没有指定值,会报错。

create table tb_emp6(id int(11) primary key,name varchar(15) not null,deptID int(11),salary float);

(4) 唯一性约束

唯一性要求该列唯一;允许为空,但只能出现一个空值;唯一性可以确保一列或几列不出现重复值;

create table tb_dept2(id int(11)primary key,name varchar(22) unique,location varchar(50));create table tb_dept3(id int(11)primary key,name varchar(22),location varchar(50),constraint N_uq unique(name) #N_uq是约束名);

注意UNIQUE和主键约束(PRIMARY KEY)的区别:

一个表中可以有多个字段声明为UNIQUE,但只能有一个PRIMARY KEY声明;声明为PRIMAY KEY的列不允许有空值,但是声明为UNIQUE的字段允许空值 (NULL) 的存在。

(5) 默认约束

指定了默认约束之后,如果没有指定值,就用默认的。

create table tb_emp7(id int(11) primary key,name varchar(15) not null,deptID int(11) default 111,salary float);

(6) 设置表的属性自加

在数据库应用中,经常希望在每次插入新记录时,系统自动生成字段的主键值。可以通过为表主键添加AUTO_INCREMENT关键字来实现。默认的,在MySQL 中AUTO _INCREMENT的初始值是 1,每新增一条记录,字段值自动加 1。一个表只能有一个字段使用AUTO_INCREMENT 约束,且该字段必须为主键的一部分。AUTO_INCREMENT约束的字段可以是任何整数类型 (TINYINT、SMALLIN、INT、BIGINT 等) 。

create table tb_emp8(id int(11) primary key auto_increment,name varchar(15) not null,deptID int(11),salary float);

(7) 查看表的结构

desc可以查看表的字段名,数据类型,是否为主键,是否默认值。

desc tb_emp8;

查看表的详细结构,可以看储存引擎,和字符编码

show create table tb_emp8;

二 、修改数据表

(1) 修改表名

将表tb_dept3改为tb_deptment3

alter table tb_dept3 rename tb_deptment3;

查看数据库中的表

show tables;

修改表名不会改变结构,desc前后结果一样。

(2) 修改字段的数据类型

# 修改表字段的数据类型,把name列的数据类型改为varchar(33)alter table tb_dept1 modify name varchar(33);

(3) 修改字段名

# 修改表的字段名,不改数据类型 将tb_dept1中的location字段改成localter table tb_dept1 change location loc varchar(50);# 修改表的字段名,并且改变数据类型, 同时改变数据类型alter table tb_dept1 change loc location varchar(60);

change也可以只改变数据类型,但是一般不要轻易改变数据类型

(4) 添加字段

有三种添加方式:

①默认在最后面添加;②在第一个位置添加first;③和指定的位置添加after

# 添加字段(默认在最后面添加)alter table tb_dept1 add managerID int(10);# 添加字段(默认在最后面添加)(非空约束)alter table tb_dept1 add column1 int(10) not null;# 添加字段(在第一个位置添加)alter table tb_dept1 add column2 int(10) first;# 添加字段(在指定位置后面添加)alter table tb_dept1 add column3 int(10) after name;

(5) 删除字段

# 删除字段, 删除tb_dept1的column3字段alter table tb_dept1 drop column3;

(6) 修改字段的排列位置

# 修改字段的排列位置(改到第一个位置)alter table tb_dept1 modify column1 int(10) first;# 修改字段的位置为指定的位置alter table tb_dept1 modify column2 int(10) after name;

(7) 更改表的储存引擎

# 查看数据表的定义show create table tb_deptment3;# 更改数据表的引擎alter table tb_deptment3 engine = MyISAM;

(8) 删除表的外键约束

create table tb_emp9(id int(11)primary key,deptID int(11),name varchar(25),salary float,constraint fk_emp9_dept foreign key(deptID) references tb_dept1(id))# 删除外键约束alter table tb_emp9 drop foreign key fk_emp9_dept;

三 、删除数据表

# 删除表drop table if exists tb_emp9;

注意注意:删除有关联的数据表的父表的时候,先删除外键再删除父表

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。