首页 > 数据库 >SQL语句笔记

SQL语句笔记

时间:2022-10-06 10:33:20浏览次数:58  
标签:语句 子句 表名 笔记 字段 字段名 SQL where select

SQL语句自用笔记,记录自原视频bilibili:BV1634y1R77q

创建部门表

deptno dname location
1 技术部 一楼A区
create table dept(  --dept部门
    deptno int primary key,  --deptno部门编号,primary key主键
    dename varchar(9),  --dname部门名称,varchar长度变化的字符串
    loc varchar(10);  --loc部门位置 
);  --varchar是最长多少,char是固定长度多少位

创建员工表

empno name deptno manager hiredate salary
1 张三 1 2 2011-03-03 4400.00
create table employees(
    empno int primary key,
    name char(10) not null,  --not null不能为空
    deptno int,
    manager int,
    hiredate date,
  salary numeric(7,2)  --总长7位,小数点后2位
);

创建经理表

员工号 头衔
2 技术部经理
99 总裁
create table managers(
    empno int primary key
    title varchar(16)
);

常用数据类型

数据类型 说明
int 整数类型
char(n) 字符/字符串,固定长度n
varchar(n) 字符/字符串,可变长度,最大长度n
numeric(a,b) 精确数值,总位数a,小数点后位数b
date 储存年,月,日的值

insert插入

  • 用于向表中插入新纪录,有两种用法
  1. 为表中所有字段添加值时不需要字段名称,但要确保值的顺序与表中字段顺序相同
insert into 表名 values (字段1的值,字段2的值,....);
  1. 为指定的字段插入数据时,要把字段名和字段值都列出,并一一对应
insert into 表名 (字段1,字段2,...) values (字段1的值,字段2的值,....);

主键

select查询

  • 查询表中所有的字段
select * from 表名;
  • 查询表中指定的字段
select 字段1,字段2,... from 表明;

distinct去重复值

  • 同一字段种可能会出现重复值,使用关键词distinct去掉重复值
select distinct 字段名 from 表名;

where条件过滤

  • 如果要从表中选取指定的数据,将where子句添加到select语句
select 字段名 from 表名 where 字段 运算符 值;
  • where子句中的运算符

and和or运算符

  • 且和或
select 字段名 from 表名 where 字段n 运算符 值n and|or 字段m 运算符 值m;

like搜索匹配的字符串

  • 在where子句中使用like运算符来搜索匹配字符串中的指定模式,百分号(%)匹配零个,一个或多个字符
select 字段名 from 表名 where 字段 like 字符串;

in匹配多个值

  • 在where子句中指定多个搜索条件可以匹配的值,in实际是多个or条件的合并
select 字段名 from 表名 where 字段名 in (值1,值2,...);

between指定范围

  • 值可以是数字,字符串或日期
select 字段名 from 表名 where 字段名 between 值1 and 值2;

order by排序

  • asc升序排序,desc降序排序
select 字段名 from 表名 order by 字段1,字段2,...asc|desc

update更新数据

  • 用于更新表中数据
update 表名 set 字段1=值1,字段2=值2,...where子句;
  • where子句指定记录更新,没有where将更新表中所有记录

delete删除记录

  • 用于删除表中记录
delete from 表名 where子句;
  • where子句指定记录更新,没有where将更新表中所有记录

view视图

  • 视图是基于SQL语句的结果集的可视化表,视图中的字段就是来自一个或多个数据库中的真实的表中的字段
  • 视图总是显示当前的数据,每当用户查询视图时,数据库引擎通过使用SQL语句来重建数据
create view 视图名 as select语句;

null值

字段和表的别名

select 字段名 as 别名 from 表名 as 别名; --as可以省略

join连接

  • join连接是基于多个表之间的共同字段把它们结合起来进行查询的一种方法
  1. 内连接(inner join) : 列出两个表中都存在的记录
  2. 左连接(left join) : 即使没有匹配也列出左表中的所有记录
  3. 右连接(right join) : 即使没有匹配也列出右表中的所有记录
