table_name 表名,简称tb
column_name 列名简称cn
value 值,简称v
增
语法:
insert into tb(cn1,cn2...) values(v1,v2...)
tb后的括号可以省略,但是values的值要一一对应。其实就相当于关键字传参。
插入多条:
insert into tb(cn1,cn2...) values(v1,v2...),(v_1,v_2...)
用逗号隔开
删
语法:
删除单条:
delete from tb where 条件;
删除多条:
delete from tb;
改
语法:
改单条的数据:
update tb set name='a' where 条件;
改所有的数据:
update tb set name='a';
查
语法:
*代表一行的所有列的信息
select * from tb;
select name from tb where age=20;
查询表中年龄为20的人的信息
可以和前面的所有连用,来解决不同的问题。
表连接
原因:
当多个数据放在同一张表的时候,数据量过大,且对表操作的时候,更改过于麻烦。
例:
班级表和学生表
作用:
解决数据量过大的问题,更改麻烦。
连接方式
1、内连接 inner join
数据一一对应,不会出现null数据
2、外连接:
左外链接 left outer join
左表为主表,也就是左表的数据全显
右外连接 right outer join
右边为主表,主表的数据全显
3、自连接
自己连接自己的表
最后加上on表依靠什么连接
内连接:
inner join inner可省略
例:
-- 创建数据库
create database experise charset=utf8;
use experise;
-- 创建user表和course表
create table user(id int auto_increment primary key,name varchar(20),cid int);
create table course(id int auto_increment primary key,name varchar(20));
-- 插入数据
insert into user(name,cid) values('a',1);
insert into user(name,cid) values('b',2);
insert into user(name) values('c');
insert into course(name) values('语文');
insert into course(name) values('数学');
insert into course(name) values('英语');
insert into course() values();
------------以上为添加数据库数据的代码--------------
select * from user as u inner join course as c on u.cid=c.id;
介绍:
内连接中为空的没显示
外连接 outer可省略
左外连接:
select * from user as u left outer join course as c on u.cid=c.id;
右外连接:
select * from user as u right outer join course as c on u.cid=c.id;
简介
左外连接主动性在左边的表身上,左表数据全显,右外连接的主动性在右边上面,右表数据全显。
内连接:只有匹配到的数据才显示
自连接
自己连接自己
一样的,只不过把两张表看成一张表。用内连接连接
多表连接
多张表之间的连接
如:
select * from user as u left join course c on u.cid=c.id left join teacher t on c.id=t.id;
如上:
多表连接和单表连接一样的,只不过多个分之。
注意:
在表连接的时候,需要考虑表的主动性问题,就是在连接一个表的时候,需要以哪个表为主表,哪个表位从表。