SQL经典入门(第5版)学习笔记

主要熟悉下稍微复杂点的sql语句跟存储过程。总的来说,记一句sql大概就能应付很多情况了:
select from__where__group by__having__order by

SQL命令类型:
数据定义语言:DDL
数据操作语言:DML
数据查询语言:DQL
数据控制语言:DCL
数据管理命令
事务控制命令

1.建表

create table users(
    id int(11) primary key auto_increment,
    username varchar(20),
    age int(11),
    gender char(1),
    birthday date,
    city varchar(20),
    salary float(20)
)

2.修改表结构(加一列,名为company,类型varchar(20)):

alter table users add column company varchar(20);

3.插入一条记录

insert into users(username,age,gender,birthday,city,salary,company) values('路飞',17,'男','1991-08-30','杭州',20000.00,'移动');

4.修改记录(只改了两个字段):

update users set age=19,gender='女' where username='路飞'

5.删除数据:

delete from user where id=1;

6.查询(大项):

select * from users;

下面的查询主要根据这张表来
查询表

order by 子句:让输出以某种方式进行排序,默认升序

select * from users where gender='男' order by age;

这里写图片描述

降序

select * from users where gender='男' order by age desc;

这里写图片描述

统计数量(*可以替换为某一列):

select count(*) from users;

比较操作符(只举一例):
相等:=
不等:<>
大于:>
小于:<

select username,age from users where age<30;

这里写图片描述

逻辑操作符:
IS NULL;
BETWEEN;
IN;
LIKE;
EXISTS;
UNIQUE;

IS NULL(与null值进行比较):

select * from users where username is null;

这里写图片描述

BETWEEN(找位于之间的记录):

select * from users where salary between 400 and 800;

这里写图片描述

IN(与指定列表比较,这个指定列表也可以是查询结果,这里这给出简单的列表):

select * from users where id in(1,4,8)

这里写图片描述
还可以是 select * from users where id in(这里面也是个select语句);

LIKE(多用于模糊查询):通配符有两个,“%””_”
where salary like ‘200%’ : 以200开头的值
where salary like ‘%200%’ :包含200的
where salary like ‘2_%_%’ :以2开头,长度至少为三的值
where salary like ‘_00%’ :第二和第三个字符是0的值
where salary like ‘%2’ :以2结尾的值
where salary like ‘_2%3’ :第二位为2,结尾为3的值
where salary like ‘2___3’ :以2开头,结尾为3,长度为五的值

select * from users where salary like '200%'

这里写图片描述

EXIST(用于指定表里是否存在特定条件的记录,与IN很像,只是这个子查询里的表是能查自己的表,IN是不能的):这个东西有够狗血的,exist子句并不返回数据,返回的是true,false,然后进行外部的主查询。
select * from users where exists (select * from users where id<5)
这条语句表达的意思是如果users表里有id<5的记录就进行外部的主查询,返回表中所有数据,注意并不是只返回id<5的数据(我扣了半天才发现)。

ALL,SOME,ANY(感觉没什么卵用,不给例子了,用到的时候再查好了)

AND OR :

select * from users where id>1 and id<5;

这里写图片描述

select * from users where id=1 or id>10;

这里写图片描述

求反操作符:这些就不说了,没几个意思
<>,!=
NOT BETWEEN
NOT IN
NOT LIKE
IS NOT NULL
NOT EXISTS
NOT UNIQUE

算术操作符: 就+ - * / ;不说了。

查询汇总: COUNT , SUM , AVG ,MAX, MIN
COUNT:前面用过了
SUM: SUM([DISTINCT] COULUMN NAME)distinct会丢弃重复的数据进行计算。

select SUM(age) from users

结果为391

select SUM(distinct age) from users

结果为355,小于391,因为我表中有重复的年龄被丢弃了。

AVG(平均数):

select AVG(age) from users 

MAX(最大值):

select MAX(age) from users 

MIN(最小值):

select MIN(age) from users 

数据排序与数组:
GROUP BY (select中出现的字段,除汇总函数外,全部要在group by 中出现,书上是这么说的,但我用mysql试了下,不在也可以–!)
ORDER BY

select username,city,age,count(*) from users group by city order by count(*)

这里写图片描述
其实这个查询是有问题的,弗兰奇也是在南京的,但被覆盖了。

HAVING(相当于再加一个条件,HAVING对GROUP BY 的作用就相当于WHERE 对 SELECT的作用)

select username,city,age,count(*) from users group by city having age >20 order by count(*)

这里写图片描述
相对于上条查询19岁的路飞君已经被踢掉了。

到这里,基本的语句已经差不多了,后面还有的子查询,关联查询,组合查询,存储过程,事件,外键关联什么的,就下次再说吧。

### 回答1: 《SQL入门经典》第5PDF是一本极好的SQL学习教材,适合SQL初学者和高级用户。本书给出的SQL语法规则清晰易懂,同时结合了大量的实际案例和演示,使读者能够较为轻松地入门SQL语言。此外,作者还为读者提供了大量的SQL编程技巧和实用知识,使读者掌握SQL语言后能够熟练编写高效的数据库应用程序。《SQL入门经典》第5PDF还很好地讲解了数据库设计、查询优化、存储过程、触发器、视图等数据库高级应用,从而为读者提供了在实际开发中所需要的基本技能。综上所述,该书不但是一本SQL入门教材,也是一本帮助读者提高技能的实用手册,因此,对于想要学习或提高SQL语言的人来说,这本书是一本非常不错的选择。 ### 回答2: SQL入门经典是一本非常好的SQL学习资料。第5pdf相比于前几,更新了更多的现代数据库技术知识,重新排也更加清晰易懂。这本书重点介绍了SQL的基础知识,尤其是SQL的语法、数据查询、数据操作和数据管理等方面。这些基础知识对于想要从事数据库开发、数据管理、数据分析等工作的人来说是必要的。此外,本书还介绍了如何通过建立关系来设计关系数据库,如何使用SQL编程语言操作和管理数据库,以及如何优化和调试SQL查询语句等重要的知识。这本书不仅是SQL初学者的必读之书,也适合有一定SQL基础的人进行深入的学习和提高。总之,如果你想在SQL领域有所发展,这本书绝对是你学习的必备工具之一。 ### 回答3: 《SQL入门经典第5》是针对SQL语言初学者的一本教材。该书分为十二章,从SQL的基础知识入手,涵盖了各种SQL语法、语句和操作,并提供了大量的例子和练习题,帮助读者巩固学习成果。 该书采用了全新的结构,使读者能够更清晰地理解SQL语法的概念和操作。每章都配有精彩实例和超过100个练习,读者通过实战来学习SQL语言,能够了解SQL语言的各种处理、操作和应用场景。 该书全面、深入地介绍了SQL语言的各种细节和特性,包括SELECT语句、算术和逻辑操作、聚合函数、子查询、表连接、视图、存储过程和触发器等,让读者深入了解SQL语言的特点和优势,理解SQL语言如何应用于复杂的数据分析和处理任务中。 总之,《SQL入门经典第5》是SQL学习者的必备读物,对于想要了解SQL语言的人来说,它是一本完整、系统的SQL语言教材,同时也是一本更深入理解SQL语言的实用指南。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值