关于数据库的外键
外键其实就好比
a表中有name字段
B表中也有name字段
如果要做关联查询的话,a就可以说是b的外键,也可以说,b是a的外键
结论
1、大型系统中,性能和安全要求不高,可以使用
2、如果性能高、安全自己控制,不用
3、小系统可以使用的
4、添加外键在数据每次插入和删除以及更新的时候,都会特别的耗费资源
5、外键对应的表2字段,最好是主键,不然是唯一索引也可以,不能有重复值
数据库命令
1、库的增删查
创建:create database 数据库名
查询:show databases
删除:drop database 数据库名
进入指定表:use 数据库名
2、表的增删查
创建: create table 表名
查看表内容:show table 表名
查看表结构:desc table 表名
修改表名:alter table 表名 rename to 新表名
数据库表删除:drop table if exists tes
3、字段增删查
增加
1、创建是增加
create table 表名 (
id int(10) not null auto_increment id,
content varchar(100) not null default '' comment '内容',
time int(10) not null default 0 comment '时间'
)
2、alter table 表名 add 字段名 字段类型
删除:alter table 表名 drop 字段名;
修改字段类型:alter table 表名 modify 字段名 新字段类型
修改字段名称:alter table 表名 change 原字段名 新字段名 新字段类型
主键索引添加:alter table 表名 add PRIMARY KEY(字段名) !!!!字段值唯一
普通索引添加: alter table 表名 add index index_name(字段名) !!!!字段值不需要唯一,可重复
唯一索引添加: alter table 表名 add UNIQUE (字段名) !!! 同主键,字段值唯一
4、对数据库的数据操作增删改查
插入数据
insert into 表名(字段1,字段2,字段3) values(数据1,数据2,数据3)
查询数据
select * from 表名;
select 字段1,字段2 from 表名;
条件查询
select 字段1,字段2 from 表名 where 字段1 = *** ;
多重条件查询--and
select 字段1,字段2 from 表名 where 字段1 = *** and 字段2=*** ;
多重条件查询-- || (相当于or)
select 字段1,字段2 from 表名 where 字段1 = *** || 字段2=*** ;
关联查询
select t1.字段1 t2.字段2 from 表1 t1 ,表2 t2 ;
关联查询加条件
select t1.字段1 t2.字段2 from 表1 t1 ,表2 t2 where t1.字段1=<>t2.字段;
数据去重: select distinct 字段1 from 表名;
将展示的字段1 ,将展示结果重复的都去掉,只留不重复的
数据相加
select (字段1+字段2+字段3) from 表名;
将展示的结果进行相加
数据删除
select (字段1+字段2+字段3)/3 avg from 表名;
将将展示的结果进行相加并除3
查询有多少条数据
select count(*) from 表名;
查询某个数据的最大值;
select max(字段1) from 表名;
查询某个数据的最小值;
select min(字段1) from 表名;
将某个字段查询出的所有数据进行相加
select sum(字段1) from 表名;
展示指定位置的数据
select 字段1 from 表名 limit 1,3 ;
展示第二条到第四条的数据,共三条,第一条是0
两表综合展示--连接查询
select * from 表1 cross join 表2 ;
两个表的结果都会展示
表查询-- 左连接
select * from 表1 left join 表2 where 字段1=字段2;
更新数据
update 表名 set 字段1=111 where 字段2 = 222;