1. 程式人生 > >SQL 語法之“增”、“刪”、“改”、“查”

SQL 語法之“增”、“刪”、“改”、“查”

group by num having div 沒有 popu 模糊查詢 上海 條件

/*
四、查

1.普通查詢

    語法:select <列名> from <表名> [where <查詢條件表達試>] [order by <排序的列  

          名>[asc或desc]]
		  */
/*

   1).查詢全部數據行和列

    例:select * from a

    說明:查詢a表中全部行和
*/
select *from person

技術分享


/*

   2).查詢部分行列--條件查詢

    例:select i,j,k   from  a   where f=5

    說明:查詢表a中f=5的全部行。並顯示i,j,k3列
*/

select  ID FirstName ,LastName from person where ID>5 

技術分享
/*

   3).在查詢中使用AS更改列名

    例:select name as 姓名 from a where  gender=‘男‘

    說明:查詢a表中性別為男的全部行,顯示name列。並將name列改名為(姓名)顯示
*/
select ID as Id號,FirstName as 姓名 from person 

技術分享
/*

   4).查詢空行

    例:select name from a where email is null

    說明:查詢表a中email為空的全部行,並顯示name列;SQL語句中用is null或者is not null

                  來推斷是否為空行
*/
select * from person where City is null

技術分享
/*
   5).在查詢中使用常量

    例:select name ‘北京‘ as 地址 from a

    說明:查詢表a,顯示name列。並加入地址列。其列值都為‘北京‘

   6).查詢返回限制行數(keyword:top )

    例1:select top 6 name from a

    說明:查詢表a,顯示列name的前6行,top為keyword(oracle 中沒有topkeyword

             用rownum替代)

                          select   *   from   a where   rownum<6  
*/

/*

   7).查詢排序(keyword:order by , asc , desc)

    例:select name

      from a

      where grade>=60

      order by desc

    說明:查詢表中成績大於等於60的全部行,並按降序顯示name列;默覺得ASC升序
*/
select ID,LastName from person where ID >5  order by ID desc
/*

2.模糊查詢

   1).使用like進行模糊查詢

    註意:like運算副僅僅用語字符串。

    例:select * from a where name like ‘趙%‘

    說明:查詢顯示表a中,name字段第一個字為趙的記錄

   2).使用between在某個範圍內進行查詢

    例:select * from a where age between 18 and 20

    說明:查詢顯示表a中年齡在18到20之間的記錄

    3).使用in在列舉值內進行查詢(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

           2).使用having子句進行分組篩選

    例:select studentID as 學員編號, AVG    

from score

      group by studentID

      having count(score)>1

    說明:接上面樣例,顯示分組後count(score)>1的行,因為where僅僅能在沒有分組

       時使用,分組後僅僅能使用having來限制條件。

4.多表聯接查詢

   1).內聯接

    ①在where子句中指定聯接條件

    例:select a.name,b.mark

      from a,b

      where a.name=b.name

    說明:查詢表a和表b中name字段相等的記錄,並顯示表a中的name字段和表b中的

            mark字段
--刪除一條數據
/*
語法:delete from <表名> [where <刪除條件>]    
例:delete from a where name=‘王偉華‘(刪除表a中列值為王偉華的行) 
註意:刪除整行不是刪除單個字段。所以在delete後面不能出現字段名
*/


select * from dbo.person
delete from dbo.person where FirstName=‘Carvin‘                          

select * from dbo.person
delete from person where ID=126

/*
1.使用insert插入單行數據:

         語法:insert [into] <表名> [列名] values <列值>

   例:insert into Strdents (姓名,性別,出生日期) values (‘王偉華‘,‘男‘,‘1983/6/15‘)

   註意:假設省略表名,將依次插入全部列

 

2.使用insert,select語句將現有表中的 數據加入到已有的新表中

        語法:insert into <已有的新表> <列名> select <原表列名> from <原表名>

  例:insert into addressList (‘姓名‘,‘地址‘,‘電子郵件‘)select name,address,email          

                from  Strdents 

      註意:查詢得到的數據個數、順序、數據類型等,必須與插入的項保持一致
*/
insert into dbo.person(ID,LastName,FirstName) Values(126,‘Wade‘,‘DeDN‘)    --插入一條數據      
select * from person


--改動一條數據
/*

語法:update <表名> set <列名=更新值> [where <更新條件>]
例:update addressList set 年齡=18 where 姓名=‘王偉華‘
*/

update person set LastName=‘KKKK‘ where ID =5
select *from person


--單行凝視

--多行凝視
/*
 1 Line
 2 Line
 3 Line
*/

技術分享

SQL 語法之“增”、“刪”、“改”、“查”