数据表的增删改查语句(数据增删改查的语法)

数据表的增删改查语句(数据增删改查的语法)p 一 增 有 4 种方法 br 1 使用 insert 插入单行数据 br 语法 insert into lt 表名 gt 列名 values lt 列值 gt br 例 p

大家好,我是讯享网,很高兴认识大家。



 <p>一、增&#xff1a;有4种方法<br />   1.使用insert插入单行数据&#xff1a;<br />                    语法&#xff1a;insert [into] &lt;表名&gt; [列名] values &lt;列值&gt;<br />      例&#xff1a;insert into Strdents (姓名,性别,出生日期) values (&#39;开心朋朋&#39;,&#39;男&#39;,&#39;1980/6/15&#39;)<br />      注意&#xff1a;into可以省略&#xff1b;列名列值用逗号分开&#xff1b;列值用单引号因上&#xff1b;如果省略表名&#xff0c;将依次插入所有列<br />   2.使用insert select语句将现有表中的数据添加到已有的新表中<br />                    语法&#xff1a;insert into &lt;已有的新表&gt; &lt;列名&gt;<br />                       select &lt;原表列名&gt; from &lt;原表名&gt;<br />      例&#xff1a;insert into tongxunlu (&#39;姓名&#39;,&#39;地址&#39;,&#39;电子邮件&#39;)<br />                      select name,address,email<br />                      from Strdents<br />                    注意&#xff1a;into不可省略&#xff1b;查询得到的数据个数、顺序、数据类型等&#xff0c;必须与插入的项保持一致<br />   3.使用select into语句将现有表中的数据添加到新建表中<br />                    语法&#xff1a;select &lt;新建表列名&gt; into &lt;新建表名&gt; from &lt;源表名&gt;<br />      例&#xff1a;select name,address,email into tongxunlu from strdents<br />      注意&#xff1a;新表是在执行查询语句的时候创建的&#xff0c;不能够预先存在<br />      在新表中插入标识列&#xff08;关键字‘identity’&#xff09;&#xff1a;<br />      语法&#xff1a;select identity (数据类型&#xff0c;标识种子&#xff0c;标识增长量) AS 列名<br />                       into 新表 from 原表名<br />      例&#xff1a;select identity(int,1,1) as 标识列,dengluid,password into tongxunlu from Struents<br />      注意&#xff1a;关键字‘identity’<br />   4.使用union关键字合并数据进行插入多行<br />      语法&#xff1a;insert &lt;表名&gt; &lt;列名&gt; select &lt;列值&gt; tnion select &lt;列值&gt;<br />      例&#xff1a;insert Students (姓名,性别,出生日期)<br />                      select &#39;开心朋朋&#39;,&#39;男&#39;,&#39;1980/6/15&#39; union&#xff08;union表示下一行&#xff09;<br />                      select &#39;蓝色小明&#39;,&#39;男&#39;,&#39;19//&#39;<br />                    注意&#xff1a;插入的列值必须和插入的列名个数、顺序、数据类型一致<br /> 二、删&#xff1a;有&#xff12;中方法<br />   1.使用delete删除数据某些数据<br />                   语法&#xff1a;delete from &lt;表名&gt; [where &lt;删除条件&gt;]<br />      例&#xff1a;delete from a where name&#61;&#39;开心朋朋&#39;&#xff08;删除表a中列值为开心朋朋的行&#xff09;<br />                   注意&#xff1a;删除整行不是删除单个字段&#xff0c;所以在delete后面不能出现字段名<br />   2.使用truncate table 删除整个表的数据<br />                   语法&#xff1a;truncate table &lt;表名&gt;<br />      例&#xff1a;truncate table tongxunlu <br />      注意&#xff1a;删除表的所有行&#xff0c;但表的结构、列、约束、索引等不会被删除&#xff1b;不能用语有外建约束引用的表<br />      3.删除存储过程<br />         DROP PROCEDURE xp_MSGetCode7  </p> 

讯享网

     一、SQL中的语法

   1、drop table 表名称                         eg: drop table  dbo.Sys_Test
   2、truncate table 表名称                     eg: truncate  table dbo.Sys_Test                  
   3、delete from 表名称 where 列名称 = 值      eg: delete from dbo.Sys_Test where test=‘test’

二、drop,truncate,delete区别

    1、drop (删除表):删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。

       drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index);依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。


讯享网

    2、truncate (清空表中的数据):删除内容、释放空间但不删除定义(保留表的数据结构)。与drop不同的是,只是清空表数据而已。

       注意:truncate 不能删除行数据,要删就要把表清空。

    3、delete (删除表中的数据):delete 语句用于删除表中的行。delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存

       以便进行进行回滚操作。

       truncate与不带where的delete :只删除数据,而不删除表的结构(定义)

    4、truncate table 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用delete。

    6、执行速度,一般来说: drop&gt; truncate &gt; delete。

    7、delete语句是数据库操作语言(dml),这个操作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。

             truncate、drop 是数据库定义语言(ddl),操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发 trigger。 

三、改
  使用update更新修改数据
                 语法:update &lt;表名&gt; set &lt;列名=更新值&gt; [where &lt;更新条件&gt;]
     例:update tongxunlu set 年龄=18 where 姓名=‘蓝色小名’
     注意:set后面可以紧随多个数据列的更新值;where子句是可选的,用来限制条件,如果不选则整个表的所有行都被更新
四、查
  1.普通查询
     语法:select &lt;列名&gt; from &lt;表名&gt; [where &lt;查询条件表达试&gt;] [order by &lt;排序的列名&gt;[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&gt;=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)&gt;1
    说明:接上面例子,显示分组后count(score)&gt;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相同

















































































小讯
上一篇 2025-05-28 14:23
下一篇 2025-04-23 21:19

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/165306.html