SELECT数据库查询
数据库函数select查询语句的分类语法结构多表连接,DISTINCT关键字表列的别名和m。。。

数据库函数select查询语句的分类语法结构多表连接,DISTINCT关键字表列的别名和m。
数据库函数 select 查询语句SQL语句* DDL create,drop, alter* DML insert,delete,update,select* DCL grant,revoke* TCL commit; rollback;DDL修饰符:* unsigned ⾮负数* zerofill 0填充* default 默认值* null 空值约束:* primary key 主键,⾮空 + 唯⼀* unique 唯⼀键,不能有重值* not null ⾮空* auto_increment ⾃增长 int,必须是primary key主键1.SELECT 查询语句的分类语法结构多表连接案例简单查询语句从⼀个表中查询数据复杂查询语句多表连接查询(将来源于多个表的列横向叠加)*内连接 *左连接 *右连接 *全连接 * ⾃连接 *⾮等值连接复合查询(将查询结果集上下叠加)*Union*Union All *Intersect *Minus并集交集差集⼦查询* ⾮关联⼦查询 *关联⼦查询语法结构SELECT select_list # 1个或多个列名,之间⽤逗号隔开,列也称作投影[ INTO new_table ] # 结果集放⼊指定⽂件FROM [table_source] #表名[ WHERE search_condition ] #表⾏过滤条件[ GROUP BY group_by_expression ] #按照指定的列将表⾏分组,形成新的⾏[ HAVING search_condition ] #对分组后的新⾏进⾏过滤[ ORDER BY order_expression [ ASC | DESC ] ] #按照指定的1个或多个列进⾏排序,ASC=增序,DESC=降序select where⼦句常⽤的算数逻辑⽐较运算符通配运算符和优先级where⼦句对⾏记录进⾏过滤1.算数运算符:+,-,*, / 对应加,减,乘,除2.逻辑运算符:not (⾮);and (⽽且);or(或者);3.⽐较运算符:= 等于; !=或<>不等于; >⼤于; <⼩于; >=⼤于等于; <=⼩于等于;is null为空值;is not null为⾮空值;in (值列表)在值列表中not in (值列表)不在值列表中;between 低值and ⾼值(包含低值和⾼值)在低值和⾼值之间;not between 低值and ⾼值(包含低值和⾼值)不在低值和⾼值范围内;like ‘通配符’按照通配符进⾏匹配;4.常⽤通配符:% 匹配0个或任意多个字符_匹配任意1个字符5.运算符优先级各类运算符之间存在优先级,只记住括号( )的优先级最⾼即可1.查询学⽣表中性别为‘⼥’,体重超过60公⽄的学⽣的所有信息三个表查询学⽣表中性别为‘⼥’,体重超过60公⽄的学⽣的所有信息select * from stu where sex='⼥' and weight>60;2.查询学⽣表中1班或者2班中,⾝⾼超过190的学⽣select * from stu where (cno=1 or cno=2) and height>190;或者select * from stu where cno in (1,2) and height>190;3.查询学⽣表中3班学⽣⾥⾯考分在400和520之间的⼥⽣select * from stu where cno=3 and sex='⼥' and score between 400 and 520;或者select * from stu where cno=3 and sex='⼥' and (score>= 400 and score<=520);4.查询学⽣表中没有分配班级⽽且是⼥⽣的学⽣select * from stu where cno is null and sex='⼥';5.在学⽣表体重低于40公⽄且⾝⾼低于1.65⽶的学⽣,列出其姓名,⾝⾼,体重,总分以及总分占750分满分的百分⽐select sname,height,weight,score,score/750*100 from stu where height/100<1.65 and weight<40;6.在学⽣表中查找学⽣姓名,第⼆个字是‘侯’,或者第⼀个字是‘张’且名字只有两个字的学⽣select * from stu where sname like '_侯%' or sname like '张_';2mysql 常⽤的字符串数值⽇期条件判断 CASE 空值聚合关键字列的别名函数函数⽤来处理SQL语句中的数据,可以嵌⼊在SQL语句中使⽤,增加了SQL语句对数据的处理功能函数可以有0到多个参数,但是总会有⼀个返回值函数可以⽤来计算、修改、格式化输出⼆维表中的各类数据不同数据库的函数的名称和⽤法略有不同,但都会提供如:字符串处理、数值处理、⽇期处理、统计等分类的函数、⽅便⽤户处理各类数据1.字符串函数 char_length(字符串) 的长度三个字姓名的学⽣char_length(str)字符串长度计算参数str中有多少个字符,str可以是具体的⼀个字符串,也可以是表中的列1.查看字符串“中国⼈”有⼏个字(后⾯为常量from可省略select char_length('中国⼈');2.学⽣表中姓名为三个字的学⽣有哪些?select * from stu where char_length(sname)=3;或select * from stu where sname like '___';有些需求仅靠SQL语句提供的功能⽆法实现,必须依靠数据库提供的函数2.concat(str1,str2,……)拼接把参数str1和str2拼接成⼀个字符串班级+姓名把参数str1和str2拼接成⼀个字符串1.把‘我是’和‘中国⼈’拼接成⼀句话select concat('我是','中国⼈');2.学⽣表打印已分班的学⽣姓名和班级,以xxx是x班的形式打印结果select concat(sname,'是',cno,'班') 名称表from stu where cno is not null;3.substr(str,pos,len)截取把参数str字符串从第pos位起,截取len位把参数str字符串从第pos位起,截取len位字符串姓⽒1.把‘我是中国⼈’字符串从第3位起截取3位字符select substr('我是中国⼈',3,3);⼆班的同学都有什么姓⽒? (截取第⼀个字段) ⼆班同学的姓⽒select substr(sname,1,1) from stu where cno=2;4.)MySQL 数值四舍五⼊函数round(num,n),数字和⾝⾼体重bmi值四舍五⼊不要⼩数缺省为正数 0对数字num进⾏四舍五⼊运算,从第n位⼩数算起(保留⼏位)1.)15.5469,保留2位⼩数,从第2位⼩数进⾏四舍五⼊运算select round(15.5469,2);2.)计算肥胖学⽣许褚的BMI值,四舍五⼊保留2位⼩数,体重/⾝⾼^2select round(weight/(height/100*height/100),2) from stu where sname='许褚';5.)MySQL ⽇期函数year(date1) month(date1)year(date1)获取⽇期date1的年份select year(‘2019-11-27 09:00:00’);month(date1)获取⽇期date1的⽉份1.学⽣表中哪些同学是1990年出⽣的?select * from stu where year(birth)=1990;2.学⽣表中哪些同学是8⽉出⽣的?select * from stu where month(birth)=8;6.)计算时间curdate查 datediff(date1,date2) 计算年龄⽣⽇⼩于23岁curdate()获取当前⽇期curtime()获取当前时间now()获取当前的⽇期和时间datediff(date1,date2)返回date1和date2两个⽇期间隔的天数1.计算2018年6⽉1⽇和2018年元旦之间间隔的天数select datediff('2018-6-1','2018-1-1');select datediff('2019-11-29','2015-10-20'); 和静差1501天2计算学⽣表中学⽣的年龄,显⽰姓名,⽣⽇,年龄(保留2位⼩数),只显⽰⼩于23岁的同学select sname,birth,round(datediff(now(),birth)/365,2) from stu where round(datediff(now(),birth)/365,2)<23;7.MySQL 条件判断函数 if(expr,v1,v2) 分数姓名复姓if(expr,v1,v2)如果表达式expr成⽴,返回v1值否则,返回v2值1..如果学⽣⾼考分⼤于等于520,其为统招⽣,否则其为委培⽣,从学⽣表中查找,显⽰姓名,考分,类型(统招或委培)select sname,score,if(score>=520,'统招','委培') 类型 from stu;2.新来的学⽣都姓什么,需要考虑复姓(诸葛、太史、夏侯)和外号(⼤乔、⼩乔)?select sname,substr(sname,if(sname in ('⼤乔','⼩乔'),2,1),if(substr(sname,1,2) in ('诸葛','太史','夏侯'),2,1)) 姓 from stu;先从外号中筛选出⼤乔⼩乔,选出乔姓,然后截取两位名字,如果是诸葛,夏侯,太史截取两位,其他的就截取⼀位。
实验二SQL语言——数据查询操作

