软件测试必备MySQL语句查询

一、增:有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 <列值> union 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相同



1 | 查询所有数据 

select * from Info 查所有数据

select Code,Name from Info 查特定列

 2 | 根据条件查 

select * from Info where Code='p001' 一个条件查询

select * from Info where Code='p001' and Nation='n001' 多条件 并关系 查询

select * from Info where Name='胡军' or Nation='n001' 多条件 或关系 查询

select * from Car where Price>=50 and Price<=60 范围查询

select * from Car where Price between 50 and 60 范围查询

3 | 模糊查询 

select * from Car where Name like '%型' %通配符代表任意多个字符

select * from Car where Name like '%奥迪%

select * from Car where Name like '_马%'_通配符代表任意一个字符

 4| 排序 

select * from Car order by Price asc 按照价格升序排列

select * from Car order by Price desc 按照价格降序排列

select * from Car order by Price,Oil 按照两列进行排序,前面的为主要的

 5 | 统计函数(聚合函数)

select count(Code) from Car 查询表中有多少条数据

select max(Price) from Car 取价格的最大值

select min(Price) from Car 取价格的最小值

select sum(Price) from Car 取价格的总和

select avg(Price) from Car 取价格的平均值

 6 | 分组查询 

select Brand from Car group by Brand having count(*)>2    查询所有系列中数量大于2的

select count(*),sex from student group by sex         查询student表中男女性别sex的数量


 7 | 分页查询 

select * from Car limit 0,5 跳过几条数据取几条数据

 8 | 去重查询 

select distinct Brand from Car

 9 | 表中增加一列

如果想在一个已经建好的表TABLE_NAME中添加一列,可以用诸如:

alter table TABLE_NAME add column NEW_COLUMN_NAME varchar(20) not null;

这条语句会向已有的表中加入新的一列,这一列在表的最后一列位置。如果我们希望添加在指定的一列,可以用:

alter table TABLE_NAME add column NEW_COLUMN_NAME varchar(20) not null after COLUMN_NAME;

注意,上面这个命令的意思是说添加新列到某一列后面。如果想添加到第一列的话,可以用:

alter table TABLE_NAME add column NEW_COLUMN_NAME varchar(20) not null first;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,192评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,858评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,517评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,148评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,162评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,905评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,537评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,439评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,956评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,083评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,218评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,899评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,565评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,093评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,201评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,539评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,215评论 2 358

推荐阅读更多精彩内容

  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,820评论 5 116
  • 首先需要注意的是:查询语句select再怎么操作都不会改变表中的数据!! 1、查询语句的语法格式 select 列...
    jimmywife阅读 2,154评论 0 4
  • 第1章 初涉MySQL 1.1 MySQL文件 (1)MySQL目录结构 (2)MySQL配置向导文件(安装后配置...
    凛0_0阅读 790评论 1 0
  • 一、SQL速成 结构查询语言(SQL)是用于查询关系数据库的标准语言,它包括若干关键字和一致的语法,便于数据库元件...
    shadow雨轩阅读 514评论 0 3
  • 作为一个从不染指二次元的老土80后 我最近居然迷上了一部动漫改编剧 是的,就是《画江湖之不良人》 要知道自古改编毁...
    叁叁89阅读 1,203评论 2 2