SQL学习笔记(一)
逻辑删除
所谓的逻辑删除其实并不是真正的删除,而是在表中将对应的是否删除标识或者字段做修改操作。在逻辑上数据是被删除的,但数据本身依然存在库中
例如
update students3 set isdelete=0
update students3 set isdelete=1 where id=1
select *from students3 where isdelete=0

1.设计表,给表添加一个字段isdelete,1代表删除,0代表没有被删除
2.把所有的数据isdelete改为0
3.要删除某一条数据时更新isdelete为1
4.当要查询数据时,只查询isdelete=0的数据
数据操作-查询
创建数据
create table students(
studentNo varchar(10) primary key,
name varchar(10),
sex varchar(1),
hometown varchar(20),
age tinyint(4),
class varchar(10),
card varchar(20)
)
插入数据
insert into students values
('001','王昭君','女','北京','20', '1班','340322199001247654'),
('002','诸葛亮','男','上海','19','2班','340322199002242354'),
('003','张飞','男','南京','24','3班','340322199003247654'),
('004','白起','男','安徽','22','4班','340322199005247654'),
('005','大乔','女','天津','19','3班', '340322199004247654'),
('006','孙尚香','女','河北','18','1班','340322199006247654'),
('007','百里玄策','男','南京','24','3班','340322199007247654'),
('008','小乔','女','河南','15','3班','340322199008247654'),
('009','百里守约','男', '湖南', '21','3班','340322199009247654'),
('010','妲己','女','广东','26','2班','340322199010247654'),
('011','礼拜','男','北京','30','4班','340322199011247654'),
('012','孙膑','男', '新疆','26','4班','340322199012247654');
查询所有列:select * from students
查询指定字段:select 列1,列2,… from 表名
使用as给字段起别名
select name as 姓名,sex as 性别,hometown as 家乡 from students
不会影响这个表(查询是不会影响表中的数据的),也可以给表起别名
去重distinct:重复的数据只显示一条
格式:select distinct 列1, … from 表名;
条件查询
比较运算符
等于:=
大于:>
大于等于:>=
小于:<
小于等于:<=
不等于:!=或<>
例1
例2:查询20岁以下的学生
Select * from students where age<20;
例3:查询家乡不在北京的学生
Select * from students where hometown!= '北京';select * from students where hometown<>'北京'
逻辑运算 and or not



