Mysql 的基础查询语句

使用Mysql 的基础查询语句

``名称等东西可以加上这个

1. show

use 数据库名; #进入数据库
show database; #显示数据库
show table; # 显示所有表
show COLUMNS FROM 表名# 显示表列
SHOW STATUS,用于显示广泛的服务器状态信息;
SHOW GRANTS; #显示授予用户的权限
SHOW ERRORS和SHOW WARNINGS; #用来显示服务器错误或警告消息。
desc 表名; #查询表结构

2. SELECT

SELECT 列名1,列名2 from 表名; # 查看表中多个列的元素
SELECT * FROM 表名; # *通配符 所有列
SELECT DISTINCT id FROM TABL_E; #去重放在列名前面
# distinct
SELECT ID FROM TABL_E LIMIT 5; #前5个行
SELECT ID FROM TABL_E LIMIT 5, 5; #从第5行开始的后5个行,行是从0开始的
SELECT ID FROM TABL_E LIMIT 5 OFFSET 1; #从第1行开始的后5个行,行是从0开始的
SELECT TABL_E.ID FROM TABL_E; #完全限定列名

# 查询常量值
SELECT 100;
SELECT 'ssa';
# 查询表达式
SELECT 100%98;
# 查询函数
SELECT VERSION();

# 起别名
/*
便于理解
如果查询字段有重名的情况,使用别名可区分
也可以只加空格
加双引号可以区分
*/
SELECT 100%98 AS 结果;
SELECT last_name AS 姓, first_name AS 名 FROM emp;
SELECT last_name "姓", first_name 名 FROM emp;
SELECT DISTINCT last_name "姓", first_name 名 FROM emp; 去重
SELECT CONCAT('a','b','c') AS 结果; # 如果有null就会自动显示null
# 连接
/*
 结果
 abc
 */
 
SELECT 
  IFNULL(sid, 0) AS id, # 如果为空换成什么值
  CONCAT(sid,',', cid)  #其实就像c++中的 cout << 一样;
FROM
  sc ;

不能部分使用DISTINCT, DISTINCT关键字应用于所有列而 不仅是前置它的列。如果给出SELECT DISTINCT vend_id, prod_price,除非指定的两个列都不同,否则所有行都将被 检索出来。

样例

3. 排序数据

sql语句是由子句构成的 通常一个人关键字和所提供数据组成

SELECT ID FROM TABL_E ORDER BY ID;
# order这条语句除了指示MySQL对prod_name列以字母顺序排序数据的ORDER BY子句外,与前面的语句相同

3.1 多级排序

就连着在后面写就行了

SELECT ID, Iv, Ix FROM TABL_E ORDER BY ID, Iv, Ix; #会先按ID在按Iv在按Ix排序
  • 排序方向:
SELECT ID,Iv FROM TABL_E ORDER BY ID DESC; #降序desc 降序关键字只需要放在需要对应的列后面
SELECT ID,Iv FROM TABL_E ORDER BY ID DESC, Iv;
# ID 降序 Iv没有 
#ASC升序 默认升序
  • 组合找最值

    SELECT ID,Iv FROM TABL_E ORDER BY ID DESC LIMIT 1; # 最高的以此可以知道如何找最低的
    limit 必须放在orderby 之后
    

    3.2 条件查询

 /*
 语法:
	select
		查询列表 3
	form
		表名 1
	where                  #r如同if 表达的结果不是true就是false
		筛选条件; 2
 */
 
/*
一按条件表达式筛选
条件运算符: >< = != <=  >=
二逻辑表达式
	&& || !
	and or not
	模糊表达式
	like
	between and
	in
	is null
*/
# 查询大于12000的信息
SELECT 
  * 
FROM
  emp 
 WHILE
    salary > 12000 ;
# 查看不等于90的
SELECT 
	*
FROM
	emp
WHERE
	dep_id!=90; 或者 dep_id<>90;
  • 按逻辑表达式
    • 用于连接条件表达式的
# 90到100之间
SELECT 
	*
FROM 
	emp
WHERE 
	dep_id >= 90 AND dep_id <= 100;

# id 不是在90到100之间的,或者工资高于 cs 不等于90的
SELECT 
*
FROM 
	emp
WHERE
	NOT(90 <= dep_id AND dep_id <= 100) OR cs != 90;
  • 模糊查询

    like
    between and
    in
    is null | is not null
    # like
    一般跟通配符一起用
    % 任意多个字符 包含0, not null
    _ 任意单个字符
    \ 如果要转义就用 也可以自己设置 ESCAPE '$'
    # 查询包含字母c的信息
    SELECT * FROM emp WHERE
    	name_s LIKE '%c%'; # %->是通配符
    # 查第二个字符是c的
    SELECT * FROM emp WHERE
    	name_s LIKE '_c%'; # %->是通配符
    
    # between and
    # 90-100
    # 包含临界值
    # 必须从左到右
    SELECT * FROM emp WHERE dep_id BETWEEN 90 AND 100;
    # in
    
    SELECT 
    	*
    FROM
    	emp
    WHERE
    	dep_id = 90 OR dep_id = 100 OR dep_id = 110;
    
    # --------------------------------------------------------
    # 判断是否属于in内的值
    
    SELECT 
    	*
    FROM
    	emp
    WHERE
    	dep_id IN(90, 100, 110);
    
    
    • is null | is not null

      等于和普通的运算符不能判断null值

SELECT 
	*
FROM
	emp
WHERE
	cs is null;
  • 安全等于

    • <=>: 这个可以用null和普通值
    SELECT 
    	*
    FROM
    	emp
    WHERE
    	cs <=> null;
    
发布了74 篇原创文章 · 获赞 29 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/ClonH/article/details/104585647