MySQL数据库复习

今天学习的重点,数据库查询语句分组和子查询

SQL HAVING 语法
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE 条件语句
GROUP BY column_name
HAVING aggregate_function(column_name) 值操作

使用 UPDATE语句来实现修改数据
语法
UPDATE <tb_name> SET field1=value1, field2=value2 [WHERE conditions]

使用 DELETE语句来实现删除数据
语法
DELETE FROM <tb_name> 删表所有数据 [WHERE conditions] 按指定条件删除数据

使用 DROP语句来实现删除数据库表
语法
DROP TABLE <tb_name>

一般模糊查询语句如下:

SELECT 字段 FROM 表 WHERE 某字段 Like 条件

其中关于条件,SQL提供了四种匹配模式:

1,% :表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。

比如 SELECT * FROM [user] WHERE u_name LIKE ‘%三%’
将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。

另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件
SELECT * FROM [user] WHERE u_name LIKE ‘%三%’ AND u_name LIKE ‘%猫%’

若使用 SELECT * FROM [user] WHERE u_name LIKE ‘%三%猫%’
虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。

2,_ : 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:

比如 SELECT * FROM [user] WHERE u_name LIKE ‘
只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;

再比如 SELECT * FROM [user] WHERE u_name LIKE ‘三__’;
只找出“三脚猫”这样name为三个字且第一个字是“三”的;

内连接查询会把两张表中,存在关系的数据都查询显示出来
语法:
SELECT * FROM , WHERE table1.xx = table2.xx
SELECT * FROM inner join ON <table2.col_name> = table1.col_name;

外连查询包括左连接(left join)和右连接(right join)
左外连接查询会把左边的表中的所有数据显示出来,并在由表中补充null来组成一条完整的数据,右外连接查询反之
语法:
SELECT * FROM left join on <table2.col_name> = table1.col_name;
SELECT * FROM right join on <table2.col_name> = table1.col_name;

外连查询包括左连接(left join)和右连接(right join)
SELECT 表1., 表2., 表3.,表4. FROM 表1
LEFT JOIN 表2 ON 表2.列1 = 表1.列1
LEFT JOIN 表3 ON 表3.列1 = 表1.列1
LEFT JOIN 表4 ON 表4.列1 = 表1.列1
WHERE 表1.列1 = 表2.列1 AND 表2.列 = 表3.列

找出比关晓彤年龄大的学生
SELECT * FROM students WHERE age
> ( SELECT age FROM students WHERE name =‘关晓彤’)

SELECT * FROM 表 WHERE 列 in ( 子查询 )

SELECT * FROM students WHERE classId
in ( SELECT classId FROM class WHERE classname LIKE ‘测试%’ )

等价于

SELECT * FROM students LEFT JOIN class ON class.id = students.classId
WHERE class.classname LIKE ‘测试%’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值