常用sql查询语句大全

合集下载

pgsql常用查询语句

pgsql常用查询语句

pgsql常用查询语句1. 选择所有列:```sqlSELECT * FROM table_name;```2. 选择特定列:```sqlSELECT column1, column2 FROM table_name;```3. 使用 WHERE 子句筛选数据:```sqlSELECT * FROM table_name WHERE condition;```4. 使用 GROUP BY 子句对数据进行分组:```sqlSELECT column1, AVG(column2) FROM table_name GROUP BY column1;```5. 使用 HAVING 子句对分组后的数据进行筛选:```sqlSELECT column1, AVG(column2) FROM table_name GROUP BY column1 HAVING AVG(column2)>10;```6. 使用 ORDER BY 子句对结果进行排序:```sqlSELECT * FROM table_name ORDER BY column1 ASC/DESC;```7. 使用 LIMIT 子句限制结果返回的行数:```sqlSELECT * FROM table_name LIMIT 10;```8. 使用 JOIN 语句连接多个表:```sqlSELECT * FROM table1 JOIN table2 ON table1.column_name = table2.column_name;```9. 使用子查询(Subquery):```sqlSELECT * FROM table_name WHERE column1 = (SELECT column1 FROM table_name2);```这只是一些基本的查询语句示例,PostgreSQL 支持丰富的 SQL 语法和功能,可以根据具体的需求构建更复杂的查询。

一些常用查询SQL语句以及显示格式

一些常用查询SQL语句以及显示格式

⼀些常⽤查询SQL语句以及显⽰格式1.查询当前年、⽉、周相关时间1.1.查询当前年份SELECT TO_CHAR(SYSDATE,'YYYY') AS YEAR FROM DUAL--查询当前年份SELECT TO_CHAR(SYSDATE,'YYY') AS YEAR FROM DUAL--查询当前年份后两位SELECT TO_CHAR(SYSDATE,'YY') AS YEAR FROM DUAL--查询当前年份最后两位SELECT TO_CHAR(SYSDATE,'Y') AS YEAR FROM DUAL--查询当前年份最后⼀位1.2.查询当前年份第⼏天SELECT TO_CHAR(SYSDATE,'DDD') AS DAYS FROM DUAL1.3.查询当前⽉份第⼏天SELECT TO_CHAR(SYSDATE,'DD') AS DAYS FROM DUAL1.4.查询当前周的星期⼏SELECT TO_CHAR(SYSDATE,'dy') AS WEEK FROM DUALSELECT TO_CHAR(SYSDATE,'day') AS WEEK FROM DUAL1.5.查询当前年的第⼏天:SELECT TO_CHAR(SYSDATE,'DDD') AS DAYS FROM DUAL2.查询当前第⼏季度SELECT TO_CHAR(SYSDATE,'Q') AS JD FROM DUAL年内是第⼏周查询当前在⼀年内是第⼏周3.查询当前在⼀SELECT TO_CHAR(SYSDATE,'IW') AS WEEKNUM FROM DUALSELECT TO_CHAR(SYSDATE,'WW') AS WEEKNUM FROM DUALSELECT TO_CHAR(SYSDATE,'W') AS WEEKNUM FROM DUAL4.查询当前某年某⽉有多少天SELECT TO_CHAR(last_day(to_date('2019/02/01','YYYY/MM/DD')),'DD') AS MONTH_DAYS_NUMBER FROM DUAL5.查询当前的⽇期格式SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD') AS MONTH FROM DUAL--获取当前⽇期的'YYYY/MM/DD'格式:2020/01/02SELECT TO_CHAR(SYSDATE,'YYYYMMDD') AS MONTH FROM DUAL--获取当前⽇期的'YYYYMMDD'格式:20200102SELECT TO_CHAR(SYSDATE,'YYYYMMDD HH:MI:SS') AS now FROM DUAL--获取当前时间,精确到秒的12⼩时制格式:20200102 03:18:25SELECT TO_CHAR(SYSDATE,'YYYYMMDD HH24:MI:SS') AS now FROM DUAL--获取当前时间,精确到秒24⼩时制的格式:20200102 15:18:13SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS:PM:DY') AS now FROM DUAL--获取当前时间的格式,显⽰上、下午和星期⼏:2020/01/02 15:17:59:下午:星期四6.查询距离当前时间⼀段时间间隔的时间,当前时间之前⽤“-”当前时间之后⽤“+”SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') AS NOW,TO_CHAR(SYSDATE - INTERVAL '7' second,'YYYY/MM/DD HH24:MI:SS') AS PAST FROM DUAL --查询当前时间的7秒前时间SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') AS NOW,TO_CHAR(SYSDATE - INTERVAL '7' minute,'YYYY/MM/DD HH24:MI:SS') AS PAST FROM DUAL --查询当前时间的7分钟前时间SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') AS NOW,TO_CHAR(SYSDATE - INTERVAL '7'hour ,'YYYY/MM/DD HH24:MI:SS') AS PAST FROM DUAL --查询当前时间的7⼩时前时间SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') AS NOW,TO_CHAR(SYSDATE - INTERVAL '7'day ,'YYYY/MM/DD HH24:MI:SS') AS PAST FROM DUAL --查询当前时间的7天前时间SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') AS NOW,TO_CHAR(SYSDATE - INTERVAL '7'month ,'YYYY/MM/DD HH24:MI:SS') AS PAST FROM DUAL --查询当前时间的7⽉前时间SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') AS NOW,TO_CHAR(SYSDATE - INTERVAL '7'year ,'YYYY/MM/DD HH24:MI:SS') AS PAST FROM DUAL --查询当前时间的7年前时间SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') AS NOW,TO_CHAR(SYSDATE -8*INTERVAL '7'hour ,'YYYY/MM/DD HH24:MI:SS') AS PAST FROM DUAL --查询当前时间参数年、⽉、⽇、时、分、秒乘以⼀个数字倍数之前的时。

