【Mysql数据库基础01】去重、连接字符、模糊查询、通配符、检索表的结构信息
去重、连接字符、模糊查询、通配符、检索表的结构信息
- 1 去重 distinct
- 2 连接字符函数 concat(str1,str2,...)
- 3 模糊查询
- 3.1 like 包含
- 3.2 通配符
- 3.3 between and
- 3.4 in
- 3.5 is null
- 4 安全等于
- 5 检索表的结构信息 desc
- 6 课后练习
1 去重 distinct
使用 DISTINCT 关键字,可以从结果集中去除重复的行,只显示不同的值。
SELECT DISTINCT department_id FROM employees;
2 连接字符函数 concat(str1,str2,…)
str1, str2, ... 是要连接的字符串参数。可以将任意数量的字符串作为参数传递给 CONCAT() 函数,它将这些字符串连接在一起并返回结果。
SELECT CONCAT(last_name,first_name) AS 姓名 FROM employees;
3 模糊查询
3.1 like 包含
使用 LIKE 关键字结合通配符进行模糊查询,从而进行部分字符串匹配。
查询员工名里包含a的员工的所有信息。
SELECT * FROM employees WHERE last_name LIKE '%a%';
3.2 通配符
- %: 匹配任意字符,表示零个或多个字符。
- _: 匹配单个字符。
查询员工名中第三个字符为e,第五个字符为a的员工名和工资。
SELECT last_name,salary FROM employees WHERE last_name LIKE '__e_a%';
3.3 between and
查询员工id在100到120之间的员工信息。
SELECT * FROM employees WHERE employee_id between 100 and 120;
3.4 in
在MySQL中,关键字和函数名不区分大小写,后面的博客为了方便我就一律用小写了。
查询员工id是IT_PORT,AD_VP,AD_PRES的名字和工种编号。
select last_name,job_id from employees where job_id in ('IT_PORT','AD_VP','AD_PRES');
3.5 is null
查询没有奖金的员工名。
select last_name from employees where commission_pct is null;
4 安全等于
没有奖金:
where commission null;
工资为12000:
where salary 12000;
安全等于既可以判断空值,又可以判断普通的值。
is null仅仅只可以判断空值。
5 检索表的结构信息 desc
DESC 是一个用于描述表结构的 SQL 命令。
DESC table_name;
其中:
- DESC 是用于检索表的结构信息的关键字。
- table_name 是要查看表结构的表的名称。
执行 DESC table_name; 命令将返回有关指定表的结构信息,包括列名、数据类型、键信息等。例如,如果您想查看名为 employees 的表的结构信息,可以执行以下查询:
DESC employees;
执行这个查询后,将会返回表 employees 的结构信息。
6 课后练习
一、查询没有奖金,且工资小于18000的salary,last_name
select salary,last_name from employees where salary
二、查询employees表中,job_id不为 'IT’或者工资为12000的员工信息
select * from employees where job_id 'IT' or salary = 12000;
三、査看部门departments表的结构
desc departments;
四、查询部门departments表中涉及到了哪些位置编号
select distinct location_id from employees;
五、试问select * from employees;和select * from employees where commission_pct like’%%’ and last name like ‘%%’
结果是否一样?并说明原因。
答:结果不一样,如果判断的字段有null值,后者不会查询到奖金率为0的情况;如果没有null值,查询的结果将是一样。