数据库相关概念
1.DB:数据库,保存一组有组织的数据的容器
2.DBMS:数据库管理系统,又称数据库软件,用于管理DB中的数据
3.SQL:结构化查询语言,用于和DBMS通信的语言
登录MySQL的方法:
(1)mysql -h localhost -P 3306 -u root -proot
(2)mysql -u root -p****(密码)
退出
exit
select *from jobs;
select *from employees;
select 100;
#函数
SELECT VERSION();
#起别名
SELECT 100*90 as asult ;
SELECT last_name AS 姓,first_name AS 名 FROM employees;
#使用空格
SELECT last_name 姓,first_name 名 FROM employees;
#out 是关键字,需要加上双引号,out put 是结果
SELECT salary AS "out put "FROM employees;
#去重 查询员工表所以部门编号
SELECT DISTINCT department_id FROM employees;
#+ 号的作用 查询员工名和姓链接成一个字段,并显示成姓名
SELECT CONCAT("a","b");
SELECT CONCAT(last_name,first_name) AS姓名
from employees;
#展示departments
DESC departments;
SELECT DISTINCT job_id from employees;
#查询employees 中所有列连接起来,(但是commission_pct中有NULL,需要用ifnull判断)
SELECT IFNULL(commission_pct,0) AS 奖金率,
FROM
employees;
SELECT CONCAT(first_name,last_name,IFNULL(commission_pct,0))
AS "out put"
FROM employees;
#简单条件运算符:< > <> >= <=
#逻辑运算符: && || ! and ,or not
#模糊查询:like between and in is null
#查询工资>12000的员工信息
SELECT * from employees
WHERE salary>12000;
#查询部门编号不等于90号的员工名和部门编号
SELECT last_name,department_id
FROM employees
WHERE department_id<>90;
#查询工资在10000到20000之间的员工名,公资以及奖金
SELECT last_name,salary,commission_pct
from employees
where salary>10000 and salary<20000;
#查询部门编号不是在90到110之间,或者工资高于15000的员工信息
SELECT *
FROM employees
WHERE department_id not BETWEEN 90 AND 110 OR salary>15000;
#like 查询员工名中包含字符a的员工信息
SELECT *
FROM employees
WHERE last_name like '%a%';
#查询员工名中的三个字符为a,第五个字符为e的员工名和工资
SELECT last_name,salary
FROM employees
WHERE last_name like '__a_e%';
#查询员工名中第二个字符为—的员工名 转义\
SELECT last_name
FROM employees
#WHERE last_name LIKE '_\_%';
where last_name LIKE '_$_%' ESCAPE '$';
#查询员工编号在100到120之间的员工信息
SELECT *
FROM employees
WHERE employee_id BETWEEN 100 AND 120;
#查询员工工种编号是:IT_PROG,AD_PRES中的一个员工名和工种编号
#in 列表的值类型必须一致
SELECT last_name,job_id
FROM employees
WHERE job_id in ('IT_PROG',' job_id') ;
#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;
#安全等于 <=>
#查询没有奖金的员工名和奖金率
SELECT last_name,commission_pct
FROM employees
WHERE commission_pct <=> null;
#查询工资>12000的员工信息
SELECT * from employees
WHERE salary<=>12000;
/*
is null :仅仅可以判断null值,可读性高
<=>: 既可以判断null值,又可以判断普通的数值,
可读性低
*/
#查询员工号为176的员工的姓名和年薪
SELECT last_name,salary*12*(1+IFNULL(commission_pct,0)) as 年薪
FROM employees
WHERE employee_id=176;