模糊查询
like、%表示任意多个任意字符、_表示一个任意字符
范围查询
n表示一个非连续的范围内
例1:查询家乡是北京或上海或广东的学生
select * from students where hometow='北京' or hometow= '上海' or hometow=''广东)
select * from students where hometown in('北京', '上海', ''广东)
Between…and…表示在一个连续的范围内
例2:查询年龄为18至20的学生。
select * from students whereage>18 and age<20
select * from students whereage between 18 and 20
空判断null
is null 是空,没有填写,''是空字符串,有填写
select * from students where card is null
is not null 判非空
select * from students where card is not null
排序
asc 升序,从小到大;desc 降序,从大到小
例1:查询所有学生信息,按照年龄从小到大排序。
Select * from students order by age
例2:查询所有学生信息,按年龄从大到小排序,年龄相同,再按学号从小到大排序
Select * from students order by age desc,studentNo asc
默认升序asc,可省略不写
例:查询所有学生信息,按照学生姓名顺序排序
select * from students order by convert(name using gbk)
因为选的是utf-8编码,姓名是中文需要改编码后进行排序
聚合函数,一般用来统计数据,聚合函数不能在where中使用
Count()表示计算总行数,括号中写与列名,结果是相同的
Max(列)表示求此列最大值
Min(列)表示求此列最小值
Sum(列)表示求此列的和
Avg(列)表示求此列的平均值
分组
语法:select 列1,列2,聚合…from 表名group by 列1,列2…
例1:查询各种性别的人数。
Select sex,count() from students group by sex;
例2:查询各种年龄的人数。
Select age,count() from students group up age;
group by 也有去重的作用
分组过滤
语法:select 列1,列2,聚合... from 表名 group by 列1,列2,列3,…having 列1,…聚合…
having必须跟在group by 后
先过滤再分组或先分组再过滤
Where是对from后面指定的表进行数据筛选,属于对原始数据的筛选
Having是对group by的结果进行筛选
分页(获取部分行)
语法:select * from 表名limit start,count
从start开始,获取count条数据,索引从0开始
SQL学习笔记(一)的更多相关文章
- ORALCE PL/SQL学习笔记
ORALCE PL/SQL学习笔记 详情见自己电脑的备份数据资料
- Oracle之PL/SQL学习笔记
自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家 ...
- SQL学习笔记
SQL(Structured Query Language)学习笔记 [TOC] Terminal登录数据库 1.登录mysql -u root -p ; 2.显示所有数据库show database ...
- [SQL学习笔记][用exists代替全称量词 ]
学习sql的必经问题. 学生表student (id学号 Sname姓名 Sdept所在系) 课程表Course (crscode课程号 name课程名) 学生选课表transcript (studi ...
- SQL学习笔记——SQL初入门,Ubuntu下MySQL的安装
刚开始接触sql,于是准备在Ubuntu下学习sql,就跟着itercast的sql教程开始入门了. 下面只是我个人的记录,高手请绕道: 一. 在安装之前,我们可以用下面这个命令通过开放端 ...
- pl/sql学习笔记---马士兵教程38-48
Procedure Language/Structure query Language 一.关于语言学习 1.数据类型 2.语法 通过例子来学习很快就能明白 set serverputout on ...
- SQL学习笔记之SQL查询练习题1
(网络搜集) 0x00 表名和字段 –1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程表 Course(c_id ...
- SQL学习笔记之MySQL索引知识点
0x00 概述 之前写过一篇Mysql B+树学习,简单的介绍了B+数以及MySql使用B+树的原因, 有了这些基础知识点,对MySql索引的类型以及索引使用的一些技巧,就比较容易理解了. 0x01 ...
- SQL学习笔记:一些高级语句
现在以MySQL为模板.学习的方法和别的数据库写法上会有不同,但是思路基本一致. 用到的数据库表的格式: +----+--------------+-------------------------- ...
- SQL学习笔记:基础SQL语句
目录 语句特点 进入数据库 基本查询语句 SELECT DISTINCT WHERE AND/OR/NOT :逻辑运算符 ORDER BY :排序 基本修改语句 INSERT:添加语句 UPDATE: ...
随机推荐
- 【雅思】【绿宝书错词本】List13~24
List 13 ❤audacious a.大胆的:有冒险精神的:鲁莽的:厚颜无耻的 ❤tramp v.跋涉:踩踏 n.长途跋涉 ❤lexicographer n.词典编纂者 ❤manipulate v ...
- 笔谈I帧、P帧、B帧、PTS、DTS(一)
做视频的播放,涉及到关键帧一说,从视频流中取出数据显示图像的时候,这些一幅幅图像之间到底有什么关联呢.那就有必要弄清楚I帧.P帧.B帧.PTS.DTS的概念,文章 I,P,B帧和PTS,DTS的关系 ...
- xcode 手动管理内存 的相关知识点总结
一.XCode4.2以后支持自动释放内存ARC xcode自4.2以后就支持自动释放内存了,但有时我们还是想手动管理内存,这如何处理呢. 很简单,想要取消自动释放,只要在 Build Setting ...
- 只要200行JavaScript代码,就能把特斯拉汽车带到您身边
Jerry的前一篇文章 如何使用JavaScript开发AR(增强现实)移动应用 (一) 介绍了用React-Native + ViroReact开发增强现实应用的一些预备知识. 本文咱们开始进入增强 ...
- Apache的虚拟主机
一.虚拟主机的分类 基于IP的虚拟主机:一台服务器,多个ip,搭建多个网站 基于端口的虚拟主机:一台服务器,一个ip,利用不同端口,搭建多个网站 基于域名的虚拟主机:一台服务器,一个ip,多个域名,搭 ...
- noi 7827 质数的和与积
描述 两个质数的和是S,它们的积最大是多少? 输入一个不大于10000的正整数S,为两个质数的和.输出一个整数,为两个质数的最大乘积.数据保证有解.样例输入 50 样例输出 589 欧拉筛+尺取.实际 ...
- XML-1
1.什么是XML xml即 Extensible Markup Language,中文叫可扩展标记语言,是一种具有结构性的标记语言. 2.Xml文档的构成 XML文档即用xml语言编写的文档,它包括以 ...
- Oracle 查询结果去重保留一项
首先因为需要查询很多字段,也就排除了使用distinct的可能性. 1.1 原始sql select finalSql.* from (select '' SMS_CONTENT, ' as 短信发出 ...
- Oracle数据库中的dual表
select user from dual; select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;--获得当前系统时间 select S ...
- WSGI原理
web_server: import socket import time import multiprocessing import re import mini_frame class WSGIS ...