实验二SQL语言——数据查询操作SQL (Structured Query Language) 是一种用于管理关系数据库系统的标准语言。
在数据查询操作方面,SQL 可以帮助用户从数据库中检索想要的数据,通过下面的实验,我们将深入了解 SQL 语言在数据查询操作中的应用。
一、SELECT语句SELECT语句是SQL中最常用的语句之一,它用于从数据库中选择需要查询的数据。
SELECT语句的基本语法如下:```SELECT列名1,列名2,...FROM表名;```例如,我们有一个名为 "Students" 的表,其中包含了学生的姓名、年龄和性别等信息。
要查询学生的姓名和年龄,我们可以使用以下SELECT 语句:```SELECT 姓名, 年龄 FROM Students;```二、WHERE子句WHERE子句用于在SELECT语句中添加过滤条件,只返回满足条件的数据。
下面是WHERE子句的基本语法:```SELECT列名1,列名2,...FROM表名WHERE条件;```例如,我们要查询年龄大于等于18岁的学生信息,可以使用以下SELECT语句:```SELECT * FROM Students WHERE 年龄 >= 18;```三、ORDERBY子句ORDERBY子句用于按照指定的列进行排序,可以按照升序或降序排列。
下面是ORDERBY子句的基本语法:```SELECT列名1,列名2,...FROM表名ORDERBY列名[ASC,DESC];```例如,我们要按照学生的年龄从小到大排序,可以使用以下SELECT语句:```SELECT * FROM Students ORDER BY 年龄 ASC;```四、GROUPBY子句GROUPBY子句用于将查询结果按照一个或多个列进行分组,并对每个组进行聚合操作。
下面是GROUPBY子句的基本语法:```SELECT列名1,列名2,...FROM表名GROUPBY列名1,列名2,...;```例如,我们要统计每个性别的学生人数```SELECT 性别, COUNT(*) FROM Students GROUP BY 性别;```五、HAVING子句HAVING子句用于在GROUPBY子句中添加过滤条件,只返回满足条件的分组。
数据库SQL语言--SELECT查询操作

