共计 3430 个字符,预计需要花费 9 分钟才能阅读完成。
这篇文章主要讲解了“SQL 语句增删改查的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“SQL 语句增删改查的用法”吧!
关键字: sql 语句 (增删改查)
一、增:有 4 种方法
1. 使用 insert 插入单行数据:
语法:insert [into] 表名 [列名] values 列值
例:insert into Strdents (姓名, 性别, 出生日期) values (开心朋朋 , 男 , 1980/6/15)
注意:into 可以省略;列名列值用逗号分开;列值用单引号因上;如果省略表名,将依次插入所有列
2. 使用 insert select 语句将现有表中的数据添加到已有的新表中
语法:insert into 已有的新表 列名
select 原表列名 from 原表名
例:insert into tongxunlu (姓名 , 地址 , 电子邮件)
select name,address,email
from Strdents
注意:into 不可省略;查询得到的数据个数、顺序、数据类型等,必须与插入的项保持一致
3. 使用 select into 语句将现有表中的数据添加到新建表中
语法:select 新建表列名 into 新建表名 from 源表名
例:select name,address,email into tongxunlu from strdents
注意:新表是在执行查询语句的时候创建的,不能够预先存在
在新表中插入标识列(关键字‘identity’):
语法:select identity (数据类型,标识种子,标识增长量) AS 列名
into 新表 from 原表名
例:select identity(int,1,1) as 标识列,dengluid,password into tongxunlu from Struents
注意:关键字‘identity’
4. 使用 union 关键字合并数据进行插入多行
语法:insert 表名 列名 select 列值 tnion select 列值
例:insert Students (姓名, 性别, 出生日期)
select 开心朋朋 , 男 , 1980/6/15 union(union 表示下一行)
select 蓝色小明 , 男 , 19**/**/**
注意:插入的列值必须和插入的列名个数、顺序、数据类型一致
二、删:有2中方法
1. 使用 delete 删除数据某些数据
语法:delete from 表名 [where 删除条件]
例:delete from a where name= 开心朋朋(删除表 a 中列值为开心朋朋的行)
注意:删除整行不是删除单个字段,所以在 delete 后面不能出现字段名
2. 使用 truncate table 删除整个表的数据
语法:truncate table 表名
例:truncate table tongxunlu
注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用语有外建约束引用的表
三、改
使用 update 更新修改数据
语法:update 表名 set 列名 = 更新值 [where 更新条件]
例:update tongxunlu set 年龄 =18 where 姓名 = 蓝色小名
注意:set 后面可以紧随多个数据列的更新值;where 子句是可选的,用来限制条件,如果不选则整个表的所有行都被更新
四、查
1. 普通查询
语法:select 列名 from 表名 [where 查询条件表达试] [order by 排序的列名 [asc 或 desc]]
1). 查询所有数据行和列
例:select * from a
说明:查询 a 表中所有行和列
2). 查询部分行列 – 条件查询
例:select i,j,k from a where f=5
说明:查询表 a 中 f = 5 的所有行,并显示 i,j,k3列
3). 在查询中使用AS更改列名
例:select name as 姓名 from a whrer xingbie= 男
说明:查询 a 表中性别为男的所有行,显示 name 列,并将 name 列改名为(姓名)显示
4). 查询空行
例:select name from a where email is null
说明:查询表 a 中 email 为空的所有行,并显示 name 列;SQL 语句中用 is null 或者 is not null 来判断是否为空行
5). 在查询中使用常量
例:select name 唐山 as 地址 from a
说明:查询表 a,显示 name 列,并添加地址列,其列值都为 唐山
6). 查询返回限制行数 (关键字:top percent)
例1:select top 6 name from a
说明:查询表 a,显示列 name 的前6行,top 为关键字
例2:select top 60 percent name from a
说明:查询表 a,显示列 name 的 60%,percent 为关键字
7). 查询排序(关键字:order by , asc , desc)
例:select name
from a
where chengji =60
order by desc
说明:查询表中 chengji 大于等于 60 的所有行,并按降序显示 name 列;默认为ASC升序
2. 模糊查询
1). 使用 like 进行模糊查询
注意:like 运算副只用语字符串,所以仅与 char 和 varchar 数据类型联合使用
例:select * from a where name like 赵 %
说明:查询显示表 a 中,name 字段第一个字为赵的记录
2). 使用 between 在某个范围内进行查询
例:select * from a where nianling between 18 and 20
说明:查询显示表 a 中 nianling 在 18 到 20 之间的记录
3). 使用 in 在列举值内进行查询
例:select name from a where address in (北京 , 上海 , 唐山)
说明:查询表 a 中 address 值为北京或者上海或者唐山的记录,显示 name 字段
3. 分组查询
1). 使用 group by 进行分组查询
例:select studentID as 学员编号, AVG(score) as 平均成绩 (注释: 这里的 score 是列名)
from score (注释: 这里的 score 是表名)
group by studentID
说明:在表 score 中查询,按 strdentID 字段分组,显示 strdentID 字段和 score 字段的平均值;select 语句中只允许被分组的列和为每个分组返回的一个值的表达试,例如用一个列名作为参数的聚合函数
2). 使用 having 子句进行分组筛选
例:select studentID as 学员编号, AVG(score) as 平均成绩 (注释: 这里的 score 是列名)
from score (注释: 这里的 score 是表名)
group by studentID
having count(score) 1
说明:接上面例子,显示分组后 count(score) 1 的行,由于 where 只能在没有分组时使用,分组后只能使用 having 来限制条件,
4. 多表联接查询
1). 内联接
①在 where 子句中指定联接条件
例:select a.name,b.chengji
from a,b
where a.name=b.name
说明:查询表 a 和表 b 中 name 字段相等的记录,并显示表 a 中的 name 字段和表 b 中的 chengji 字段
②在 from 子句中使用 join…on
例:select a.name,b.chengji
from a inner join b
on (a.name=b.name)
说明:同上
2). 外联接
①左外联接查询
例:select s.name,c.courseID,c.score
from strdents as s
left outer join score as c
on s.scode=c.strdentID
说明:在 strdents 表和 score 表中查询满足 on 条件的行,条件为 score 表的 strdentID 与 strdents 表中的 sconde 相同
②右外联接查询
例:select s.name,c.courseID,c.score
from strdents as s
right outer join score as c
on s.scode=c.strdentID
说明:在 strdents 表和 score 表中查询满足 on 条件的行,条件为 strdents 表中的 sconde 与 score 表的 strdentID 相同
感谢各位的阅读,以上就是“SQL 语句增删改查的用法”的内容了,经过本文的学习后,相信大家对 SQL 语句增删改查的用法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!