SQL常用语句,子查询整理

SQL常用语句,子查询整理

SQL常用语句,子查询整理一、SQL子查询语句1、单行子查询select ename,deptno,salfrom empwhere deptno=(select deptno from dept where loc='NEW YORK');2、多行子查询SELECT ename,job,salFROM EMPWHERE deptno in ( SELECT deptno FROM dept WHERE dname LIKE 'A%');3、多列子查询SELECT deptno,ename,job,salFROM EMPWHERE (deptno,sal) IN (SELECT deptno,MAX(sal) FROM EMP GROUP BY deptno);4、内联视图子查询(1)SELECT ename,job,sal,rownumFROM (SELECT ename,job,sal FROM EMP ORDER BY sal);(2)SELECT ename,job,sal,rownumFROM ( SELECT ename,job,sal FROM EMP ORDER BY sal)WHERE rownum<=5;5、在HA VING子句中使用子查询SELECT deptno,job,A VG(sal) FROM EMP GROUP BY deptno,job HA VING A VG(sal)>(SELECT sal FROM EMP WHERE ename='MARTIN');6、内连接左连接右连接举例;select sys_er_id ,sys_er_code from sys_user inner join XZFW_BANJIE on sys_er_id=XZFW_erid小例子:select top 10 * from sys_user where user_code not in (select user_code from sys_user where user_code like '%yzj%')select top 2 * from (select top 2 * from ers order by us_username desc) users order by us_username desc7、删除约束语句:alter table dbo.XZFW_SYS_USER drop CONSTRAINT FK1772E1891324F6788、记录数查询select count(user_pass) from sys_userselect count(*) from sys_user where user_code!='admin'9、在范围之间取值( between ... and ..用法)select sys_er_id,sys_er_name,xzfw_shoujian.caseid from sys_user inner join xzfw_shoujian on sys_er_id=xzfw_erid where user_id between 5 and 100或select * from sys_user where user_id<10 and user_id>1二、SQL基本语句下列语句部分是Mssql语句,不可以在access中使用。