select 字段名 as from 表1 join 表2 where子句;

SubQuery子查询

  • 也称嵌套查询,是一种嵌套在其他SQL语句的where子句中的查询.子查询用于为主查询返回其所需数据,或者对检索数据进行进一步的限制
select 字段1,字段2,...from 表名 where 字段名 操作符 (子查询) ;

常用函数

count函数

  • 统计符合条件的记录数
  • count(*)统计表中的记录总数
  • count(字段名)统计指定字段不为null的记录数
select count(*) from employees; --统计员工表中所有员工
select count(deptno) from employees;
select * from employees where deptno is null;

max函数

  • 返回所选字段的最大值,用法是max(字段名)

min函数

  • 返回所选字段的最小值,用法是min(字段名)

avg函数

  • 返回所选字段的平均值,用法是avg(字段名)

sum函数

  • 返回所选字段的合计值,用法是sum(字段名)

group by分组

  • 用于结合统计函数,根据一个或多个列对结果集进行分组
select 字段名,统计函数 from 表名 where子句 group by 字段名;

having过滤分组

  • 与where类似,它们的过滤对象不同,where对被选择的列进行过滤,having子句对group by产生的组进行过滤
select 字段名,统计函数 from 表名 where子句 group by 字段名 having 统计函数 运算符 值;

SQL语句的书写顺序

  • select
  • from
  • where
  • group by
  • having
  • order by
  • limit

说服我干活欧了!

标签:语句,子句,表名,笔记,字段,字段名,SQL,where,select
From: https://www.cnblogs.com/ysblo/p/16757130.html

相关文章

  • 新概念第一册51~60单元学习笔记
    Chapterfifty-one:ApleasantclimateDialogueWheredoucomefrom?#相似句whereareyoufromIcomefromGreece#what'ssb/sthlike句式What'stheclimatelikein......
  • Can't exec "mysql_config": No such file or directory at Makefile.PL line 89.
     001、问题Can'texec"mysql_config":NosuchfileordirectoryatMakefile.PLline89.  002、解决方法(base)[[email protected]]#yuminstal......
  • MySQL注入之宽字节注入
         宽字节注入时是利用mysql的一个特性,使用GBK编码的时候,会认为两个字符是一个汉字,例如%aa%5c就是一个汉字(前一个ascii码大于128才能到汉字的范围)。我......
  • NoSQL之Redis配置与优化
    NoSQL之Redis配置与优化一、关系数据库和非关系数据库1.关系型数据库●关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。●主要......
  • Mysql_5.7编译部署
    自述-概述:数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合;本文主要介绍mysql_5.7......
  • verilog中结构说明语句
    结构说明语句Verilog语言中的任何过程模块都从属于以下四种结构的说明语句。1)initial说明语句2)always说明语句3)task说明语句4)function说明语句initial和alwa......
  • Verilog 基本语句
    VerilogHDL语句包括过程语句、块语句、赋值语句、条件语句、循环语句、编译导向语句等。类别语句赋值语句持续赋值语句:assign过程赋值:=,<=块语句串行......
  • 胡言 | 我的笔记本电脑
    自从换用Fedora36之后,个人感觉使用体验飙升,截了两个图分享一下!......
  • SqlKata - 方便好用的 Sql query builder
    SqlKata查询生成器是一个用C#编写的功能强大的Sql查询生成器。它是安全的,与框架无关。灵感来源于可用的顶级查询生成器,如LaravelQueryBuilder和Knex。SqlKata有一个富......
  • SQL 子查询怎么优化?写的很深的这种!
    这是我参与11月更文挑战的第13天,活动详情查看:2021最后一次更文挑战子查询 (Subquery)的优化一直以来都是SQL查询优化中的难点之一。关联子查询的基本执行方式类似于Ne......