MySQL数据库:第二章:基础查询

回退至Mysql数据库理论与实战
#进阶一:基础查询
语法:
select 查询列表 from 表名;
特点:
1、查询的结果集是一个虚拟表,并没有真实存在
2、查询列表支持常量、字段(列)、表达式、方法(函数)等
类似于 System.out.println(一个值);
补充:
1、去重
2、起别名
3、常见的函数
database()
version()
user()
ifnull()
concat()

USE myemployees;
#①查询常量
SELECT 100 ;#数值型的常量值,不需要加引号
SELECT '刘宝英';#字符和字符串在sql中都称为字符型,常量值需要使用单引号引起来!
#②查询表达式
SELECT 100*3;
SELECT 100%3;
#③查询单个字段
SELECT last_name FROM employees;
#④查询多个字段
SELECT last_name,hiredate ,salary FROM employees;
#⑤查询表中的所有字段  ★
#方式一
SELECT
    `employee_id`,
    `first_name`,
    `last_name`,
    `email`,
    `phone_number`,
    `job_id`,
    `salary`,
    `commission_pct`,
    `manager_id`,
    `department_id`,
    `hiredate`
FROM
    employees ;   
 #方式二
 SELECT * FROM employees;#*代表所有字段
 #⑥查询函数(方法)
 SELECT DATABASE();
 SELECT VERSION();
 SELECT USER();
 #补充:
 #⑦去重
 #查询员工表中的员工所在的部门有哪些
 SELECT DISTINCT department_id FROM employees;
 #⑧+号的作用
 /*
 java的加号:
 作用一:加法运算,当两个操作数都是数值型
 作用二:连接符,当至少一个操作数是String类型
 sql的加号:
 功能:加法运算
a、数值+数值:  select 100+2.5;
b、数值+字符:  select 100+'abc'; 试图将字符转换成数值,如果失败,则转成0,否则转成对应的数值
c、任意类型+null:select 100+null;
 */
 #案例:查询员工的姓名,将姓和名连接在一起显示
 SELECT first_name+last_name FROM employees;
 SELECT CONCAT(first_name,last_name) FROM employees;
 #⑨起别名
 /*
 别名一般不需要使用引号,但如果里面包含特殊符号,如空格。则必须使用单引号或双引号引起来
 */
#方式一:使用as
SELECT CONCAT(first_name,last_name) AS '姓 名' FROM employees;
#方式二:使用空格
SELECT CONCAT(first_name,last_name)   '姓 名' FROM employees;
#⑩查看表的结构
 DESC employees;
#1. 下面的语句是否可以执行成功
SELECT last_name , job_id , salary AS sal
FROM employees;
#2. 下面的语句是否可以执行成功
SELECT * FROM employees;
#3. 找出下面语句中的错误
SELECT employee_id , last_name,
salary * 12 "ANNUAL SALARY"
FROM employees;
#4. 显示表 departments 的结构,并查询其中的全部数据
DESC departments;
SELECT * FROM departments;
#5. 显示出表 employees 中的全部 job_id(不能重复)
SELECT DISTINCT job_id FROM employees;
#6. 显示出表 employees 的全部列,各个列之间用逗号连接,列头显示成 OUT_PUT
SELECT CONCAT(last_name,first_name,salary,email,phone_number,IFNULL(commission_pct,0)) out_put
FROM employees;
SELECT IFNULL(commission_pct,0),commission_pct  FROM employees;