MySQL 03 SQL语言的分类 、Mysql 语法、Navicat的使用、查询操作

一、SQL语言 的分类

DQL语言:Data Query Language 数据查询语言
select
DML语言:Data Manipulate Language 数据操纵语言
insert、update、delete
DDL语言:Data Define Language 数据定义语言
create、alter、drop
DCL语言:Data Control Language 数据控制语言
commit、rollback

二、Mysql 语法规范

1、不区分大小写
2、每句话用 ; 或 \g 结尾
3、MySQL的注释:
单行注释: #(可以无空格)
单行注释:-- (必须有空格)
多行注释:/* / 、 /* **/ (/ Linux斜线 、 \ window斜线)
4、sql语句可以写在一行或多行,各子句一般分行写
5、关键字不能缩写也不能分行
6、用缩进提高语句的可读性

三、Navicat的使用

导入数据库

建立连接—>右键、新建数据库(数据库名保持一致)
在这里插入图片描述
—>确定—>右键girls 选择 运行SQL文件
在这里插入图片描述
—>选择SQL文件所在位置—>点击开始
在这里插入图片描述

在这里插入图片描述
完成导入

四、查询操作

1、基础查询

单行注释:#、–
多行注释:/* */

#基础查询
select:查看、选择、显示
语法:select 要显示的东西,类似于 System.out.println(要打印的东西);

要显示的东西:①常量②表达式③函数④字段,但要显示字段必须添加from 表名
语法: select 字段 from 表;

#1.显示常量
SELECT 100;
SELECT ‘john’;

#2.显示表达式
SELECT 98*23;

#3.显示函数(方法)
SELECT LENGTH(‘john’);
SELECT VERSION();

#4.显示表中的字段
SELECT last_name FROM employees;

#5.显示表中的多个字段SELECT last_name,phone_number,first_name,salary,commission_pct,manager_idFROM employees;

#6.显示表中所有字段
SELECT * FROM employees;

#7.起别名
#方式一:
SELECT last_name AS 姓,first_name AS 名 FROM employees;
#方式二:
SELECT last_name 姓,first_name 名 FROM employees;

#示例:别名:out name
SELECT last_name “out name” FROM employees;

#8.如何去重
#查询employees表中的所有部门编号
– distinct
SELECT DISTINCT department_id FROM employees;

2、条件查询

#条件查询
概念:根据指定的条件过滤出数据
语法:select 字段 from 表名where 条件;
分类:
1、按条件表达式查询
条件运算符:> 、< 、>=、 <=、 =、 !=、 <>、 ,<=>安全等于,用于判断是否为null
2、按逻辑表达式查询
逻辑运算符:
and、&& 两个条件都为true,结果为true,反之为false
or、|| 两个条件只要有一个为true,结果为true,反之为false
not、! 如果连接的条件本身为false,结果为true,反之为false
优先级:not > and > or

3、模糊查询

#模糊查询

1.like

一般搭配着通配符使用,用作字符型的判断
通配符:% 任意多个字符、_ 任意单个字符

#案例1:查询姓名中包含字符 e的员工信息
SELECT * FROM employees
WHERE last_name LIKE ‘%e%’;

#案例2:查询姓名中第二个字符为e,第四个字符为a的员工信息
SELECT * FROM employees
WHERE last_name LIKE ‘_e_a%’;

#案例3:查询姓名中第三个字符为_的员工信息
SELECT * FROM employees
WHERE last_name LIKE ‘___%’;
斜线 \ —> window 斜线
反斜线 / —> Linux 斜线

#ESCAPE 自定义 转移符
SELECT * FROM employees
WHERE last_name LIKE ‘__KaTeX parse error: Expected group after '_' at position 1: _̲%' ESCAPE '’;

// ESCAPE ’ ′ ; 这 句 话 是 让 '; 这句话是 让 ; 拥有转义字符的形式和功能

UPDATE employees SET last_name=’’ ‘’ WHERE employee_id=100;

2.between and

特点:在…之间
①等价于 使用 字段>=值1 and 字段<=值2
②两个临界值是包含的 [1,10]
③两个临界值不能颠倒顺序
#案例1:显示出表employees部门编号在80-100之间 的姓名、职位
SELECT last_name,job_id,department_id
FROM employees
WHERE department_id BETWEEN 80 AND 100; 对
WHERE department_id BETWEEN 100 AND 80; 错

#等价于
SELECT last_name,job_id,department_id
FROM employees
WHERE department_id<=100 AND department_id>=80;

3.in

特点:判断某个字段的值是否在某个列表内
in(值1,值2,…)
等价于 or
#案例1:显示出表employees的manager_id 是 100,101,110 的员工姓名、职位
SELECT last_name,job_id,manager_id
FROM employees
WHERE manager_id IN(100,101,110);

#等价于
SELECT last_name,job_id,manager_id
FROM employees
WHERE manager_id=100 OR manager_id=101 OR manager_id = 110;

#案例2:查询 job_id 为AD_VP或ST_MAN或SA_MAN
SELECT last_name,job_id,manager_id
FROM employees
WHERE job_id IN(‘AD_VP’,‘S__MAN’); ×

4.is null/is not null*/

#案例1:查询没有奖金的员工
SELECT * FROM employees
WHERE commission_pct IS NULL;

#案例2:查询有奖金的员工
SELECT * FROM employees
WHERE commission_pct IS NOT NULL;

SELECT * FROM employees
WHERE NOT(commission_pct IS NULL);

SELECT * FROM employees WHERE last_name IS NULL;

常见错误

#1.表名不存在
#TABLE ‘myemployees.employee’ doesn’t exist

#2.列名错误
#Unknown column ‘phone_numbe’ in ‘FIELD LIST’

#3.语法错误
#You have an error in your SQL syntax; check the manual
#that corresponds to your MySQL server version
#for the right syntax to use near 'FROM employees
顺序:
Select
From
Where
Group by
Having
Order by
limit

4、排序查询

#排序查询
语法:select 字段|表达式|常量 from 表【where 条件】order by 排序的字段;

1、升序 asc (默认可省略)降序 desc
2.可以按表达式、函数、别名、多个字段进行排序
3.一般来讲order by放到查询的语句的最后,在不使用分页的情况下

1、按单个字段进行排序

SELECT * FROM employees ORDER BY salary ;
SELECT * FROM employees ORDER BY salary DESC;

2、按多个字段进行排序

SELECT * FROM employees
ORDER BY salary DESC,employee_id ASC;

3、按表达式排序

#案例:按年薪降序
SELECT ,salary12*(1+IFNULL(commission_pct,0)) 年薪
FROM employees
ORDER BY salary12(1+IFNULL(commission_pct,0)) DESC;

4、按别名排序

#案例:按年薪降序
SELECT ,salary12*(1+IFNULL(commission_pct,0)) 年薪
FROM employeesORDER BY 年薪 DESC;

5、按函数排序

#案例:按姓名中的字节长度大小降序
SELECT last_name,LENGTH(last_name)
FROM employees
ORDER BY LENGTH(last_name) DESC;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值