sql主表从表查询

sql
sql分类:
DDL:
对象:数据库和表
关键词:create alter drop truncate
创建数据库:create database day06;
删除数据库: drop database day06;
创建表:create table user(
id int primark key  auto_increment,
username varchar(20)
);

修改表:
alter table user rename to user10;
alter table user add password varchar(20);
alter table user change password pwd varchar(20);
alter table user modify pwd int;
alter table user drop pwd;

删除表:
drop table user;

常用的命令:
use day06;
show tables;
desc user;
show create table user;

DML:
对象:记录(行)
关键词:insert update delete
插入:
insert into user values(字段值1,字段值2,...);-- 所有的字段
insert into user(字段1,字段2....) values(字段值1,字段值2);-- 插入指定的字段
更新:
update user set 字段=字段值1,字段2=字段值2 where 条件;
删除:
delete from user where 条件;
扩展:
以后开发中很少使用delete,数据无价,删除有物理和逻辑(常用),
逻辑删除一般会在表中添加一个字段(isdel:若值为1,代表删除了;若为0代表没有删除),
此时的删除操作变成了更新操作.
DQL:
select ... from 表名 where 条件 group by 分组字段 having 条件 order by 排序字段;
执行顺序:
1.确定数据来自那张表  from
2.是否需要筛选  where 
3.是否需要分组 group by
4.分组后是否需要筛选 having
5.是否需要排序 order by
6.确定显示那些数据. select
DCL:用户 权限 事务

auto_increment 自增
truncate 干掉表,重新创建 和delete的区别
数据类型:
int 和 varchar(size):可变长度
date time  datetime timestamp

多表的操作:
表与表之间的关系:
一对多:
在多表的一方添加一个外键,外键的名称一般是主表名称_id,外键的类型和主表的主键的类型保持一致
为了保证数据的有效性和完整性,
需要在多表上添加外键约束
格式:
alter table 多表 add [constraint [外键的名称]] foreign key(外键名称) references 主表名称(主键);
多对多:
添加一张中间表,存放两张表的主键,就可以将多对多拆分成两个一对多了
为了保证数据的有效性和完整性,
需要在中间表添加两个外键约束
一对一:(了解)
1.两个实体合二为一(字段比较少)
2.将一张表的主键添加外键约束即可
/
多表的查询:
内连接:
显式:
select a.*,b.* from a join b on 条件;
隐式:
select a.*,b.* from a,b where 条件;
外连接:
左外连接:
select a.*,b.* from a left join b on 条件;
以a为主,展示所有数据,根据条件关联查询b表,满足条件则展示,不满足的话以null显示
子查询::
一个查询依赖于另一个查询.
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页