SQL基础
1. 数据查询语法
SQL99查询语法:
select 【distinct】 字段|表达式,…
from 表1
【inner|left outer|right outer|cross join 表2 on 连接条件】
【inner|left outer|right outer|cross join 表3 on 连接条件】
【where 筛选条件】
【group by 分组字段】
【having 分组后的筛选条件】
【order by 排序的字段或表达式 【asc|desc】】
【limit 【起始序号|条数】【截止序号】】
说明:
(1)关键字必须严格按照这样的顺序。
(2)distinct关键字对查询的结果进行去重操作,必须放在最前面。
1.1 WHERE 条件查询
条件查询:根据条件过滤原始表的数据,查询到想要的数据
语法:
select
要查询的字段|表达式|常量值|函数
from
表
where
条件 ;
分类:
(1)条件表达式
条件运算符: > < >= <= = != <>
(2)逻辑表达式
示例:salary>10000 && salary<20000
逻辑运算符:
and(&&):两个条件如果同时成立,结果为true,否则为false
or(||):两个条件只要有一个成立,结果为true,否则为false
not(!):如果条件成立,则not后为false,否则为true
(3)like模糊查询
% 匹配任意多个字符
_ 匹配任意单个字符
#示例:查询查询员工姓名中包含字母‘o’的员工的姓名和薪资
select name,salary from emp where name like '%o%';
#示例:查询员工姓名是由四个字符组成的员工的姓名和薪资
select name,salary from emp where name like '____';
select name,salary from emp where char_length(name) = 4;
建样表
#员工信息表
create table emp(
id int not null unique auto_increment,
name varchar(20) not null,
sex enum('male','female') not null default 'male', #大部分是男的
age int(3) unsigned not null default 28,
hire_date date not null,
post varchar(50),
post_comment varchar(100),
salary double(15,2),
office int, #一个部门一个屋子
depart_id int
);
插入记录
#三个部门:教学,销售,运营
insert into emp(name,sex,age,hire_date,post,salary,office,depart_id) values
('jason','male',18,'20170301','张江第一帅形象代言',7300.33,401,1), #以下是教学部
('tom','male',78,'20150302','teacher',1000000.31,401,1),
('kevin','male',81,'20130305','teacher',8300,401,1),
('tony','male',73,'20140701','teacher',3500,401,1),
('owen','male',28,'20121101','teacher',2100,401,1),
('jack','female',18,'20110211','teacher',9000,401,1),
('jenny','male',18,'19000301','teacher',30000,401,1),
('sank','male',48,'20101111','teacher',10000,401,1),
('哈哈','female',48,'20150311','sale',3000.13,402,2),
('呵呵','female',38,'20101101',