数据库查询语句

插入数据

INSERT 语法结构

INSERT [INTO] <表名>  [列名] VALUES <值列表>

参数解释

[INTO]和[列名]是可选的

<表名>是必需的

如果省略[列名],<值列表>与表中字段的顺序保持一致

多个列名和多个值列表用逗号分隔

向student表中插入一行数据

insert into student (姓名,身份证号,所在班级,成绩)

values(‘王兰‘, ‘126125199008222446‘, 2,90)

更新数据

UPDATE 语法结构

UPDATE  <表名>  SET  <列名 = 更新值>  [WHERE  <更新条件>]

参数解释

WHERE子句是可选的,用来限制条件

如果省略WHERE字句,表中所有数据行将被更新

更改student表中王兰的成绩为95,备注为“勤奋好学”

update student set 成绩=‘95‘,备注=‘勤奋好学‘ where 姓名=‘王兰‘

删除数据

DELETE 语法结构

DELETE  FROM  <表名>  [WHERE <删除条件>]

参数解释

WHERE子句是可选的,用来限制删除条件

如果省略WHERE字句,表中所有数据行将被删除

Truncate Table语法结构

Truncate  table <表名>

删除表中的所有行


条件删除


记录事物日志


重置标识符列


外键约束


Delete


使用where子句按条件删除


是,数据可以恢复



可以用于含有外键约束的表


Truncate table


只能清空整个表


否,数据无法恢复


重置标识符列为0

Truncate Table执行速度更快,用于清空大数据量表

在执行Truncate Table前要确保数据可删除

SQL和T-SQL

SQL(结构化查询语言)

关系数据库的标准语言

SQL Server、 Oracle、DB2

非过程化语言

不需要指定对数据的存放方法

统一的语言

创建、修改以及删除数据对象(数据库、表等)

T-SQL

SQL的加强版, 提供了类似于程序语言的基本功能

变量说明、流程控制、功能函数

T-SQL的组成

DML:数据操纵语言

查询、插入、删除和修改数据

SELECT、INSERT、UPDATE、DELETE

DDL:数据定义语言

建立数据库、数据库对象和定义其列

CREATE、ALTER、DROP

DCL:数据控制语言

控制数据库组件的存取许可、存取权限等

GRANT、REVOKE

SELECT语法结构

SELECT select_list

[INTO new_table_name]

FROM table_name

[ WHERE search_conditions ]

[GROUP BY group_by_expression] [HAVING search_conditions]

[ORDER BY order_expression [ASC|DESC] ]

 参数解释

SELECT子句:指定查询内容

INTO子句:把查询结果存放到一个新表中

FROM子句:指定查询源

WHERE子句:查询条件

GROUP BY子句:指定查询结果的分组条件

HAVING子句:指定分组搜索条件,与GROUP BY子句一起使用

ORDER BY子句:指定查询结果的排序方式

表达式

条件表达式

常量:表示单个指定数据值的符号

字母、数字或符号

列名:表中列的名称

一元运算符:仅有一个操作数的运算符

“+”表示正数,“-”表示负数

二元运算符:将两个操作数组合执行操作的运算符

算术运算符、位运算符、逻辑运算符、比较运算符

运算符含义

=等于

>大于

<小于

>=大于或等于

<=小于或等于

<>不等于

!=不等于

BETWEEN指定值的包含范围(包含边界)。使用 And 分隔开始值和结束值

IS [Not] NULL指定是否搜索空值或非空值

LIKE模糊查询,与指定字符串进行模式匹配

IN是否在数据范围里面

条件表达式举例

PRICE > 20,表示满足大于20的PRICE值

PRICE <> 20,表示满足不等于20的PRICE值

PRICE Between 10 And 20,表示满足大于等于10并且小于等于20的PRICE值

NAME Like ‘李%‘,表示满足NAME姓名字段里姓李的所有姓名

逻辑表达式

用逻辑运算符将条件连接起来,运算结果是一个逻辑值

TRUE或FALSE

逻辑运算符

运算符含义

AND组合两个条件,并在两个条件都为True时取值为True

OR组合两个条件,并在两个条件之一为 True 时取值为True

NOT和其他操作符一起使用,取反的操作

逻辑表达式举例

付款方式为信用卡,并且只能是牡丹卡、金穗卡或龙卡

