MySql教程

Mysql数据库的常见查询语句

本文主要是介绍Mysql数据库的常见查询语句,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

      今天给大家分享的是一些关于Mysql的基础知识,主要是关于mysql的,先说说所有的数据库的相关知识吧,遵循递进呀!

目录

常用查询分为以下几类:

​​​​​​一.基础查询

二.条件查询

三.排序查询


​​​​​​​

一.数据库的好处

1.可以持久化数据到本地

2.结构化查询

二.数据库的常见概念

1.DB: 数据库,存储数据的容器

2.DBMS: 数据库管理系统,又称为数据库软件或数据库产品,用于创建或管理DB

3.SQL: 结构化查询语言,用于和数据库通信的语言 ,不是某个数据库软件特有的,而是几乎所有的主流数据库软件通用的语言

对于oracle来讲,数据库放表空间,表空间里放表,表里放数据

orcl是oracle的默认数据库的名字

数据库中数据最终是放在文件中的,文件放在磁盘中

因为传统的数据库中的数据在磁盘存放,磁盘读写速度较慢;所有现在出现了内存数据库

所谓内存数据库,就是数据放在内存中.读写速度比较快.

三.数据库存储数据的特点

1.数据存放到表中,然后表再放到库中

2.一个库中可以有多张表,每张表具有唯一的表名用来标识自己

3.表中有一个或者多个列,列又称为 ''字段'',相当于java中"属性"

4.表中的每一行数据,相当于java中的''对象''

四.常见的数据库管理系统

关系型数据库: mysql, oracle, db2 , sqlserver


下面就要进入正题了,什么是Mysql呢?

一.MySQL的背景

前身属于瑞典的一家公司,MySQL AB

08年被sun公司收购

09年sun被oracel(甲骨文公司)收购

二.MySQL的优点

1.开源,免费,成本低

2.性能高,移植性也好

3.体积小,便于安装

三.MySQL的安装

属于c/s架构的软件,一般来讲安装服务端

企业版

社区版(免费)

版本:5.5 5.6 5.7 8.0

四.MySQL服务的启动和停止

方式一: 通过命令行

net start 服务名

net stop 服务名

方式二: 计算机--右击--管理--服务

五.MySQL服务的登录和退出

登录: mysql [-h 主机名 -p 端口名] -u 用户名 -p密码 如果是本机登录数据库,[-h主机名 -p端口名]可以不写.

退出: exit或 ctrl+C


不对不对,好像又有点跑题了,今天的真正的重点要来了! Mysql的常见查询语句到底有哪些呢?

常用查询分为以下几类:

​​​​​​一.基础查询

(一).语法

select   查询列表   from  表名;

(二).特点

1.查询列表可以是字段,常量,表达式,函数,也可以是多个

2.查询结果是一个虚拟表

(三).式例

use 数据库名; (第一步)

DESC +表名 查看表结构的详细信息

1.查询单个字段

select 字段名 from 表名;

2.查询多个字段

select 字段名,字段名 from 表名;

3.查询所有字段

select * from 表名;

4.查询常量

select 常量值;

注意:字符型和日期型的常量值必须用单引号引起来,数值型不需要

5.查询函数

select 函数名(实参列表);

注意:数据库中的函数都有返回值!!! 查询函数体,并查询出对应的返回值.

6.查询表达式

select 100/1234;

7.起别名  (为了更方便的使用该表,起个简单的名字)

1.AS 别名

2.空格 别名

8.去重

select distinct 字段名 from 表名;

注意:不能同时两个或多个字段同时去重(select distinct a,b from 表名; )

9. +号

作用:做加法运算

select 数值+数值; 直接运算

select 字符+数值;先试图将字符转换成数值,如果转换成功,则继续运算;否则转换成0,再做运算

select null+值; 结果都为null

10.(补充)concat函数

功能:拼接字符

select concat(字符1,字符2,字符3.....);

11.(补充)ifnull函数

功能:判断某字段或表达式是否为null,如果为null 返回指定的值,否则返回原本的值

select ifnull (字段名,0) from 表名;

12.(补充)isnull 函数

功能:判断某字段或者表达式是否为null,如果是,则返回1(true),否则返回0(false)

二.条件查询

(一).语法

select 查询列表 3 执行步骤(123)

from 表名 1

where 筛选条件 2

(二).筛选条件的分类

1.简单条件运算符

> < = <>(不等于 推荐) !=(不等于) (安全等于)

2.逻辑运算符

java sql

&& and

|| or

! not

3.模糊查询

#案例1: 查询员工名中包含字符a的员工信息

SELECT  *  FROM  `employees`  WHERE  `last_name` LIKE '%a%';

%代表通配符 任意一个字符 %

#案例2: 查询员工中第三个字符为n,第五个字符为l的员工名和工资

SELECT  `last_name`, `salary`  FROM  `employees`  WHERE  `last_name` LIKE '__n_l%'

#第三个字符为n,第五个字符为l

#案例3: 查询员工名中第二个字符为_的员工名

SELECT  `last_name`  FROM  `employees`  WHERE  `last_name` LIKE '_\_%';

#用\隔起来 表示查找第二位置上为_的内容

`last_name` LIKE '_$_%' ESCAPE '$'; /自定义转义一个符号

ESCAPE 自定义 转义 一个符号

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

select * from 表名 where 字段名 like '1__'; 查条件为100多的表名里面的内容

between and

1.使用between and 可以提高语句的简洁度

2.包含临界值

3.两个临界值不能调换顺序

#案例1: 查询员工编号在100到120之间的员工信息

SELECT * FROM  `employees`  WHERE `employee_id` BETWEEN 100 AND 120;

in

含义:判断某字段的值是否属于in列表中的某一项

特点:

1.跟or效果一样,使用in提高语句简洁度

2.in列表的值类型必须一致或者兼容

3.in不支持使用通配符

#案例: 查询员工的工种编号是 IT_PROT,AD_VP,AD_PRES中的一个员工名和工种编号

第一种写法:

SELECT  `last_name`,  `job_id`  FROM  `employees`  WHERE  `job_id` = 'IT_PROT' OR `job_id` = 'AD_VP' OR `job_id`='AD_PRES';

第二种写法:

SELECT  `last_name`,  `job_id`  FROM  `employees`  WHERE  `job_id` IN ('IT_PROT','AD_VP','AD_PRES');

is null / is not null:用于判断null值

#案例1: 查询没有奖金的员工名和奖金率

SELECT  `last_name`,  `commission_pct`  FROM  `employees`  WHERE `commission_pct` IS NULL;

#案例2: 查询有奖金的员工名和奖金率

SELECT  `last_name`,  `commission_pct`  FROM  `employees`  WHERE  `commission_pct` IS NOT NULL;

is null  pk   <=>

is null :仅仅可以判断null值,可读性较高,建议使用

<=>:既可以判断null值,又可以判断普通的数值,可读性较低,一般不建议使用

​​​​​​​

三.排序查询

(一)语法:

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

(二)特点:

1.asc代表的是升序;desc代表的是降序

如果不写,默认是升序

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

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

案例1:查询员工信息,要求工资从高到低排序

select * from employees order by salary desc; (降序)

select * from employees order by salary; (升序)

这篇关于Mysql数据库的常见查询语句的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!