SQL查询语句精华大全

SQL查询语句精华大全
使用下面语句格式加以限定:
SELECT username,citytable.cityid
FROM usertable,citytable
WHERE usertable.cityid=citytable.cityid
在FROM子句中可用以下两种格式为表或视图指定别名:
表名 as 别名
表名 别名
数据库管理系统的一个标志。
在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在
一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带
来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,尔后通过连接进行
运算符等构成。
无论哪种连接都不能对text、ntext和image数据类型列进行直接连接,但可以对这三种列进行间接
连接。例如:
SELECT p1.pub_id,p2.pub_id,p1.pr_info
FROM pub_info AS p1 INNER JOIN pub_info AS p2
[^]:其取值也[] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
例如:
限制以Publishing结尾,使用LIKE '%Publishing'
限制以A开头:LIKE '[A]%'
限制以A开头外:LIKE '[^A]%'
4、空值判断符例WHERE age IS NULL
5、逻辑运算符:优先级为NOT、AND、OR
SELECT a.*,p.pub_id,p.pub_name,p.country
FROM authors AS a INNER JOIN publishers AS p

SQL语句大全

SQL语句大全

简单基本的sql语句(1) 数据记录筛选:sql="select * from 数据表 where 字段名=字段值 order by 字段名[desc]"sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"sql="select top 10 * from 数据表 where 字段名=字段值 order by 字段名 [desc]"sql="select top 10 * from 数据表 order by 字段名 [desc]"sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"sql="select * from 数据表 where 字段名 between 值1 and 值2"(2) 更新数据记录:sql="update 数据表 set 字段名=字段值 where 条件表达式"sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"(3) 删除数据记录:sql="delete from 数据表 where 条件表达式"sql="delete from 数据表" (将数据表所有记录删除)(4) 添加数据记录:sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)(5) 数据记录统计函数:AVG(字段名) 得出一个表格栏平均值COUNT(*;字段名) 对数据行数的统计或对某一栏有值的数据行数统计MAX(字段名) 取得一个表格栏最大的值MIN(字段名) 取得一个表格栏最小的值SUM(字段名) 把数据栏的值相加引用以上函数的方法:sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"set rs=conn.excute(sql)用 rs("别名") 获取统计的值,其它函数运用同上。

SQL查询语句大全

SQL查询语句大全