付款方式 = ‘信用卡’ AND 信用卡 in (‘牡丹卡’, ‘金穗卡’, ‘龙卡’)

查询举例——查询列

查询表中所有列

SELECT * FROM table_name

查询student 表中的所有学生信息

SELECT * FROM student

查询表中特定列

SELECT column_name_1,column_name_2,... FROM table_name

查询student表中姓名、所在班级、成绩列的内容

SELECT 姓名,所在班级,成绩 FROM student

查询举例——查询特定行

语法结构

SELECT select_list FROM table_name WHERE search_conditions

查询student表中2班的名叫刘婷的学生

SELECT * FROM student WHERE 姓名=‘刘婷‘ AND 所在班级=2

查询student表中成绩在90到100的所有学生

SELECT * FROM student WHERE 成绩 BETWEEN 90 AND 100

查询student表中姓刘的所有学生

SELECT * FROM student WHERE 姓名 LIKE ‘刘%‘

查询student表中备注不为空的所有学生

SELECT * FROM student WHERE 备注 is NOT NULL

查询举例——查询返回限制的行数

语法结构

SELECT TOP n select_list FROM table_name

参数解释

TOP关键字用来限制查询返回的行数,n为需要返回的行数

查询student表中前5行的数据

SELECT top 5 * FROM student

查询举例——改变查询结果集列名称

语法结构

SELECT column_name AS column_alias FROM table_name

参数解释

AS子句用来改变结果集列的名称

查询student表中姓名和身份证号两列数据

SELECT 姓名 AS name,身份证号 as idcard FROM student

查询举例——查询结果排序

语法结构

SELECT select_list FROM table_name ORDER BY column_name [ASC|DESC]

参数解释

ASC:升序

DESC:降序

查询student表中学生信息,按照成绩从高到低显示结果

SELECT * FROM student order by 成绩 DESC

查询举例——聚合函数

用于对一组值执行计算,并返回单个值

如求总和、平均值、最大或最小值等

SUM:求总和

查询student表中所有学生的总成绩

SELECT SUM(成绩) 总成绩 FROM student

AVG:求平均数

查询student表中所有学生的平均成绩

SELECT AVG(成绩) 平均成绩 FROM student                                      MAX和MIN:返回最大最小值

查询student表中所有学生中的最高分和最低分

SELECT MAX(成绩) 最高分,MIN(成绩) 最低分 FROM student

COUNT:返回非空值的计数

查询student表中所有行数

SELECT COUNT(*) 总行数 FROM student

查询举例——分组查询

语法结构

SELECT select_list FROM table_name GROUP BY column_name

HAVING search_conditions

参数解释

GROUP BY子句对查询结果进行分组

HAVING子句指定分组搜索条件

查询student表中每个班级的总成绩

SELECT 所在班级,SUM(成绩) AS 总成绩 FROM student GROUP BY 所在班级

查询student表中总成绩大于200的班级

SELECT 所在班级,SUM(成绩) AS 总成绩 FROM student GROUP BY 所在班级 HAVING SUM(成绩)>200

WHERE子句和 HAVING子句的区别

WHERE子句在分组之前过滤数据,条件中不能包含聚合函数

HAVING子句在分组之后过滤数据,条件中经常包含聚合函数

查询举例——插入数据

语法结构

SELECT select_list INTO new_table_name FROM table_name

参数解释

INTO子句把一个表中的数据经过筛选插入到另一个表中

将student表的数据插入到新表student_bak中

SELECT * INTO student_bak FROM student

将student表中2班的学生信息保存到表student_2中

SELECT * INTO student_2 FROM student WHERE 所在班级=2

表的连接类型

内连接(INNER JOIN)

只返回两个数据集合之间匹配关系的行

外连接

左外连接(LEFT JOIN )

结果集包括左表的所有行

右外连接(RIGHT JOIN )

结果集包括右表的所有行

完整外连接(FULL JOIN)

返回左表和右表中的所有行

交叉连接

返回左表与右表挨个连接的所有行

内连接

方式一:在Where子句中指定连接条件

SELECT A.name 姓名A,A.school 学校A,B.name 姓名B,B.job 职业B FROM A,B WHERE A.name=B.name

方式二:在FROM子句中使用INNER JOIN…ON子句

SELECT A.name 姓名A,A.school 学校A,B.name 姓名B,B.job 职业B FROM  A inner join B on A.name=B.name

