MySql常见指令手册大全

目录

一、查询数据

       1.11、【检索数据】Select ... From字句

       1.12、【数据排序】------ Order By字句

       1.21、【过滤数据】------ Where字句

       1.22、【通配符过滤】 ------ Like操作符

       1.31、【文本处理函数】

       1.32、【日期或时间处理函数】 ----- 例如:2018-7-10 12:36

       1.33、【数值聚集函数】 ------ 汇总数据信息,而不需要将结果集显示出来

       1.41、【分组数据】

       1.42、【联结表】

       1.43、【连接表】

二、插入数据

三、更新数据

四、删除数据


一、查询数据

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

猜你喜欢

转载自blog.csdn.net/Rao_Limon/article/details/89244256