数据库查询语句大全部分一:Student(Sno,Sname,Sage,Ssex)SC(Cno,Sno,Grade)Course(ame,Cpno,Ccredit,Teacher)1.查询w老师教授的课程和课程号2.查询年纪大于23岁的男生信息3.查询至少选修W老师的一门课程的女生Answer:a)select amefrom coursewhere teacher=’w’b)select *from studentwhere Ssex=’男’ and Sage > 23c)方法一:select snamefrom student,sc,coursewhere student.Ssex=’女’and student.Sno=SC.snoand o=oand course.teacher=’w’方法二:Select snamefrom studentwhere Ssex=’女’ and son in(select sno from sc where cno in(select cno from course where teacher=’w’))部分二:Student(Sno,Sname,Sage,Ssex)SC(Cno,Sno,Grade)Course(ame,Cpno,Ccredit,Teacher)1.统计所有学生选修的课程门数2.统计每门课程选修的人数3.求w老师所教授的每门课程的平均成绩和总人数4.统计选修课程2的同学的平均成绩5.统计每门课程的学生人数(要求超过2人才统计)要求输出课程号和选修人数,结果按照人数的降序排序,人数相同的话按照课程号升序排序6.查询姓名以王开头的所有学生7.查询学号比王开头的所有学生大,年纪也比他大的学生8.找出年纪大于女生平均年纪的男生9.找出在SC表没有成绩,但是在Student中存在的学生Answer:1)Select count (dinstinct cno) from SC //distinct获取不重复字段2)Select count (sno) as 选修数, cnofrom scgroup by cno3)Select count (SC.sno), o, A VG(grade)from SCwhere o=o and course.teacher=’w’ group by o4)Select avg(grade) from SC where cno=’2’5)Select cno,count(sno) from SC group by cnohaving count(sno) >2 order by 2 desc, 16)Select * from student where Sname like ‘王%’7)Select * from student where cast(sno as int (10))>all //cast强制转换类型(select cast (sno as int (10) ) from student where sname like ‘王%’)and sage>all(select Sage from student where Sname like ‘王%’)8)Select * from student where Ssex=’男’and Sage>(select avg(Sage) from whereSsex=’女’)9)Select * from student where sno not in(select sno from SC) or sno in (select snofrom SC where grade is null)//更正后Student(Sno,Sname,Sbirth,Ssex)SC(Cno,Sno,Grade)Course(ame,Cpno,Ccredit,Teacher)部分三:1.查询选修总学分在10学分以下的学生姓名2.查询各门课程的最高成绩的学生姓名及其成绩3.查询选修20040744009号学生所选修的全部课程的学生学号(课本110页)4.查询与‘曾福德‘在同一个系学生的学号、姓名和系别5.查询其他系中比电子工程系某一学生年龄小的学生姓名和年龄1)Select SC.sno, sum(course.credit) as 学分from SC,Coursewhere o=ogroup by sc.snohaving sum(course.credit)<10 //sum求和count统计次数或:Select sname,sno from student where sno in(select sc.sno from sc,coursewhere o=o group by sc.sno having sum(course.Credit)<10)问题:如何简化,还要显示总学分?把内查询设计为视图chengji_10就可以或:select sc.snofrom sc,coursewhere o=o group by sc.sno having sum(course.Credit)<10接着直接用:select s.sname,s.sno,cj.fen from student as s,chengji_10 as cjwhere s.sno = cj.sno还可以显示总学分。

SQL语句大全

SQL语句大全

8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;
Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2
update SC set score=(select avg(SC_2.score)
from SC SC_2
where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='叶平');
10、查询没有学全所有课的同学的学号、姓名;
select Student.S#,Student.Sname
from Student,SC
where Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course);
FROM SC L ,SC AS R
WHERE L.C# = R.C# and
L.score = (SELECT MAX(IL.score)
FROM SC AS IL,Student AS IM
WHERE L.C# = IL.C# and IM.S#=IL.S#
from Student left Outer join SC on Student.S#=SC.S#

数据库SQL查询语句

数据库SQL查询语句

一、简单查询语句1. 查看表结构SQL>DESC emp;2. 查询所有列SQL>SELECT * FROM emp;3. 查询指定列SQL>SELECT empmo, ename, mgr FROM emp;SQL>SELECT DISTINCT mgr FROM emp; 只显示结果不同的项4. 查询指定行SQL>SELECT * FROM emp WHERE job='CLERK';5. 使用算术表达式SQL>SELECT ename,sal*13+nvl(comm,0) FROMemp;nvl(comm,1)的意思是,如果comm中有值,则nvl(comm,1)=comm; comm中无值,则nvl(comm,1)=0。

SQL>SELECT ename, sal*13+nvl(comm,0) year_sal FROM emp; (year_sal为别名,可按别名排序)SQL>SELECT * FROM emp WHERE hiredate>'01-1月-82';6. 使用like操作符(%,_)%表示一个或多个字符,_表示一个字符,[charlist]表示字符列中的任何单一字符,[^charlist]或者[!charlist]不在字符列中的任何单一字符。

SQL>SELECT * FROM emp WHERE ename like 'S__T%';7. 在where条件中使用InSQL>SELECT * FROM emp WHERE job IN ('CLERK','ANAL YST');8. 查询字段内容为空/非空的语句SQL>SELECT * FROMemp WHERE mgr IS/IS NOT NULL;9. 使用逻辑操作符号SQL>SELECT * FROM emp WHERE (sal>500 or job='MANAGE') and ename like 'J%';10. 将查询结果按字段的值进行排序SQL>SELECT * FROM emp ORDER BY deptno, sal DESC; (按部门升序,并按薪酬降序)二、复杂查询1. 数据分组(max,min,avg,sum,count)SQL>SELECT MAX(sal),MIN(age),A VG(sal),SUM(sal) from emp;SQL>SELECT * FROM emp where sal=(SELECT MAX(sal) from emp));SQL>SELEC COUNT(*) FROM emp;2. group by(用于对查询结果的分组统计)和having子句(用于限制分组显示结果)SQL>SELECT deptno,MAX(sal),A VG(sal) FROM emp GROUP BY deptno;SQL>SELECT deptno, job, A VG(sal),MIN(sal) FROM emp group by deptno,job having A VG(sal)<2000;对于数据分组的总结:a. 分组函数只能出现在选择列表、having、order by子句中(不能出现在where中)b. 如果select语句中同时包含有group by, having, order by,那么它们的顺序是group by, having, order by。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常用sql查询语句大全
常用SQL查询语句大全
SQL (Structured Query Language) 是一种用于管理关系型数据库的编程语言,它可以用来从数据库中检索、插入、更新和删除数据。