左外连接和右外连接

    左外连接查询

SELECT A.name 姓名A,A.school 学校A,B.name 姓名B,job 职业B FROM A left join B on A.name=B.name

右外连接查询

SELECT A.name 姓名A,A.school 学校A,B.name 姓名B,job 职业B FROM A right join B on A.name=B.name

    完整外连接查询

SELECT A.name 姓名A,A.school 学校A,B.name 姓名B,job 职业B FROM A full join B on A.name=B.name

时间: 2024-10-16 04:18:40

数据库查询语句的相关文章

数据库查询语句关键字总结

看过牛腩视频后,前17集讲后台代码的编写,尤其讲到查询语句的时候,顿时感觉原来学习过的查询语句中用到的关键字烟消云散了,啥都不记得了,通过看视频,帮着回忆了一部分,在这里总结一下,查询语句中用到的关键字的含义及使用. 一.select语句(单个表) 1.最简单的查询: select * from [where ] select column1,column2....from [where] 这里需要注意的是where子句中条件过滤使用到的关键字,比如用到逻辑运算符like 中的'%'(匹配一个或

NumberFormatException: Invalid int类型不匹配异常——使用SQL数据库查询语句select * from blacknumber order by _id desc limit ?,20;出现

异常:类型不匹配 05-06 08:12:38.151: E/AndroidRuntime(14904): java.lang.NumberFormatException: Invalid int: "18600000099" 05-06 08:12:38.151: E/AndroidRuntime(14904): at com.itheima.mobilesafe74.activity.BlackNumberActivity$Myadapter.getView(BlackNumber

数据库---查询语句(三):高级查询

高级查询 一.多表连接(连接的是两个表中的列) 1.select * from Info,Nation where Info.Nation=Nation.Code select  Info.Code,Info.Name,Nation.Name  from Info ,Nation where Info.Nation=Nation.Code    //where 后面是一个外键关系 select * from Info      出现的现象,形成的表叫做笛卡尔积 2. join 连接 select

shop++ CriteriaQuery 数据库查询语句

hibernate 的criteria 查询语句是一种更加面向对象的方式查询. CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); //创建一个entityManager创建一个CriteriaBuilder 实列CriteriaQuery<T> criteriaQuery = criteriaBuilder.createQuery(entityClass);//criteriaBuilder创建一个cre

10-31C#基础--数据库查询语句之聚合函数、分组

在查询语句时,也存在一些方法和属性,而这些方法在查询时统称为函数,便利查询时使用 聚合函数(都是针对字段操作) 聚合是缩减一系列输入值的表达式,例如缩减为单个值. Select*from biao 1.--求平均分AVG:只能对数字类型的操作,返回一个值(返回非null值的平均值) Select AVG(age)from biao--执行后没有列名 Select AVG(age) as nianing from biao---执行后有列名,加as. --放在select...from之间的一定是

数据库查询语句研究

重点研究查询数据,其他语句只做了解!!!"""一些最重要的 SQL 命令:    select - 从数据库中提取数据    update - 更新数据    delete - 删除数据    insert - 插入数据    create database - 创建新数据库    alter database - 修改数据库    create table - 创建表    alter table - 变更数据库表    drop table - 删除表    create

连接Access数据库查询语句

--在使用之前注意将“生成”里的“配置管理器”的“配置平台”改成X86 private void button1_Click(object sender, EventArgs e)//查询 { OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Score.mdb;Jet OLEDB:Database Password=");//连接Access2003

Oracle数据库查询语句

编写以下查询的SQL语句,以scott用户的emp表和dept表作为查询数据: 1.列出至少有一个员工的所有部门. SQL语句: select * from SCOTT.DEPT where deptno in (select distinct deptno from SCOTT.DEPT); 查询结果: 2.列出所有员工的姓名及其直接上级的姓名. SQL语句: select e.ename 员工姓名,m.ename 上级姓名 from scott.emp e,scott.emp m where

MySQL数据库 : 查询语句,连接查询及外键约束

查询指定字段        select 字段1,字段2 from 表名; 消除重复行(重复指的是结果集中的所有完全重复行)             select distinct 字段1,字段2... from 表名 比较运算符(< > != = )            select * from 表名 where id>4 逻辑运算符(and or not in)            select * from 表名 where id>4(条件1) and gender=1