数据库SQL语言--SELECT查询操作1、基于‚教学管理‛数据库jxgl,试用SQL的查询语句表达下列查询。
(1)--检索年龄大于23的男学生的学号和姓名--select sno,sn from s where sex='男'and age > 23(2)--检索至少选修一门课程的女学生姓名--select sn from S,SCwhere sex='女' AND S.Sno=SC.Snogroupby S.Sn having count(*)>=1;(3)--检索王同学没有选修的课程的课程号--select cno from cwhere o notin(select cno from sc,swhere sc.sno=s.sno and sn like'王%')(4)--检索至少选修两门课程的学生学号--selectdistinct s.sno from s,scwhere sc.sno=s.snogroupby s.snohaving count(*)>=2;(5)--检索全部学生都选修的课程的课程号与课程名--select cno,cn from cwhere notexists(select*from swhere notexists(select*from scwhere s.sno=sc.sno and o=o))(6)--检索选修了所有3学分课程的学生学号和姓名--selectdistinct s.sno,s.sn from s,scwhere exists(select*from cwhere ct='3'and s.sno=sc.sno and o=o)2、基于“教学管理”数据库jxgl,试用SQL的查询语句表达下列查询。
(1)--统计有学生选修的课程门数--select count(distinct o)from sc;(2)--查询选修4号课程的学生的平均年龄--select avg(s.age)from s,scwhere s.sno=sc.sno and cno='4';(3)--查询学分为3的每门课程的学生平均成绩--select avg(sc.score)from c,sc,swhere s.sno=sc.sno and c.ct='3';(4)--统计每门课程的学生选修人数(超过3人的课程才统计)。
数据库原理及应用SQL-Server 第6章-SELECT数据查询

