mysql的基础查询和条件查询

数据库

MySQL数据库隶属于MySQL AB公司,总部位于瑞典,后被Oracle收购

优点:
  • 成本低:开放资源,一般可以免费使用
  • 性能高:执行很快
  • 简单:容易安装和使用
DBMS分为两类:
  1. 基于共享文件系统的DBMS(Access)
  2. 基于客户机—服务器的DBMS(MySQL、Oracle、SQL Server)
MySQL的启动和停止
  1. 计算机右击—>管理—>服务与应用程序—>服务

  2. 命令行一管理员身份打开

    net start mysql ---------->mysql名
    net stop mysql
    
MySQL服务的登录和退出
  1. 通过MySQL下的Command Line Client,只适合root用户

  2. 通过命令行

    mysql -h localhost -P 3306 -u root -ppassword
    命令	   连接主机名   端口号	  用户名	密码
    

    如果连接的是本机的端口号,可以直接省略为:

    mysql -u root -ppassword
    
MySQL的常见命令
1.show databases;展示数据库
2.use 库名;打开指定的库
3.show tables;查看当前库的所有表
4.show tables from 库名;查看其他库的所有表
5.create table 表名(
	列名 列类型,
    列名 列类型,
    ......
)
6.desc 表名;查看表结构
7.查看服务器版本
	方式1:登录到mysql服务端
		  select version();
	方式2:没有登录到mysql服务端
		  mysql --version 或 mysql --V
MySQL的语法规范
  1. 不区分大小写,但建议关键字大写,表名、列名小写

  2. 每条命令用分号和\p结尾,建议使用分号;

  3. 每条命令根据需要,可以进行缩进和换行,建议关键字单独一行

  4. 注释:

    • 单行注释

      • #注释文字
      • – 注释文字(注意-- 和 注释文字之间必须有空格)
    • 多行注释:/*

      ​ 注释文字

      ​ */

DQL语言:Data QueryLanguage 数据查询语言
基础查询:

语法:

select 查询列表 from 表名;

特点:

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

进阶一:基础查询

  1. 查询单个字段:

    SELECT last_name FROM employees;
    
  2. 查询多个字段:

    SELECT last_name,salary,email FROM employees;
    
  3. 查询所有字段:

    SELECT * FROM employees;
    
  4. 查询常量值:

    SELECT 100;
    SELECT 'john';
    
  5. 查询表达式:

    SELECT 100%8;
    
  6. 查询函数:

    SELECT VERSION();
    
  7. 起别名:

    • 便于理解
    • 如果要查询的字段有重名的情况,使用别名可以区分

    方式一:

    SELECT last_name AS 姓,first_name AS 名 FROM employees;
    

    方式二:

    SELECT last_name 姓,first_name 名 FROM employees;
    
  8. 去重:

    SELECT DISINCT department_id FROM employees;
    
  9. +号的作用:仅仅一个功能:运算符,没有连接作用

    SELECT 100+90;-------->190
    SELECT 'JONE' + 90;------------->90
    SELECT NULL + 90;---------->NULL
    

    在mysql中连接用concat

    SELECT CONCAT(last_name,first_name) AS 姓名 FROM employees;
    

    对于NULL的处理------------>ifnull()

    SELECT IFNULL(commission_pct,0) AS 奖金率,commission_pct FROM employees;
                 可能出现null的值  替换null的值
    

进阶二:条件查询

语法

SELECT 查询列表 FROM 表名 WHERE 筛选条件

分类:

  1. 按条件表达式筛选
    • 简单条件运算符:>、<、=、!=、<>、>=、<=
  2. 按逻辑表达式筛选
    • &&、||、!、and、or、not
  3. 模糊查询
    • like、between and、in、is null
一、

案例1:查询工资>12000的员工信息

SELECT * FROM employees WHERE salary > 12000;

案例2:查询部门编号不等于90的员工名和部门编号

SELECT last_name,department_id FROM employees WHERE department_id <> 90;
二、

查询工资在10000到20000之间的员工名

SELECT last_name FROM employees WHERE salary >= 10000 AND salary <= 20000;
或:
SELECT last_name FROM employees WHERE salary BETWEEN 10000 AND 20000;
三、
  1. like:一般和通配符搭配使用

    • 通配符:%任意多个字段,包含0个字符
    • 通配符:_任意单个字段

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

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

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

    SELECT last_name,salary FROM employees WHERE last_name like '__e_a%';
    

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

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

    ’ \ ’ 是mysql中默认的转义字符,也可以自定义转义字符:escape

    LIKE '_$_e%' ESCAPE '$'
    
  2. between and

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

    SELECT * FROM employees WHERE employee_id BETWEEN 100 AND 120;
    
    • 使用between and 可以提高语句的简洁度
    • 包含临界值
    • 两个临界值的位置不可以颠倒
  3. in:

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

    特点:

    1. 使用in提高语句简洁度
    2. in列表的值类型必须一致或兼容
    3. in内不支持通配符

    案例1:查找工作编号为IT_PROT、AD_YP的员工名字和工作号

    SELECT last_name,job_id FROM employees WHERE job_id IN('IT_PORT','AD_YP');
    
  4. is null:

    = 或 <> 不能用于判断null值,is null 或 is not null 可以判断null值

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

    SELECT last_name,commission_pct FROM employees WHERE commission_pct IS NULL;
    

    安全等于:<=>

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

    SELECT last_name,commission_pct FROM employees WHERE commission_pct <=> NULL;
    

    案例2:查询工资为12000的员工信息

    SELECT * FROM employees WHERE salary <=> 12000;
    

    is null 和 <=> 的比较:

    • is null:仅仅可以判断null值,可读性高,推荐
    • <=>:既可以判断null值,又可以判断数值,可读性低
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牧码文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值