其他分享
首页 > 其他分享> > 第二章 数据查询语言DQL

第二章 数据查询语言DQL

作者:互联网

1 mysql登录与退出

启动服务 

net start  服务名

停止服务

net stop  服务名

 

登录

mysql -h主机名 -p端口号  -u用户名 -p密码/-p

退出

exi或者ctrl +c


 

2  常用基础语句

查询所有数据库

show databases;

使用某一个数据库

use  databasename;

显示某数据库中的所有表

show tables;

show tables from databasename;

显示表的属性结构 

desc tablename;


 

3 MySQL语法规范

不区分大小写,建议关键字大写,表名、列名小写

每句话用;或\g结尾

每条命令根据需要,各子句一般分行写,关键字不能缩写也不能分行

注释

单行注释:#注释文字

单行注释:-- 注释文字(要有空格)

多行注释:/* 注释文字 */


 

4 基础查询

语法

select  查询列表  from 表名 ; 

查询列表可以是:表中的字段、常量、表达式、函数
查询的结果是一个虚拟的表格

注意:在进行查询操作之前要指定所有的库:use myemployees;

查询表中的单个字段:select last_name from employees;

查询表中的多个字段:select last_name, salary, email from employees;

查询表中的所有字段:select * from employees;

按F12进行格式化

 

 着重号`字段名` 

 用来区分是否是关键字或者字段

选中语句进行执行或F9

查询常量值:

select 100;select ‘john’;

查询表达式:select 100*98;

查询函数:select version();

 

起别名

如果查询的字段有重名的情况,使用别名可以区分开来

语法格式

select 字段名 as 别名 from  tablename  as 别名;

select 字段名  别名 from  tablename as 别名;

如果别名有特殊符号要加双引号:

select salary as “out put” from employees;

 

去重

查询员工表中涉及到的所有部门编号:select distinct department_id from employees;

去重这里有一个重点?distinct只能放在所有字段前,起到对所有字段联合去重的作用。举个例子说明一下。

select  distinct name,age from  student;

原表如下:

---------------------------------------------------

        id        |        name      |      age

        1         |        wang1     |       12

        2         |        wang2     |       12

        3         |        wang3     |       16

---------------------------------------------------

最终我们执行完语句后,得出的结果仍是3条结果,原因是因为,distinct先按照 name去重、在此基础上按照age去重,只有当name、age同时不同时该数据才会被保留。

 

+ 号的作用

两个操作数为数值型,则做加法运算

只要其中一方为字符型,试图将字符型数值转换成数值型,如果转换成功,则继续做加法运算;

如果转换失败,则将字符型数值转换成0

只要其中一方为null,则结果肯定为null

使用concat连接字符串:

            查询员工的名和姓连接成一个字段,并显示为姓名:select concat(last_name,first_name) as 姓名 from employees;

ifnull函数检测是否为null,如果为null,则返回指定的值,否则返回原本的值:

select ifnull(commission_pct, 0) as 奖金率, commission_pct from employees;

isnull函数判断某字段或表达式是否为null,如果是,则返回1,否则返回0

 


5 条件查询

语法:select 查询列表 from 表明 where 筛选条件;

 

按条件表达式筛选

条件运算符:

>     <

=     !=

<>   >=

<=

 

按逻辑表达式筛选

主要作用:用于连接条件表达式
逻辑运算符

&&         ||           !

and       or         not

 

 

模糊查询

like

一般和通配符搭配使用,可以判断字符型数值或数值型。

通配符

% 任意多个字符,包含0个字符
_ 任意单个字符

 

between and

in

is null

 

安全等于 <=>


 

6 排序查询

语法

select 查询列表 from 表【where 筛选条件】 order by 排序列表 【asc|desc】

注意事项 

asc代表的是升序,desc代表的是降序,如果不写,默认是升序

order by子句中可以支持单个字段、多个字段、表达式、函数、别名

order by子句一般是放在查询语句的最后面,但limit子句除外

 


7 常见函数

分类

 

单行函数

字符函数

length

获取参数值的字节个数

concat

拼接字符串

upper/lower

将字符串变成大写/小写

 

substr/substring

截取字符串

              substr(字符串,索引)

              substr(字符串,索引,指定长度)

              索引从1开始

trim

去掉字符串前后的空格或子串

lpad

用指定的字符实现左填充指定长度(了解)

rpad

用指定的字符实现右填充指定长度(了解)

replace

替换,替换所有的子串

 

 

数学函数

round

四舍五入

ceil

向上取整,返回>=该参数的最小整数

floor

向下取整,返回<=该参数的最大整数

truncate

截断,小数点后截断到几位

mod

取余,被除数为正,则为正;被除数为负,则为负

rand

获取随机数,返回0-1之间的小数

 

日期函数

now(重点)

返回当前系统日期+时间

curdate

返回当前系统日期,不包含时间

curtime

返回当前时间,不包含日期

可以获取指定的部分,年、月、日、小时、分钟、秒

str_to_date(重点)

将日期格式的字符转换成指定格式的日期

SELECT  STR_TO_DATE('1998-3-2', '%Y/%c/%d') AS output ;

date_format(重点)

将日期转换成字符串

SELECT   DATE_FORMAT(NOW(), '%y年%m月%d日)') AS output ;

datediff

返回两个日期相差的天数

monthname

以英文形式返回月

 

8 流程控制函数

 

 

 

 

 

 

 

 

 

 

 

标签:字符,null,函数,查询,DQL,查询语言,第二章,select,name
来源: https://blog.csdn.net/wqj_710852747/article/details/116517715