数据库

关系模型把世界做是由实体(Entity)和联系(Relationship)组成的,所谓实体就是指在现实所世界证客观存在并可相互区别的事物。实体所具有的的某一些特性称为属性(Attribute)表()是关系数据库的核心


关系型数据库是以表作为实体,以主键和外键的关联关系作为联系的数据库结构。


主键:在关系数据库表中,是一个唯一的标识符来标识每一行,这个标识符就是主键(Primary Key)


外键:在关系数据库中,外键(Forergn Key)就是用来表示表和表之间的关联关系。




一对一:一条主表记录对应一条从表记录,同时一条从表记录也对应一条主表记录(身份证)


一对一:一条主表记录对应多条从表记录,同时一条从表记录也对应一条主表记录(房子-人,学生和班级)


多对多:一条主表记录对应一条从表记录,同时一条从表记录也对应多条主表记录(学生和老师)




关系型数据库只是一个保存数据的容器,大多时候数据库依靠一个称为数据库管理系统(DBMS)的软件来管理数据库中的数据。管理数据库的软件称为关系数据库管理系统(RDBMS).数据库引用程序通过RDBMS与关系数据库进行交换.


为了防止垃圾数据的产生,从而影响数据库的执行。
1.实体完整性   保证一行数据有效性(保证每行所代表的实体能相互区别,不能存在两条一模一样的记录)
实现的方法:主键约束 Primary Key 
2.域完整性:保证一列数据有效性(域完整性是指定列的输入有效性)
实现方法:非空约束: not null
默认约束: Default
检查约束:Check(MySQL不支持)
3.应用完整性:保证引用的编号是有效的


5.引用完整性:参照完整性是指分布在两个表中的列所满足的具有主从性质的约束关系。
4.用户自定义完整性:保证自动义规则
数据的完整性 = 可靠性+准确性


外键是指从表的某列与主表的某列存在依附关系


外键约束是指在外键关联主键上强制加上一个约束,如果违反约束,则不允许该条数据的修改


数据定义语言(DDL)创建、修改、删除数据库的内部数据结构
数据查询语言(DQL)用于数据库中数据的查询
数据操作语言(DML)用于数据库中数据的修改,包括添加、删除、修改等
数据控制语言(DCL)控制数据库访问权限


创建数据库      cerate database  库名    create database shuJu;


删除数据库      drop database 库名       drop database mydb;


创建数据库表     create table 表名      


create table  t_user(
id  not null primary key aout_increment,
name varchar(20),
gadder varchar(20)


);


删除数据库表     drop table 表名    drop table t_user;


查询表中数据      select * from 表名    select * from t_user;


添加记录 insert into 表名(你要添加的数据 ,下个要添加的数据) values (要和签名的一一对应);
批量添加  insert into t_user(userName,birthday,money) 
 values('zhangttueisan','1669-12-30',1000),
 (’zhangttuei','1669-12-30',500),
 ('tueisan','1679-12-30',1000);


删除表中的某一些数据    delete from 表名  where   (条件); 
delete from  t_user where id=15;
delete from t_user where userName ='zhangou';


修改表中的数据   update 表名 set  你要改的数据   where  要与前面对应
  
-- 修改张三的工资为5000
update t_user set money =5000 where userName='list';
-- 修改80后工资为4500
update t_user set money =4500 where birthday>='1970-01-01' and birthday<'1980-01-01';
-- 80后人员工资加100
update t_user set money =money+100 where birthday>='1980-01-01'and birthday<='1990-01-01';


-- 修改id为7的员工,工资为5500,生日修改为1988-05-20


update t_user set money =money+1000 ,birthday='1988-05-20' where id=7;


-- 显示每个员工的工资


select  userName,money from t_user; 


-- 显示姓张的员工,%表示为通配符,表示任意长度字符


select * from t_user where userName like 'zhang%';


--  _下划线为通配符,匹配一个长度的任意字符
select * from t_user where userName like 'zhang_';


-- 查询带张的员工


select * from t_user where userName like '%zhang%';


-- 查询员工的工资,distinct表示取出重复的记录


select distinct money from t_user;


-- 显示第一条到第三条记录


-- limit 表示返回限定行,第一个参数为起始条数(第一条为0)(相当于数组的下标)
-- 第二条是显示条数
select * from t_user limit 2,3;  
insert into t_user(userName,birthday) values ('yuwangyuang','1993-05-03'),
('yuwangyang1','1995-4-7'); 


-- 显示公司的实习生


select *from t_user where money is null; 


select * from t_user where money is not null; 不等与0


-- 将员工的工资从搞到底排序
-- order by 字段 表示按字段排序,默认为升序asc,降序desc
select *from t_user order by money desc;
-- 显示所有的员工,并且显示该员工的工资等级
-- 4000一下,显示底薪,4000-5000,显示中薪,5000以上显示高薪


select u.*,(case when  money<4000 then '底薪' 
when money>=4000 and money<5000 then '中新' 
when money is null then '实习生'

else  '高薪' end
) grade from t_user u;




delete table 表名


truncate table 表名


二者的区别:
delete 会记录日志,意味着删除后的数据还可以恢复,但效率底,truncate不会记录日志,删除后的数据不能恢复,但效率高




from


where



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值