目录
1.32、【日期或时间处理函数】 ----- 例如:2018-7-10 12:36
1.33、【数值聚集函数】 ------ 汇总数据信息,而不需要将结果集显示出来
一、查询数据
1.11、【检索数据】Select ... From字句
①、检索指定列名信息
Select 显示列名 From 表名
Select 显示列名1,显示列名2,显示列名3 From 表名
②、检索指定表中的所有信息
Select * From 表名
③、检索相同数据的唯一值
Select Distinct 显示列名 From 表名
④、限制检索的结果集
Select 显示列名 From 表名 limit 检索数目
Select 显示列名 From 表名 limit 检索下标 , 检索数目
1.12、【数据排序】------ Order By字句
①、升序排序(默认排序)
Select 显示列名 From 表名 Order By 排序列名
Select 显示列名 From 表名 Order By 排序列名 Asc
②、降序排序
Select 显示列名 From 表名 Order By 排序列名 Desc
1.21、【过滤数据】------ Where字句
①、过滤单个值
Select 显示列名 From 表名 Where 过滤列名(1) = 10
②、过滤多个值
(1)、AND操作符
Select 显示列名 From 表名 Where 过滤列名(1) = 10 And 过滤列名(2) = ’叶碧钦’
(2)、OR操作符
Select 显示列名 From 表名 Where 过滤列名(1) = 10 OR 过滤列名(2) = ’叶碧钦’
★注意:如果条件没有被括起来,在And和Or的组合筛选中,And的执行次序高于Or
(3)、IN操作符
Select 显示列名 From 表名 Where 过滤列名(1) IN (5,10)
(4)、NOT操作符
Select 显示列名 From 表名 Where 过滤列名(1) NOT IN (5,10)
(5)、范围过滤
Select 显示列名 From 表名 Where 过滤列名(1) Between 5 And 10
1.22、【通配符过滤】 ------ Like操作符
(1)、% 通配符
Select 显示列名 From 表名 Where Name Like‘叶%’
★解析:百分号(%)表示任意字符、任意个数
(2)、_ 通配符
Select 显示列名 From 表名 Where Name Like‘叶碧_’
★解析:下划线(_)仅表示一个任意字符
(3)、空值检查
Select 显示列名 From 表名 Where 过滤列名(1) Is Null
1.31、【文本处理函数】
(1)、将字符串转换为小写
Select Lower(显示列名) From 表名 Where 过滤列名 = 10
(2)、将字符串转换为大写
Select Upper(显示列名) From 表名 Where 过滤列名 = 10
1.32、【日期或时间处理函数】 ----- 例如:2018-7-10 12:36
(1)、过滤转化:
Select 日期列名 From 表名 Where Date(日期列名) =‘2018-7-10’
(2)、结果转化:
Select Date(日期列名) From 表名 Where Date(日期列名) =‘2018-7-10’
(3)、范围过滤:
Select 日期列名 From 表名 Where Date(日期列名) Between ‘2016-7-10’ And ‘2018-7-10’
1.33、【数值聚集函数】 ------ 汇总数据信息,而不需要将结果集显示出来
(1)、返回某列平均值
Select AVG(列名) AS Avg_Result From 表名 Where ID = 1111
(2)、返回某列的行数
Select Count(列名) AS Count_Result From 表名 Where ID = 1111
(3)、返回某列的最大值
Select MAX(列名) AS Max_Result From 表名 Where ID = 1111
(4)、返回某列的最小值
Select Min(列名) AS Min_Result From 表名 Where ID = 1111
(5)、返回某列之和
Select Sum(列名) AS Sum_Result From 表名 Where ID = 1111
1.41、【分组数据】
①、创建分组
Select UserID,Count(列名2) AS Count_Result From 表名 Group By UserID
★注意:Group By指示Mysql将表中UserID列数据排序并按唯一值分组,然后再根据分组后的每行UserID值去查询行数。
②、过滤分组 --- 列出至少有2个订单的所有顾客。
Select UserID,Count(*) AS Orders From 表名
Group By UserID
Having Count(*) >= 2
★注意:Where过滤的是行,而Having过滤的是分组。例如:Where行过滤与Having分组过滤的嵌套组合 --- 先过滤行数据,再分组。
Select UserID,Count(*) AS Orders
From 表名 Where UserID > 1000
Group By UserID
Having Count(*) >= 2
1.42、【联结表】
①、等值联结 --- 指定两表,同列比较
Select Student.Name,School.Name,School.Address
From Student,School
Where Student.SchoolName = School.Name
★注意:From包含了两个表,Where只是告诉Mysql过滤两个表的指定列中符合条件的行,显示该行中指定两表中的指定列数据。
②、使用表别名
Select Stu.SchoolName ,Sch.SchoolName ,Sch.Address
From Student AS Stu,School AS Sch
Where Stu.SchoolName = Sch.SchoolName
③、自联结 --- 在单条Select语句中引用相同表
Select 列名1,列名2 From 表名
Where 列名1 = ( Select 列名1 From 表名 Where 列名3 =‘KFC’)
1.43、【连接表】
INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
SELECT * FROM Left L INNER JOIN Right R ON L.id = R.id;
LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
SELECT * FROM Left L LEFT JOIN Right R ON L.id = R.id;
RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
SELECT * FROM Left L RIGHT JOIN Right R ON L.id = R.id;
二、插入数据
①、插入指定列
Insert Into 表名(列名1,列名2) Values(值1,值2)
②、插入完整行
Insert Into 表名 Values(值1,值2,值3,值4)
注意:表中有多少列就有多少个值,一一对应关系。
③、插入多行
Insert Into 表名 Values(值1,值2,值3,值4),(值1,值2,值3,值4);
④、插入检索出的数据
Insert Into 表名1(列名1,列名2,列名3)
Select 列名1,列名2,列名3 From 表名2
Where 列名1 =‘KFC’
注意:Insert ... Select字句中,Select将检索出的结果集插入到表名1中
三、更新数据
(UpDate ... Set)
①、单数据更新
UpDate 表名 Set 列名2=‘叶碧钦’ Where 列名1 = 1005
②、多数据更新
UpDate 表名1,表名2
Set 表名1.StuName =‘叶碧钦’,表名2.SchName =‘广东东软学院’
Where 表名1.UserID = 表名2.UserID
四、删除数据
①、数据删除
Delete From 表名 Where 列名 = 10086