6/69
简单查询(2)
❖ 查询全部列
将表中的所有属性列都选出来,可以有两种方法。一种方法就是在 SELECT关键字后面列出所有列名;另一种方法是如果列的显示顺序与 其在基表中的顺序相同,也可以简单地将<目标列表达式>指定为“*”。
例 查询全体学生的详细记录。 USE JXGL GO SELECT * FROM S GO
2021/9/19
10/69
带有WHERE子句的查询 (2)
确定范围
语句BETWEEN…AND…和NOT BETWEEN…AND…可以用来查找 属性值在(或不在)指定范围内的元组,其中BETWEEN后是范围的下 限(即低值),AND后是范围的上限(即高值)。
例 查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、 系别和年龄。
基本语句SELECT—FROM—WHERE的含义是:根据WHERE子句 的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的 元组,再按SELECT子句中的目标列表达式,选出元组中的属性值形 成结果表。
2021/9/19
5/69
简单查询(1)
❖ 查询指定列
在很多情况下,用户只对表中的一部分属性列感兴趣,这时可以通 过在SELECT子句的<目标列表达式>中指定要查询的属性列。
USE JXGL GO SELECT SNAME,SEX FROM S WHERE SDEPT IN('CS','MA','IS') GO
2021/9/19
12/69
带有WHERE子句的查询 (4)
字符匹配
运算符LIKE可以用来进行字符串的匹配。其一般语法格式如下: [NOT] LIKE ’<匹配串>’[ESCAPE ’<换码字符>’]
海豚调度sql查询语句

海豚调度sql查询语句海豚调度是一种常用的数据库管理工具,用于执行SQL查询语句以获取所需的数据。
本文将介绍一些常见的SQL查询语句,以帮助读者更好地使用海豚调度进行数据库查询。
一、SELECT语句SELECT语句是SQL中最常用的查询语句,用于从数据库中获取数据。
格式如下:SELECT column1, column2, ...FROM table_nameWHERE condition;其中,column1, column2表示要查询的表中的列名,table_name表示要查询的表名,condition是查询条件,可选。
例如,要查询学生表(student)中所有学生的姓名和年龄,可以使用以下SELECT语句:SELECT name, ageFROM student;二、WHERE子句WHERE子句用于指定查询条件,过滤出满足条件的数据。
常见的WHERE子句操作符有以下几种:1.等于操作符(=):用于判断两个值是否相等。
例如,要查询年龄为18岁的学生可以使用以下查询语句:SELECT nameFROM studentWHERE age = 18;2.大于操作符(>):用于判断一个值是否大于另一个值。
例如,要查询成绩大于80分的学生可以使用以下查询语句:SELECT nameFROM studentWHERE score > 80;3.小于操作符(<):用于判断一个值是否小于另一个值。
例如,要查询年龄小于20岁的学生可以使用以下查询语句:SELECT nameFROM studentWHERE age < 20;4.组合操作符(AND、OR):用于结合多个条件进行查询。
例如,要查询年龄在18到20之间的学生可以使用以下查询语句:SELECT nameFROM studentWHERE age >= 18 AND age <= 20;三、ORDER BY子句ORDER BY子句用于对查询结果进行排序,可以按照某一列的升序或降序排列。
oracle中select使用总结

