1. 程式人生 > >關於SQL的常用操作(增、刪、改、查)

關於SQL的常用操作(增、刪、改、查)

沒有 sql 獲取 臨時表 values 青雲 無需 內存 關於

  關於SQL的常見操作主要是增、刪、改、查。

  1、增,顧名思義就是新增數據(insert into)。該語句用於向表中插入新紀錄。insert into有兩種用法。

    (1)、無需指定要插入數據的列名,只提供被插入的值,

      語法:INSERT INTO table_name VALUES (value1,value2,value3,...);

      但是這種方法要註意一點,那就是需要列出插入行中的每一列數據,如果某一列沒有數據的話,可以使用引號替代,如果沒有列出插入行中每一列數據,就會報錯。

    (2)、指定列名及被插入的值,

      語法:INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);

      通過這種方法也可以向指定的列中添加數據

    (3)、一次性向表中插入多條數據。

      操作為,insert into table_name values (value1,value2,...), (value3, value4,...), (value5, value6)。可以指定列名,也可以不指定列名,如果指定了列名,則是向指定列添加數據。如果不指定列名,那麽則需要列出插入行中的每一列數據。

  2、刪,也就是刪除數據,這裏其實也有兩種,delete與drop。然而這兩種的效果確實不一樣的,雖然都能刪除數據。

    (1)、delete。該語句用於刪除表中的記錄。語法:DELETE FROM table_name WHERE some_column=some_value;

      例如,要從myTable表中刪除title為 ‘掃毒’的數據。操作為 delete from [dbo].[myTable] where title=‘掃毒‘

      如果是要刪除myTable表中的所有數據,操作為 delete from [dbo].[myTable],此時表中的數據都會被刪除,但是表的結構、屬性、索引等仍保持不變,也不會釋放內存空間。

      註意:使用delete刪除數據時,如果省略了where子句,那麽所有的數據都將會被刪除。

    (2)、drop。該語句用於刪除表,且內存空間會被釋放。

      例如,要刪除表myTable,那麽操作為,drop table [dbo].[myTable]

    (3)、刪除表中重復的數據。可以這樣做,首先去除重復,再獲取n條數據並將其插入到臨時表中,再將原表的數據刪除,然後將臨時表的數據插入到原表,最後刪除臨時表

      例如表myTable中有多條title相同的數據,要刪除相同的,只保留一條,那麽操作為:           

      select distinct * into [dbo].[newTable] from [dbo].[myTable];
      delete from [dbo].[myTable];
      insert [dbo].[myTable] select * from [dbo].[newTable];
      drop table [dbo].[newTable];

  3、改,也就是更改表中的數據(update),用於更新表中已存在的數據。

    語法:UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;

    例如,要將myTable表中 title為 ‘掃毒’ 的這條數據,將play改為 ‘古天樂、張家輝、劉青雲’,那麽操作為,update [dbo].[myTable] set play=‘古天樂、張家輝、劉青雲‘ where title=‘掃毒‘

    註意:使用update更新表中數據時,如果省略了where子句,那麽表中所有數據都將被更新。

  4、查,也就是查詢表中的數據(select)。

    語法:SELECT column_name,column_name FROM table_name; 或 SELECT * FROM table_name;

    例如,要查詢表myTable中的所有數據,可以使用 select * from [dbo].[myTable] 或者將 "*"更改為表中數據行每一列的數據名。

    (1)、選取表中包含某字符的數據。

      例如,選取表myTable中play包含 ‘古’ 的所有數據,則操作為,select * from [dbo].[myTable] where play like ‘%古%‘

    (2)、選取表中以某字符開始的數據。

      例如,選取表myTable中play以 “古” 開頭的所有數據,則操作為,select * from [dbo].[myTable] where play like ‘古%‘

    (3)、選取表中以某字符結尾的數據。

      例如,選取表myTable中play以 “古” 結尾的所有數據,則操作為,select * from [dbo].[myTable] where play like ‘%古‘

    (4)、選取表中指定長度包含指定字符的數據。

      例如,選取表myTable中play包含三位且中間為 “古”的數據,則操作為 select * from [dbo].[myTable] where play like ‘_古_‘

      選取表myTable中play包含三位且開頭為 “古”的數據,則操作為 select * from [dbo].[myTable] where play like ‘古__‘

      選取表myTable中play包含三位且結尾是 “古” 的數據,則操作為 select * from [dbo].[myTable] where play like ‘__古‘

    ps:% => 代表0個或多個字符

      _ => 代表1個字符

    (5)、使用in操作符,該操作符允許在where子句中規定多個值。

      例如,要選取表myTable中title為 "掃毒" 或 "貪狼" 的數據,則操作為 select * from [dbo].[myTable] where title in (‘掃毒‘, ‘貪狼‘)

    (6)、between操作符,選取介於兩個值之間的數據範圍內的值。這些值可以是數值、文本或者日期。

      例如,要選取表myTable中score 介於 10 到 200 間的數據。則操作為 select * from [dbo].[myTable] where score between 10 and 200

      註意:在某些數據庫中,BETWEEN 選取介於兩個值之間但不包括兩個測試值的字段。

     在某些數據庫中,BETWEEN 選取介於兩個值之間且包括兩個測試值的字段。

  在某些數據庫中,BETWEEN 選取介於兩個值之間且包括第一個測試值但不包括最後一個測試值的字段。

    (7)、選取要返回指定數目的數據(select top)。

      語法:SELECT TOP number|percent column_name(s) FROM table_name;

      例如,要選取表myTable中前100條數據,則操作為 select top 100 * from [dbo].[myTable]

      選取表myTable中前50%的數據,則操作為 select top 50 percent * from [dbo].[myTable]

    (8)、返回表中唯一不同的值(distinct)。

      語法:SELECT DISTINCT column_name,column_name FROM table_name;

      例如表myTable中有多條 title 為 ‘掃毒’的數據,現在只想返回一條,那麽操作為 select distinct title from [dbo].[myTable]

關於SQL的常用操作(增、刪、改、查)