mysql数据库怎样使查询语言为小写_mysql数据库小知识----查询语言DQL

第一章 SQL的基本语法规范

1.sql不区分大小写,但是习惯上关键字、系统保留字、函数名称大写,表名和列名小写

2.sql使用空格或者回车来分隔每个单词都一样,习惯上每个子句换行

WHERE子句中的每个条件占一行,子查询单独占一行

3.复杂的语句最好加上注释进行说明

-- 单行注释(空格必须有)

/*

多行注释

*/

4.sql语句中使用分号作为分隔符,系统读取到分号才会执行语句

/*

select 列名1,列名2,……列名n定义查询数据所在的列

from 表名1,表名2,……表名n 定义查询数据所在的表

where 限定条件1 and/or 限定条件2 ...... 定义查询数据的限定条件(行)

group by 列名1,列名2,……列名n定义分组函数的分组方式

having 分组条件1 and/or 分组条件2…… 定义分组函数结果的限定条件

order by 列名1 asc/desc,列名2 asc/desc ...... 定义查询结果的排序方式

*/

第二章 SELECT基础

1.*代表所有列

SELECT * FROM emp;

SELECT * FROM dept;

SELECT * FROM salgrade;

SELECT * FROM bonus;

2.查询指定的列

SELECT ename,job,sal,deptno FROM emp;

3.对查询结果进行运算

# + - * /

查询每个员工的年薪

SELECT ename,12*sal FROM emp;

#员工的年终奖定为年薪的10%再加上500

SELECT ename,(12*sal)*0.1+500 FROM emp;

4.空值参与运算得到结果也是空值

#计算员工的年收入

SELECT ename,sal,comm,12*(sal+comm) FROM emp;

5.别名

#查询结果中可以给列起别名加以说明

/*

列名 别名

列名 AS 别名

别名中如果包含特殊字符(空格),需要加双引号

双引号只会在起别名的时候出现,其他的所有地方都只能用单引号而不能用双引号

*/

SELECT ename xingming,job zhiwei FROM emp;

SELECT ename AS xingming,job AS zhiwei FROM emp;

SELECT ename 姓名,job 职位 FROM emp;

SELECT ename "xing ming",job "zhi wei" FROM emp;

#别名主要用来标识运算结果

SELECT ename,(12*sal)*0.1+500 AS nianzhongjiang FROM emp;

6.表达式

#表达式根据数据类型的不同分为数字表达式、字符表达式和日期表达式

#手动输入的表达式可以写在select后面,表中有多少行,表达式就显示多少次

#手动输入数字表达式可以直接写,日期和字符表达式必须加上单引号

SELECT 123.456,12*60*48,'I am the king' FROM emp;

#mysql允许只写select,不写from;oracle必须要写select和from,不能缺少

#如果要查询的数据都是手动输入,与表中数据无关,可以不写from

SELECT 123.456,12*60*48,'I am the king';

SELECT 'who are you',ename FROM emp;

SELECT job,'JOB' FROM emp;

#手动字符串必须加单引号,mysql在windows平台字符串不区分大小写,但是在linux区分大小写

#其他的数据库包括编程语言,字符串都要区分大小写

7.distinct去重

SELECT job FROM emp;

SELECT DISTINCT job FROM emp;

SELECT DISTINCT deptno FROM emp;

#多列去重

SELECT DISTINCT job,deptno FROM emp;

#普通列不能和去重的列同时查询,因为行数不匹配,不能组成一张表

#select ename,distinct job from emp;

8.limit分页查询

SELECT * FROM emp;

#如果在查询结果中,想要得到固定某几行的结果,使用limit

#limit 写在查询语句最后

#limit m,n 表示从第m行开始显示n行数据,第一行的行号是0

SELECT * FROM emp

LIMIT 2,5;

#limit n 表示显示前n行数据

SELECT * FROM emp

LIMIT 3;

第三章 限定和排序

1.where子句限定范围

#where子句后面必须是一个完整的逻辑表达式,结果只有两种true或者false

#在where子句中,逻辑表达式通常是比较运算,比较条件是否满足

# = > < >= <= !=(<>)

#where子句限定条件通常是用表中的某一列数据作为条件,返回满足条件的数据

#查询20号部门的员工信息

SELECT * FROM emp

WHERE deptno = 20;

#查询工资高于2000的员工信息

SELECT * FROM emp

WHERE sal > 2000;

#查询职位不是manager的员工信息

SELECT * FROM emp

WHERE job != 'MANAGER';

#手动输入字符串要加单引号,最好在匹配的时候大小写一致

#查询年薪小于20000的员工信息

#列的别名不能出现在where子句中

SELECT ename,job,sal,12*sal nianxin,deptno FROM emp

WHERE 12*sal < 20000;

#其他的数据库不支持*加上其他列一起查询,mysql允许

SELECT *,12*sal nianxin FROM emp;

#where子句中的条件也可以是两列数据相互比较

SELECT * FROM emp

WHERE sal < comm;

#where子句中作为条件的列可以不出现在select后面,但是这样的语句结果不够直观

SELECT ename,job,deptno FROM emp

WHERE sal <= 1500;

#where子句中比较运算符的两端数据类型必须一致

#如果是其他数据库,数据类型不一致时会直接报错

#mysql由于是弱数据类型的语言,所以不会报错,只是这样的语句没有意义

SELECT * FROM emp

WHERE ename > 2;

#如果没有数据满足条件,则一行数据都没有

SELECT * FROM emp

WHERE deptno > 200;

#如果有满足条件的数据,至少会返回一行,只是可能数据的值是空值

SELECT comm FROM emp

WHERE ename = 'SMITH';

2.常用的特殊比较运算

#in(value1,value,2...valueN), 列表匹配

SELECT * FROM emp

WHERE job IN ('MANAGER','CLERK','PRESIDENT');

#between 最小值 and 最大值,范围匹配,最大值和最小值的位置不能变

SELECT * FROM emp

WHERE sal BETWEEN 1500 AND 3000;

#like, 模糊匹配(对字符)

#通配符,可以匹配或者代表其他字符的特殊符号

# _ 表示1个任意字符

# % 表示任意个任意字符,包括0个1个和多个

SELECT * FROM emp

WHERE ename LIKE 'S%';

SELECT * FROM emp

WHERE ename LIKE '%S';

SELECT * FROM emp

WHERE ename LIKE '%A%';

SELECT * FROM emp

WHERE ename LIKE '_A%';

SELECT * FROM emp

WHERE ename LIKE '_____';

#is null, 匹配空值(不能写成 =null)

SELECT * FROM emp

WHERE comm IS NULL;

3.逻辑运算

<
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值