从零开始学java(31)--- 数据库复习

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;

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值