mysql
2021/9/7 19:07:48
本文主要是介绍mysql,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
虚拟机: ssh test@192.168.245.189 密码:test
mysql: mysql -h 192.168.245.189 -u root -P 3306 -p123
数据库查询语句汇总
SELECT * FROM game; SELECT * FROM 王者荣耀.game AS zz; SELECT 类型 FROM game; SELECT DISTINCT 类型 FROM game; SELECT DISTINCT aa.类型 AS bb FROM 王者荣耀.game AS aa; SELECT * FROM game WHERE 类型 = '法师'; SELECT * FROM game WHERE 类型 LIKE '法师'; SELECT * FROM game WHERE 类型 = '法师' AND 等级 > 30; SELECT * FROM game WHERE 类型 = '法师' OR 等级 > 60; SELECT * FROM game WHERE 类型 LIKE '法师' OR 等级 > 60; SELECT * FROM game WHERE 等级 BETWEEN 60 AND 80; SELECT * FROM game WHERE 等级 >= 60 AND 等级 <= 80; SELECT 等级,姓名 FROM game; SELECT * FROM game WHERE 姓名 LIKE '李%'; SELECT * FROM game WHERE 姓名 LIKE '%小_'; SELECT * FROM game WHERE 姓名 LIKE '%信%'; SELECT * FROM game WHERE 姓名 LIKE '__信'; SELECT 等级 * 10 AS 'zz' FROM game ; SELECT 编号 * 等级 AS 'zz' FROM game ; SELECT * FROM game WHERE 类型 != '法师'; SELECT * FROM game WHERE NOT 类型 = '法师'; SELECT * FROM game WHERE NOT 类型 LIKE '法师'; SELECT * FROM game WHERE NOT 类型 IN ('法师'); SELECT * FROM game WHERE NOT 等级 <= 60; SELECT * FROM game WHERE 类型 IS NULL; SELECT * FROM game WHERE 类型 IS NOT NULL; SELECT * FROM game WHERE NOT 类型 IS NULL; SELECT * FROM game WHERE 姓名 IN ('李白','李广','武则天') SELECT * FROM game WHERE 姓名 = '李白' OR 姓名 = '李广' OR 姓名 = '武则天' SELECT * FROM game WHERE 姓名 LIKE '李白' OR 姓名 LIKE '李广' OR 姓名 LIKE '武则天' #查询game表的前3行 SELECT * FROM game LIMIT 3 #查询game表全部信息,并且按"编号"列升序 SELECT * FROM game ORDER BY 编号 #查询game表全部信息,并且按"编号"列倒序 SELECT * FROM game ORDER BY 编号 DESC #查询game表全部信息,并且按"编号"列和"等级"列升序 SELECT * FROM game ORDER BY 编号,等级 #查询game表多少行数 SELECT COUNT(*) FROM game #查询game表“等级”列多少行数据 SELECT COUNT(等级) FROM game #查询game表“等级”列所有行的和 SELECT SUM(等级) FROM game #查询game表“等级”列所有行的平均值 SELECT AVG(等级) FROM game #查询game表“等级”列的最大值 SELECT MAX(等级) FROM game #查询game表“等级”列的最小值 SELECT MIN(等级) FROM game #请查询sell表中,每个用户有多少订单号? SELECT COUNT(*), 用户号 FROM sell GROUP BY 用户号
常用命令
#查看数据库服务端的版本 SELECT VERSION(); #查看所有数据库 SHOW DATABASES; #查看当前所在数据库 SELECT DATABASE(); #查看表中的所有信息 SELECT * FROM 表名; #查看登录数据库的用户 SELECT USER(); #显示表结构 desc 表名; #切换数据库 USE 数据库名; #查看数据库当前连接详情 show full processlist
sql语句可以分多行显示
SELECT * FROM members; /* 1.SQL 可以写在一行或者多行 */
询表中的所有列或部分列
SELECT * FROM members; SELECT 性别,注册时间 FROM members; /* 0. from 跟的是表名 1. select 后面跟所查询的列, 2. 显示列的顺序与输入的顺序有关 3. 列与列之间有英文逗号分隔 4. *表示搜索所有列 5. 关键词不区分大小写 */
as 取别名
#取别名 使用as SELECT 姓名 AS NAME FROM members; SELECT 姓名 NAME FROM members; SELECT 书名 NAME,作者 AS auther,出版社 AS publisher FROM book; SELECT 用户号 AS "tt bb" FROM members; 1.取别名使用as 关键词 2.as可加可不加,但是必须有空格 3.当别名中有空格时,需要使用单引号或双引号引起来 4.别名不能是数值类型, 否则使用引号引起来
case
SELECT 图书编号, 书名,数量, CASE WHEN 数量 IS NULL THEN '尚未进货' WHEN 数量 < 5 THEN '需进货' WHEN 数量 >=5 AND 数量<=50 THEN '库存正常' ELSE '库存积压' END AS ooo FROM book; /* 1. case 语句放在select后面 2. case带头,end结尾 3. else可以不加 4. when后面跟条件,then后面跟结果 */
列值运算
SELECT 姓名,等级, 姓名 + 等级 AS '新等级' FROM game /* 1. 字符串当0值运算 2. 列与数字运算 3. 列与列相互运算 4. 列与列、数字、运算符号混合运算。 */
distinct 消除重复项
SELECT DISTINCT 学历 FROM employees; # 其含义是对结果集中的重复行只选择一个,保证行的唯一性.
where 条件查询
#使用WHERE 子句,将不满足条件的行过滤掉。 SELECT 书名,单价 FROM Book WHERE 书名='网页程序设计' #查询book表的单价是27的信息 SELECT 单价 FROM book WHERE 单价 = 27; /* 1. 条件语句用where关键词 2. where必须在from关键词的后面 3. 运算符号间不要有空格 */
and or not 逻辑运算
#查看game表中等级不等于80的所有信息,(使用 != 和 not 2种方法) #查看game表中等级大等于70,并且等级小于80的所有信息 #查看game表中等级大等于70,并且类型是法师的所有信息 #查看game表中等级大等于80,或者等级小于等于70的所有信息 /* 1. not 与 != 和<> 是等效的 2. not 放在字段的前面,而!=和<> 放在字段与值的中间 3. not是运算一个条件,而and和or是运算2个条件语句 4. and和or的2个条件语句不分先后顺序,且2个条件中都必须有字段 */
between and 范围比较
#对数值查询 SELECT * FROM sell WHERE 订购单价 BETWEEN 22 AND 28 #对时间查询 SELECT * FROM sell WHERE 订购时间 BETWEEN '2013-07-26 12:25:03' AND '2015-08-01 12:13:49' /* 1. between and子句在where后面 2. 字段名在between前面 3. 两个数值在and的两边 4. 两个数值,小的在and左边,大的在and右边。 5. .包含两端数据 6. .between前面可以加not,表示查询不在此范围的数据,但不包括2端的数据 7. 可以对时间类型查询查询 8. 可以对数值类型查询 */
like 模糊查询
SELECT * FROM members WHERE 姓名 LIKE '司%懿' #找出姓名以“张”开头的名字 SELECT * FROM book WHERE 作者 LIKE "_小%" SELECT * FROM book WHERE 作者 LIKE "小%" # 以小开头的字符 SELECT * FROM book WHERE 作者 LIKE "%小" # 以小结尾的字符 SELECT * FROM book WHERE 作者 LIKE "%小%" # 只要字符含有小就可以 SELECT * FROM book WHERE 作者 LIKE "%小%刚%" # 只要字符包含小和刚,且小必须在刚的前面就行 SELECT * FROM book WHERE 作者 LIKE "_小" #有两个字符,小必须在后面 SELECT * FROM book WHERE 作者 LIKE "_小_" #有3个字符,小必须在中间 SELECT * FROM book WHERE 作者 LIKE "_小_刚" #有4个字符,且第二字符是小,第4个字符是刚 SELECT * FROM book WHERE 作者 LIKE "__小" #有3个字符,小必须在后面 SELECT * FROM book WHERE 作者 LIKE "__小%" #至少有3个字符,且第三字符是小就行 SELECT * FROM book WHERE 作者 LIKE "_小%" #只要第二字符是小就行 SELECT * FROM book WHERE 作者 LIKE "_小_%" #至少有3个字符,且第二字符是小就行 /* 1. 属于条件查询,必须关键词where 2. 使用like作为模糊查询的关键词, like 在where的后面 3. 字段名紧跟在like的前面 4. 模糊查询的条件尽量使用引号引起来 5. _表示单个任意字符 6. %表示任意个任意字符(所有字符) */ #在xs表中查询1990年的学生的所有信息 #在xs表中查询2月份出生的学生的所有信息 #在xs表中查询姓王的学生的所有信息 #在xs表中查询姓名是3个字的学生的所
in 过滤查询
SELECT * FROM game WHERE 姓名 IN ('安琪拉', '程咬金', '庄周', '镜小') SELECT * FROM game WHERE 等级 IN (80, 99) /* 1. in子句在where后面 2. 字段名在in的前面 3. 把要查询在内容放在小括号里面 4. 内容之间使用英文逗号隔开 5. 字符型的内容,用引号括起来 6. 数值型的内容,可以使用引号括起来,也可以不用引号 */
空值查询
#查询sell表中,是否发货是空值的订单的所有信息。 SELECT * FROM sell WHERE 是否结清 IS NOT NULL; /* 1. 查询空值null,使用is null,放在where的后面 2. 查询空值null,使用is null,字段名放在is null的前面, 3. 查询空值null,使用is not null */
not的位置
#查询game表中,等级不小于70的英雄所有信息 SELECT * FROM game WHERE NOT 等级 <= 70; #查询game表中,等级不是80的英雄所有信息 SELECT * FROM game WHERE NOT 等级 = 80 #查询game表中,类型不是法师的英雄所有信息 SELECT * FROM game WHERE NOT 类型 = "法师" #查询game表中,等级不在60至80之间的英雄所有信息 SELECT * FROM game WHERE NOT 等级 BETWEEN 60 AND 80 #查询game表中,姓名不是’韩信‘、’程咬金‘的英雄所有信息 SELECT * FROM game WHERE NOT 姓名 IN ("韩信","程咬金") #查询game表中,姓名的第二个字符不是'小'的英雄所有信息 SELECT * FROM game WHERE 姓名 NOT LIKE "_小%" /* 1. not放在字段名的前面 2. 如果查询方式的关键字是like、in、between and, not可以放在字段名的前面,也可以放在字段名的后面 3. 如果比较运算符是< > <= >= != =,not必须放在字段名的前面 */
#三个是等价的语句 SELECT DISTINCT 姓名 FROM members JOIN sell USING(用户号); SELECT DISTINCT 姓名 FROM members AS m ,sell AS s WHERE m.用户号 = s.用户号 SELECT DISTINCT 姓名 FROM members AS m JOIN sell AS s ON m.用户号 = s.用户号
- 1.
- 2.
- 3.
- 4.
多表查询
表取别名
SELECT 姓名 AS '100' ,等级 FROM game as 'abc abc' ; SELECT 姓名 AS '100' ,等级 FROM game as 'abc' ; SELECT 姓名 AS '100' ,等级 FROM game as 100 ; SELECT 姓名 AS '100' ,等级 FROM game 'abc' ; 1. 给表取别名使用as关键词,as也可以加,也可以省略 2. 给表取别名的,别名不能加引号、不能是数字、不能带空格。 3. 容易区分,操作简洁。 4. 如果给表取了别名,在使用时,必须使用别名,而不能使用原来的命中。
排序
orede by 字段名, 表示安某列进行排序,默认情况下是升序 desc 表示倒序 列如: 1、SELECT * FROM game ORDER BY 编号; #按编号列升序 2、SELECT * FROM game ORDER BY 编号 desc #按编号列倒序 3、SELECT * FROM game ORDER BY 1 #按第一列升序
限制
limit 行数:返回行数 例如: 1、SELECT * FROM game limit 2; #只返回搜索结果的前2行 2、SELECT * FROM game limit 2, 5; #只返回搜索结果中从3行开始的条数据
这篇关于mysql的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25如何部署MySQL集群资料:新手入门教程
- 2024-12-24MySQL集群部署资料:新手入门教程
- 2024-12-24MySQL集群资料详解:新手入门教程
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南