当前位置: 首页>数据库>正文

java校验数据库表中是否存在该数据 java数据库唯一性校验

Day 21

更详细的关于数据库可以去看我之前的博客

1.约束:数据库提供的包装数据完整性,正确性

主键:唯一标识,不能重复,不能为空
非空:not null
默认:增加数据时列有默认值
唯一约束:设置列 的数据不能重复,如果能为空,只有一个空(null)数据
检查约束:对数据的长度格式做约束,MySQL暂不直接支持
外键:保证数据的正确性(完整性+一致性)

数据增加,只能来自引用的表中数据(通常是id)
数据删除,被引用的数据不能删除,要先删从表中数据再删主编中数据或者级联删除。

约束不是越多越好,甚至在实际开发中约束极少

2.表之间的关系

例子:
1,班级表:主键(id),名称(name),班主任(teacher)
2,学生表:主键(id),姓名(name),性别(gender),学号(stuno),出生年月(birthdate),所在班级(classid)
3,老师表:主键(id),名称(name)
4,课程表:主键(id),名称(name),学分(score)
5,选课表(中间表):学生ID,课程ID

一个班级多个学生,一个学生在一个班级 班级与学生之间就是 一对多 关系数据库实现方式:在多一方增加外键引用 一的一方。

班级与老师:一个班级一个班主任,一个班主任带对个班级 多对一。

课程与学生:
一门课程多个学生选,一个学生可以选多个课程:多对多,关系数据库实现方式:使用一个中间表维护关系,中间表中两个外键,通常作为外键的两个列设置为复合主键。

一对一:用的少,暂不考虑。

3.SQL:Structure Query Language

创建数据库,建表,建约束
对数据的操作:增删改查 CRUD:Create,Read,Update,Delete

标准(SQL92):所有关系数据库都支持
扩展:T-SQL(SQLServer),PLSQL(Oracle),MySQL也有扩展

分类:DDL,DML,DCL

4.语法

创建数据库:create database db2 default character set utf8mb4;
删除数据库:drop database db1;
使用数据库:use db2;
创建表:

create table table(
 id int auto_increment primary key,
 name varchar(30) unique not null
 /添加的表中列的信息/
 );


删除表格:drop table table;
创建约束:
alter table table2
add constraint fk_table
foreign key(table1id) references table1(id);
删除约束:
alter table table2
drop constraint fk_table;

数据的操作:

增加数据:insert into tablename(col1,col2) values(value1,value2); //推荐
 insert into tablename values(value1,value2); //给所有列赋值


注意点:数值如果是字符,加上单引号,数字,可加可不加

修改数据:修改的是非主键(语法上ID是有条件的修改)

update tablename set col1=value1 where condition;
 update tablename set col1=value1,col2=value2 where condition; //绝大部分就是这种语法


注意:where缺少, 语法没有问题,但是更新所有的数据。
condition没有成立的,语法正常执行,但是没有数据会更新

删除数据:物理删除(现在)和逻辑删除(实现项目功能)

delete from tablename;//删除表中所有数据
 delete from tablename where condition;

逻辑删除实际上是使想要被删除的内容不可见。



https://www.xamrdz.com/database/69w1942144.html

相关文章: