68sql语句

SQL语句笔记

创建部门表

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
posted @ 2023-02-07 09:55  __username  阅读(15)  评论(0编辑  收藏  举报

本文作者:DIVMonster

本文链接:https://www.cnblogs.com/guangzan/p/12886111.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。