数据库查询之连表查询

员工表employee
员工表employee
权限表auth,
权限表auth,
中间关系表auth_employee,外键连接employee表和auth表
中间关系表auth_employee

1. 内连接:

#内连接
SELECT 	au.`id` AS auid,au.`name` AS auname, ae.`id`,emp.`id` AS empid,emp.`name` AS empname
FROM 	auth AS au,auth_employee AS ae,employee AS emp
WHERE 	au.`id`=ae.`authId`
AND	 	ae.`empId`=emp.`id`

内连查询结果:
内连查询

2. 左外连接

#左外连接
SELECT 		au.`id` AS auid,au.`name` AS auname,ae.`id` ,emp.`id` AS empid,emp.`name` AS empname
FROM  		employee AS emp
LEFT JOIN 	auth_employee AS ae 
ON 			ae.`empId`=emp.`id`
LEFT JOIN  	auth AS au 
ON 			au.`id`=ae.`authId`

左外连查询结果:
左外连查询

注:

  1. 在多表连查时,可能会有相同和字段名称,这时必须要明确是哪个表的哪个字段的名称(例:au.id ,au.name,emp.name)
  2. 为取别名时所用的 AS 是可用空隔替代的,可不写

常规增删改查 (以上表employee为例)

#查询:
SELECT * FROM employee WHERE id='1'
#添加:
INSERT INTO employee VALUE(NULL,'小明')
#删除:
DELETE FROM employee WHERE id='4'
#修改:
UPDATE employee SET `name` = 'Fred' WHERE id = '5'

注:

  1. 当字段名为关键字时,要用跳脱符跳脱(即!左边的点符号)
  2. 当主键为自增长时,添加的主键可用null,表示让数据库自动填写

其他:

删除所有行,可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的:

DELETE FROM 表名 或者 DELETE * FROM 表名

使用 DROP 语句,可以删除索引、表和数据库

DROP INDEX 索引名称
DROP TABLE 表名称
DROP DATABASE 数据库名称

truncate (清空表中的数据):不删除表,删除内容、释放空间但不删除定义(保留表的数据结构)。
与drop不同的是,仅是清空表数据而已。

TRUNCATE TABLE 表名称

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值