数据库入门—部分知识讲解
上一次的数据库实例学习,已经说明了创建,使用表,库,以及行和列的操作,
今天要学习的是如as,group by,limit,like,union以及with rollup语法1.As
As在所有网站上的定义都是:在不改变原表字段名基础上对现操作期间的所选字段进行的取别名操作;
具体体现—不能用在where语句中(where-后跟条件);2.group by
聚合分组函数,对所选内容进行分组,所谓‘组’也是现操作阶段的产物;
Select 列名1 from 表名 where 条件 group by 列名2 asc(升序排列)/desc(降序排列);
即:把表中的数据按照对‘列名2’设定的排列方式排好后显示出符合条件的‘列名1’的内容。 ->返回结果是没有重复的3.Limit
Limit作用就是限制返回结果的数量,其后offset其起始值为0;
e.g. 前5行:limit 5;
6~10行:limit 5,10;
第11个之后:limit 10,18446744073709551615;4.Like
获取字段中含有某一部分确定字符的记录;
其中用%字符来表示任意字符,无%时,like近乎等于‘=’;5.Union
用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据
UNION 语句:用于将不同表中相同列中查询的数据展示出来;(不包括重复数据)
UNION ALL 语句:用于将不同表中相同列中查询的数据展示出来;(包括重复数据)
但是,union语句只是机械的把要求‘放在’一个表中,不会排序,也不会有其他操作,最重要的是,union只能用于单表查询6.with rollup
这个没啥说的,一般加在group by子句末尾处,在分组的基础上做统计下面,上代码:
/创建顾客表/
create table if not exists customer(
c_id char(6) primary key,
name varchar(30)not null,
location varchar(30),
salary decimal(8,2));
/创建银行表/
create table if not exists bank(
b_id char(5) primary key,
bank_name char(30) not null
);
/创建存款表(注意外键的代码使用)/
create table if not exists deposite(
d_id int(10) auto_increment primary key,
c_id char(6),
b_id char(5),
dep_date date,
amount decimal(8,2),
constraint FK_c_id foreign key(c_id) references customer(c_id)
);
/插入数据/
insert into customer
values(‘101001’,‘孙杨’,‘广州’,1234),
(‘101002’,‘郭海’,‘南京’,3526),
(‘101003’,‘卢江’,‘苏州’,6892),
(‘101004’,‘郭惠’,‘济南’,3492);
insert into bank
values(‘B0001’,‘工商银行’),
(‘B0002’,‘建设银行’),
(‘B0003’,‘中国银行’);
insert into bank
values(‘B0004’,‘农业银行’);
insert into deposite
values(1,‘101001’,‘B0001’,‘2011-04-05’,42526),
(2,‘101002’,‘B0003’,‘2012-07-15’,66500),
(3,‘101003’,‘B0002’,‘2010-11-24’,42366),
(4,‘101004’,‘B0004’,‘2008-03-31’,62362),
(5,‘101001’,‘B0003’,‘2002-02-07’,56346),
(6,‘101002’,‘B0001’,‘2004-09-23’,353626),
(7,‘101003’,‘B0004’,‘2003-12-14’,36236),
(8,‘101004’,‘B0002’,‘2007-04-21’,26267),
(9,‘101001’,‘B0002’,‘2011-02-11’,435456),
(10,‘101002’,‘B0004’,‘2012-05-13’,234626),
(11,‘101003’,‘B0003’,‘2001-01-24’,26243),
(12,‘101004’,‘B0001’,‘2009-08-23’,45671);将数据表deposite中孙杨的存款金额加10000
update deposite set amount =amount+10000
where c_id in(select c_id from custom where name=‘孙杨’);将数据表deposite中所属账户为工商银行并且存入日期为2011-04-05的人员的存款金额加1000
update deposite set amount=amount+1000
where dep_date=‘2011-04-05’ and b_id in(select b_id from bank where bank_name=‘工商银行’);将数据表deposite中郭海的银行标识改为建设银行
update deposite set b_id=(select b_id from bank where bank_name=‘建设银行’)
where c_id in(select c_id from customer where name=‘郭海’);查询郭海在工商银行的存款信息(显示信息:客户ID,客户姓名,银行名称,存款金额)
select customer.c_id,name,bank_name,amount
from inner join customer on customer.c_id=deposite.c_id
inner join bank on bank.b_id=deposite.b_id
where name=‘郭海’ and bank_name=‘工商银行’;其余知识点我会陆续更新。。。感谢支持!