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: ...
随机推荐
- 用户在浏览器输入URL回车之后,浏览器都做了什么
在直接列出执行的步骤之前先来普及几个知识,相信了解完这些知识之后会对前后端的交互有更深入的理解. 1.TCP连接 TCP:Transmission Control Protocol, 传输控制协议,是 ...
- sqlite3入门之sqlite3_get_table,sqlite3_free_table
sqlite3_get_table sqlite3_get_table函数原型: int sqlite3_get_table( sqlite3 *db, /* An open database */ ...
- sqlite3入门之sqlite3_open,sqlite3_exec,slite3_close
sqlite3_open sqlite3_open函数原型: int sqlite3_open( const char *filename, /* Database filename (UTF-8) ...
- Win10任务栏卡死解决方法
有时,切换输入法,或者点击windows底部菜单,电脑鼠标会变成忙碌转圈圈的状态,无法操作底部菜单功能: 1. ctrl+shift+esc(或者ctrl+alt+delete)的方式调出任务管理器: ...
- No.4.测试子类继承父类各代码块和构造方法的执行顺序
Son子类 public class Son extends Parent { static String y ="son的static属性"; public static voi ...
- ArcGIS API for JS 4.x 离线部署(https)
在离线部署查资料的过程中,基本全部都是部署在“Default Web Site”下面,部署在这个下面的默认是 http 方式请求的.并且不能修改. 但是系统中请求的都是 https,这样导致请求不到J ...
- 圆柱模板行业B2B站点打造MIP推送+熊掌号推送+历史普通推送插件
最近因为做聚合页面http://zhimo.yuanzhumuban.cc/hotkey/list-951.html 内部站点关键词拥有5万的行业词库,所以这么多搜索词库,如何让百度第一时间抓取呢? ...
- stm32的hal之串口库函数总结复习
1.串口的使用方法 在hal库中,有三个串口发送的函数 a.HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uin ...
- Django --- csrf相关,auth相关
目录 1.csrf相关 1.跨站请求伪造 2.跨站请求伪造问题解决 3.crsf中间件 4.csrf装饰FBV的装饰器 5.csrf装饰CBV的装饰器 6.django settings源码刨析 2. ...
- Coins in a Line
Description There are n coins in a line. Two players take turns to take one or two coins from right ...












