sql 语句使用

来源:互联网 发布:iPhone如何传照片到Mac 编辑:程序博客网 时间:2024/06/08 19:33

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相同
本篇文章来源于 黑客基地-全球最大的中文黑客站 原文链接:http://www.hackbase.com/tech/2009-08-10/54744_2.html

本篇文章来源于 黑客基地-全球最大的中文黑客站 原文链接:http://www.hackbase.com/tech/2009-08-10/54744.html

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微博转发被限制怎么办 百香果蜂蜜沉在下面怎么办 领导要潜我老婆怎么办 被领导潜了该怎么办 实习期单位领导开除我我该怎么办 泡泡袖显手臂肥怎么办 客人想吃霸王餐怎么办 在四楼上课时发生地震怎么办 学生在上课时发生地震怎么办 学生上课时发生地震怎么办 老板承诺的工资不兑现怎么办 只有本科毕业证没有学位证怎么办 孩子跟坏孩子玩怎么办 苕帚跟簸箕掉下来了怎么办 身体发烫又觉得冷怎么办 买苹果8后悔了怎么办 手机死机了怎么办不可拆卸电池 百度网盘密码忘了怎么办 空调冷凝水无法排出怎么办 转账时名字错了怎么办 打款名字错了怎么办 转账名字写错了怎么办 国际汇款汇错了怎么办 汇款英文写错了怎么办 体重秤不显示了怎么办 在ur试完衣服怎么办 汽车主机没有倒车检测线怎么办 合格考补考没过怎么办 合同一式两份双方都丢失怎么办 自控力差的人怎么办 孩子缺乏自控能力该怎么办 名片上换了号码怎么办 格力空调显示u8怎么办 格力空调出现u8怎么办 双肺多发斑点影怎么办 外文翻译没5000字怎么办 睡出永久睡痕怎么办 英语不好学学英文软件怎么办 遥控汽车只能原地打转怎么办 铝合金门上的胶带纸撕不掉怎么办 纸胶带撕不下来怎么办