zoukankan      html  css  js  c++  java
  • SQL增删查改语句

    一、增:有4种方法
    1.使用insert插入单行数据:
    语法:insert [into] <表名> [列名] values <列值>
    insert into sheet1
    values ('000000','000000','0','张三','000000','000000','000000','000000','0','0','000000', '1900-1-1 0:00:00','派出所','0','泉山分局')
    (如果没有写表的属性的话,则需依次添加列植)


    例: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
    注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用语有外建约束引用的表

    删除有重复字段的数据:

    delete from 表名 where OrgID in(select OrgID from 表名 group by OrgID having count(OrgID>1) )

    三、改 使用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相同

    五、建表删表 例: create table users ( uName varchar(50) primary key , uGander varchar(50), uAge varchar(50), uCareer varchar(50), uNote varchar(50), uLog varchar(50), uPwd varchar(50) )

    六、删表 例: DROP TABLE users

    让技术改变未来,让技术影响人们生活方式
  • 相关阅读:
    第八章 多线程编程
    Linked List Cycle II
    Swap Nodes in Pairs
    Container With Most Water
    Best Time to Buy and Sell Stock III
    Best Time to Buy and Sell Stock II
    Linked List Cycle
    4Sum
    3Sum
    Integer to Roman
  • 原文地址:https://www.cnblogs.com/huangtaiyu/p/5568945.html
Copyright © 2011-2022 走看看