MySQL 基础篇(学习笔记)

这篇博客主要介绍了MySQL的基础操作,包括登录退出、语法规范、DQL(数据查询语言)的使用,如SELECT语句、别名、去重、条件查询、模糊查询等。详细讲解了LIKE、BETWEEN AND、IN、IS NULL等操作符的应用,并对比了IS NULL与<=>的差异。
摘要由CSDN通过智能技术生成

MySQL 基础篇

  • 一、NySQL服务的登录和退出

方式一:通过mysql自带的客户端 (只限于root用户)

方式二:通过windows自带的客户端登录:

mysql【-h主机名-P端口号】-u用户名-p密码
#for example
mysql -h localhost -P3306 -u root -p8493

退出:

exit或ctrl+C
  • 二、 MySQL的常见命令
1.查看当前所有的数据库
show databases;

2.打开指定的库:
use 库名;

3.查看当前库的所有表
show tables;

4、其他库的所有表:
show tables from 库名

5、创建表:
create table 表名(
  列名 列类型,
  列名 列类型,
  );
#create table stuinfo(
  id int,
  name varchar(20));
  
  
 6、查看表结构
 desc 表名;
 
 7.查看服务器的版本:
 方式一: 登录到mysql服务端
 select version();
 
 方式二:没有登录到mysql服务端
 mysql --version
 或
 mysql --V

MySQL的语法规范

  1. 不区分大小写,但是建议关键字大写,表明,列名小写
  2. 每条命令最好用分号结尾 ;或者\g
  3. 每条命令根据需要,可以进行缩进和换行
  4. 注释
  • 单行注释:#注释文字
  • 单行注释:-- 注释文字
  • 多行注释:/* 注释文字 */

DQL( data query language) select语句

  • 1.查询常亮值
SELECT 100;
SELECT 'Join';
  • 2.查询表达式
SELECT 100*98;
  • 6.查询函数
SELECT VERSION();
    1. 起别名(为字段起别名)

/*-- ①可以方便理解 ②如果要查询的字段有重名的情况,使用别名可区分开来
*/
#方式一: SELECT 100%98 AS 结果; SELECT last_name AS 姓, first_name AS 名 FROM employees;
#方式二: SELECT last_name 姓,first_name 名 FROM employees;

#案例:查询salary,显示结果为out put

SELECT salary AS "out put" FROM `employees`;
  • 8.去重 (DISTINCT)
    #案例:查询员工表中涉及到所有的部门编号
SELECT DISTINCT `department_id` FROM `employees`; 
    1. +号的作用
/* java 中的+ 号: ①运算符,两个操作数都为数值型 ②链接符,只要有一个操作数为字符串
> 
> mysql中的+号: 仅仅只有一个功能:运算符
> 
> select 100+90;  两个操作数都为数值形,则做加法运算 select ’123‘+90;
> 其中一方为字符型,试图将字符型数值型转换成数值型
>                      如果转换成功,则继续做加法运算  select 'john'+90;   如果转换失败,则讲字符数值转换成0    select null+10; 只要其中一方为null,则结果肯定为null
> */

#案例:查询员工名和姓链接成一个字段,并显示为 姓名

SELECT CONCAT('a','b','c') AS result;


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

进阶2: 条件查询

/*
语法:
        select 
               查询列表
        from
               表名
        where 
                筛选条件;
                
分类:
	一、按条件表达式筛选
	简单条件运算符:><=!=<>(不等于),>= , <=
	
	二、按逻辑表达式筛选
	逻辑运算符:
	作用;用于连接条件表达式
	             && || !
	             and or not
	 
	 &&and:两个条件都为true,结果为true,反之为false
	 ||or :只要有一个是true。结果为true,反之false
	 !或 not:如果连接的条件本身为false。结果为true,反之false
	 
	 
三、模糊查询
	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;
	

#二、按逻辑表达式筛选

#案例1:查询工资在10000到20000之间的员工名、工资以及奖金

SELECT 
	`last_name`,
	`salary`,
	`commission_pct`
FROM 
	`employees`
WHERE 
	salary>=10000
AND
	salary<=20000;

#案例2:查询部门编号不是在90到110之间,或者工资高于15000的员工信息

SELECT
	*
FROM 
	`employees`
WHERE	
	`department_id`<90 OR `department_id`>110 OR `salary`>15000;
	

#或者

SELECT
	*
FROM 
	`employees`
WHERE	
	NOT(`department_id`>=90 AND `department_id`<=110) OR `salary`>15000;
	

三、模糊查询

/*
like
特点:
①一般和通配符搭配使用
通配符:
% 任意多个字符,包含0个字符
_ 任意单个字符

between and
in
is null | not null

*/

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

SELECT 
	*
FROM
	employees
WHERE
	`last_name` LIKE '%a%';  #(代表任意位置都可以)

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

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

#案例3:查询员工名中第二个字符为_的员工名 用\进行转义

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

#或者也可以自己设定转义符

SELECT 
	last_name
FROM 
	`employees`
WHERE 
	`last_name` LIKE '_$_%'  ESCAPE '$';
  1. #between and

#案例:员工编号在100到120之间的所有员工信息

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

in

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

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

is null

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

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

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

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

#安全等于 <=> 也可以像 is null 判断 / 普通查询

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

is null VS. <=>

<=>: 既可以判断NULL值,有可以判断普通的数值,可读性较低
IS NULL :仅仅可以判断NULL值,可读性较高

#练习:查询员工好为176的员工的姓名和部门号和年薪

SELECT
	`last_name`,
	`department_id`,
	`salary`*12*(1+IFNULL(`commission_pct`,0))  AS '年薪'
FROM
	`employees`
WHERE
	`job_id`= 126
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值