以下是一些常用的SQL查询语句:
1. SELECT语句:用于检索数据库中的数据。

- SELECT * FROM table_name; -- 检索表中的所有列和行
- SELECT column1, column2 FROM table_name; -- 检索表中指定的列
- SELECT column1, column2 FROM table_name WHERE condition; -- 检索满足条件的行
2. INSERT语句:用于向数据库中插入新的数据。

- INSERT INTO table_name (column1, column2) VALUES (value1, value2); -- 插入指定的列和值
- INSERT INTO table_name VALUES (value1, value2); -- 插
入所有列和值
3. UPDATE语句:用于更新数据库中的数据。

- UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition; -- 更新满足条件的行的值
4. DELETE语句:用于从数据库中删除数据。

- DELETE FROM table_name WHERE condition; -- 删除满足条
件的行
5. WHERE子句:用于指定条件。

- SELECT * FROM table_name WHERE column_name = value; -- 检索满足条件的行
- SELECT * FROM table_name WHERE column_name LIKE 'value%'; -- 使用通配符进行模糊匹配
- SELECT * FROM table_name WHERE column_name IN (value1, value2); -- 检索列值在指定列表中的行
6. ORDER BY子句:用于对结果进行排序。

- SELECT * FROM table_name ORDER BY column_name; -- 按列升序排序
- SELECT * FROM table_name ORDER BY column_name DESC; -- 按列降序排序
7. GROUP BY子句:用于根据指定的列对结果进行分组。

- SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name; -- 根据列进行分组并计数
8. JOIN语句:用于合并多个表的数据。

- SELECT * FROM table1 INNER JOIN table2 ON
table1.column_name = table2.column_name; -- 内连接,返回满足条件的行
- SELECT * FROM table1 LEFT JOIN table2 ON
table1.column_name = table2.column_name; -- 左连接,返回满足条件的行和左表中的所有行
- SELECT * FROM table1 RIGHT JOIN table2 ON
table1.column_name = table2.column_name; -- 右连接,返回满足条件的行和右表中的所有行
9. DISTINCT关键字:用于返回唯一的结果。

- SELECT DISTINCT column_name FROM table_name; -- 返回指定列的唯一值
以上是一些常用的SQL查询语句,它们可以满足大多数对数据库的查询和操作需求。

根据实际情况,你可以根据需要进行组合和拓展。

相关文档
最新文档