mysql(三)

database

1 多表查询:创建一个部门表和员工表并插入数据

代码块

use company;

#创建部门表

CREATE TABLE department (

id int PRIMARY key auto_increment,

dep_name varchar(10) not null

);

#创建员工表

CREATE TABLE employee(

id int PRIMARY key auto_increment,

emp_name varchar(10) not null,

dep_id int

-- CONSTRAINT dep_id_fk FOREIGN key (dep_id) REFERENCES company(id) on DELETE CASCADE on UPDATE CASCADE

#上面的外键约束没有也可以,外键约束不影响表与表之间关联,影响的是表插入数据的约束

);

#向部门表中插入数据

insert into department(dep_name) VALUES ('网盟营销'),('大数据中心')

#向员工表中插入数据

insert into employee(emp_name,dep_id) VALUES('wangsiyu',1),('alex',2)

查询员工的ID,姓名,部门的名称:

代码块

select employee.id,emp_name,dep_name from employee,department WHERE department.id=employee.dep_id;

注意:对于两个表都同名的字段,应该在查询该字段的前面加上对应的表,否则电脑不知道你这个字段是哪个表的

连接查询(内连接,左连接,右连接,全连接)

代码块

内连接: 只连接匹配的行

select * from employee inner join department on employee.dep_id=department.id;

左连接 显示左表的全部记录

select * from employee left join department on employee.dep_id=department.id;

右连接:显示右表的全部记录

select * from employee right join department on employee.dep_id=department.id;

全连接:显示两个表的全部记录,没有对应的就用空表示

select * from employee full join department on employee.dep_id=department.id;

2约束

not null 非空约束

default 默认值约束

unique 唯一约束

primary key 主键约束

auto_increment 自增

foreign key 外键约束

以上是 mysql(三) 的全部内容, 来源链接: utcz.com/z/531930.html

回到顶部