oracle中select使用总结Oracle是一种常用的数据库管理系统,它具有强大的查询功能。
在Oracle中,SELECT是用于从数据库中检索数据的关键字。
通过SELECT语句,可以从一个或多个表中选择一部分或全部列的数据,并按照特定的条件进行过滤和排序。
SELECT语句的基本语法如下:```SELECT列名1,列名2,...FROM表名WHERE条件;```下面是一些SELECT语句的常用用法总结:1.检索表中的全部数据:```SELECT*FROM表名;```这个语句会返回表中所有的行和列,"*"表示所有列。
2.检索指定列的数据:```SELECT列名1,列名2,...FROM表名;```在SELECT后面列出需要检索的列名,多个列名之间用逗号分隔。
3.检索数据并去除重复行:```SELECTDISTINCT列名FROM表名;```DISTINCT关键字用于去除查询结果中的重复行。
4.对数据进行排序:```SELECT列名FROM表名ORDERBY列名ASC(升序)/DESC(降序);```ORDERBY关键字用于对查询结果进行排序,默认为升序。
5.对数据进行条件过滤:```SELECT列名FROM表名WHERE条件;```WHERE关键字用于添加条件表达式,只有满足条件的数据才会被返回。
6.对数据进行模糊查询:```SELECT列名FROM表名WHERE列名LIKE'关键字';```LIKE关键字用于进行模糊查询,通常与通配符配合使用,%表示任意字符,_表示单个字符。
7.对数据进行分组:```SELECT列名1,列名2,...FROM表名GROUPBY列名;```GROUPBY关键字用于按照指定的列对结果进行分组。
8.对分组后的数据进行条件过滤:```SELECT列名1,列名2,...FROM表名GROUPBY列名HAVING条件;```HAVING关键字用于对分组后的结果进行条件过滤。
mysql查询语句大全及用法

mysql查询语句大全及用法MySQL是一种常用的关系型数据库管理系统,提供了强大的查询语言(SQL)来操作和管理数据库。
下面是一些常见的MySQL查询语句及其用法:1. SELECT语句:-用法:用于从数据库中检索数据。
-示例:SELECT * FROM 表名;(检索表中的所有数据)SELECT 列1, 列2 FROM 表名WHERE 条件;(根据条件检索指定列的数据)2. INSERT语句:-用法:用于向数据库中插入新的数据。
-示例:INSERT INTO 表名(列1, 列2) VALUES (值1, 值2);(向表中插入指定列的数据)3. UPDATE语句:-用法:用于更新数据库中的数据。
-示例:UPDATE 表名SET 列1 = 值1, 列2 = 值2 WHERE 条件;(根据条件更新指定列的数据)4. DELETE语句:-用法:用于从数据库中删除数据。
-示例:DELETE FROM 表名WHERE 条件;(根据条件删除数据)5. WHERE子句:-用法:用于在SELECT、UPDATE和DELETE语句中指定条件。
-示例:SELECT * FROM 表名WHERE 列= 值;(根据条件检索数据)6. ORDER BY子句:-用法:用于对结果进行排序。
-示例:SELECT * FROM 表名ORDER BY 列ASC/DESC;(根据指定列的升序或降序排序数据)7. GROUP BY子句:-用法:用于将结果分组。
-示例:SELECT 列, COUNT(*) FROM 表名GROUP BY 列;(根据指定列对数据进行分组并计数)8. JOIN语句:-用法:用于在多个表之间建立连接。
-示例:SELECT * FROM 表1 JOIN 表2 ON 表1.列= 表2.列;(根据指定列在两个表之间建立连接)9. DISTINCT关键字:-用法:用于返回唯一的结果。
-示例:SELECT DISTINCT 列FROM 表名;(返回指定列的唯一结果)10. LIMIT关键字:-用法:用于限制结果集的行数。
navicat select语句

导言1.1 背景介绍Navicat是一款功能强大的数据库管理工具,广泛应用于数据库开发和管理领域。
其中的select语句是数据库查询中常用的一种语句,本文将对Navicat中select语句的使用进行详细介绍。
2. select语句概述2.1 select语句的作用在数据库查询中,select语句用于从一个或多个表中检索数据,可以根据特定的条件过滤数据,并且可以对检索到的数据进行排序和分组。
2.2 select语句的语法格式在Navicat中,通常可以使用如下的语法格式来编写select语句:```sqlSELECT column1, column2, ...FROM table_nameWHERE condition;```3. select语句的基本用法3.1 检索所有列的数据要检索一个表中所有列的数据,可以使用如下的select语句:```sqlSELECT *FROM table_name;```3.2 检索特定列的数据如果只需要检索特定的列,可以在select语句中指定需要检索的列名,如下所示:```sqlSELECT column1, column2FROM table_name;```4. select语句的条件过滤4.1 使用WHERE子句可以使用WHERE子句来对检索的数据进行条件过滤,例如:```sqlSELECT *FROM table_nameWHERE condition;```4.2 逻辑操作符的使用在条件过滤中,可以使用逻辑操作符(如AND、OR、NOT)来连接多个条件,从而实现更复杂的条件过滤。
5. select语句的数据排序5.1 使用ORDER BY子句在SELECT语句中,可以使用ORDER BY子句对结果进行排序,例如:```sqlSELECT *FROM table_nameORDER BY column1 ASC, column2 DESC;```6. select语句的数据分组6.1 使用GROUP BY子句通过使用GROUP BY子句,可以将数据按照指定的列进行分组,并对每个分组的数据进行聚合操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
--2010_11_1 上课练习
--SELECT数据查询
USE Student
GO
--select基本用法
SELECT*FROM C-- * 即代表所有列
SELECT C#,CNAME,CREDIT,NOTE
FROM C
--查询的修改显示,但不会修改数据表的列名
SELECT S#学号,SNAME姓名,DEPARTNAME院系名称
FROM S
--查询时候调用函数,形成新列
SELECT SNAME,DATEDIFF(YEAR,SBIRTH,GETDATE())年龄FROM S
--使用CASE语句
SELECT S#,C#,GRADE,KIND=
CASE
WHEN GRADE>= 80 THEN'优秀'
WHEN GRADE>= 60 THEN'及格'
ELSE'不及格'
END
FROM SC
SELECT S#,C#,GRADE,
CASE
WHEN GRADE>= 80 THEN'优秀'
WHEN GRADE>= 60 THEN'及格'
ELSE'不及格'
END KIND
FROM SC
--取消重复元祖DISTINCT
SELECT S#FROM SC
SELECTDISTINCT S#FROM SC
-- 显示一个常量列(注意下面的5)
SELECT S#+1,C#, 5 常量列
FROM SC
-- select中的WHERE
SELECT S#学号,C#课程号,GRADE分数
FROM SC
WHERE GRADE< 60 AND C#=5
GO
--
SELECT S#学号,C#课程号,GRADE分数
FROM SC
WHERE (GRADE< 60 AND C#=5)
GO
-- 好玩一下~O(∩_∩)O~
SELECT NULL空列
FROM S
--模式匹配(关键字LIKE)
-- % 替代个或者多个字符
SELECT*FROM S
WHERE SNAME LIKE'王%'AND SSEX='男'
--[^...]不匹配集合中的任意一个字
--[...]匹配集合中的任意单个字符
SELECT*FROM S
-----------------------------------------------
WHERE SNAME LIKE'[^张]%'OR SNAME LIKE'[晨]'
GO
-----------------------------------------------
--试试看,说说下面的SQL语句是什么意思
SELECT*FROM S WHERE SNAME LIKE'王[建|亚]%'
SELECT*FROM S WHERE SNAME LIKE'王[^建|^亚]%'
SELECT*FROM S WHERE SNAME LIKE'王[^(建|亚)]%'
--以下的LTRIM函数,是在防止两个字的名字由于前面不下心加了空格而被认作个字符--类似的也会有RTRIM函数.
--两函数作用即删除前后空格
SELECT*FROM S
WHERE LEN(LTRIM(SNAME))=1
--结合运算COLUMN IN(...)
SELECT*FROM S
WHERE SNAME IN('王建国','张%')
GO。