Ⅰ sql怎麼查詢指定時間段內包含某個內容的所有數據
sql server
SELECT * FROM 表名 WHERE datepart(hour,tm)=12 and datepart(minute,tm)=0 and datepart(second,tm)=0 and datediff(month,tm,getdate())<1
access:用now()代替getdate()
oracle:用sysdate代替getdate()
Ⅱ SQL語句查詢資料庫中所有記錄
查詢一個資料庫中的所有表sql語句是show
tables;
顯示所有資料庫的命令是:show
databases;要查看某個資料庫先要進入資料庫使用user
命令;進入資料庫之後才能查詢資料庫中有哪些表。使用以下命令即可查出所有表:
show
tables;
(2)sql查詢所有數據用什麼代替擴展閱讀
mysql資料庫的基本sql操作命令介紹:
1、顯示當前資料庫伺服器中的資料庫列表:mysql>
SHOW
DATABASES;
2、建立資料庫:mysql>
CREATE
DATABASE
庫名;
3、建立數據表:mysql>
USE
庫名;mysql>
CREATE
TABLE
表名
(欄位名
VARCHAR(20),
字
名
CHAR(1));
4、刪除資料庫:mysql>
DROP
DATABASE
庫名;
5、刪除數據表:mysql>
DROP
TABLE
表名;
6、將表中記錄清空:mysql>
DELETE
FROM
表名;
7、往表中插入記錄:mysql>
INSERT
INTO
表名
VALUES
("hyq","M");
8、更新表中數據:mysql->
UPDATE
表名
SET
欄位名1='a',欄位名2='b'
WHERE
欄位名3='c';
9、用文本方式將數據裝入數據表中:mysql>
load
data
local
infile
"d:/mysql.txt"
into
table
表名;
10、導入.sql文件命令:mysql>
USE
資料庫名;mysql>
source
d:/mysql.sql;
Ⅲ 怎樣用SQL語句查詢一個資料庫中的所有表
1、打開Microsoft SQL Server 2012,選中需要查詢所有表的資料庫。
Ⅳ pl/sql 直接查詢全部數據
pl/sql查詢出來的數據要想修改,那就是用:
--可更新的游標:
--for
update
說明是為了更新才使用的這個游標
--current
of
c
是更新當前這條記錄,當前游標指向哪條記錄上,就更新哪一條
declare
cursor
c
is
select
*
from
emp
for
update;
begin
for
v_temp
in
c
loop
if(v_temp.sal
<
2000)
then
update
emp
set
sal
=
sal*2
where
current
of
c;
elsif(v_temp.sal
=
5000)
then
delete
from
emp
where
current
of
c;
end
if;
end
loop;
commit;
end;
上面程序,如果sal<2000,那麼更新emp表的sal欄位為sal*2,
如果sal=5000,那麼刪除這條記錄.
Ⅳ 如何用sql語句把查詢後的結果那一列數據全部替換。
在oracle中
select cou1,cou2,cou3,decode(sign(cou4-10),-1,decode(sign(cou4-1),1,a,cou4),cou4) from table
在這個之中就是decode函數的使用,decode(條件,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,預設值),相當於if的使用,sign()函數根據某個值是0、正數還是負數,分別返回0、1、-1。decode(sign(cou4-10),-1,decode(sign(cou4-1),1,a,cou4),cou4)這句話的解釋是如果cou4的欄位值減10為負數並且cou4的欄位值減1為正數的話值為a,反之則為cou4的欄位值。。
Ⅵ 如何查詢資料庫里某一張表的全部數據
查詢資料庫里某一張表的全部數據的SQL結構化查詢語句實現:SQL=Select * Fromtable。
結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統。SQL語言的主要功能就是同各種資料庫建立聯系,進行溝通。
SQL查詢語言主要結構為:
Select 查詢欄位 from 表名 Where 查詢條件語句 [排序語句或分組語句]
查詢欄位必須分別用(西文)逗號分開或就用一個*號代替,*號表示查詢全部欄位。數據檢索使用SELECT保留字。FROM子句指定SELECT語句查詢及與查詢相關的表或視圖。
SQL結構化查詢語句中還有條件、模擬、排序、聚合等子句保留字函數供靈活對資料庫、表進行查詢。
Ⅶ 怎樣用SQL語句查詢一個資料庫中的所有表
--讀取庫中的所有表名
select name from sysobjects where xtype='u'
--讀取指定表的所有列名
select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='表名')
獲取資料庫表名和欄位
sqlserver中各個系統表的作用
sysaltfiles 主資料庫 保存資料庫的文件
syscharsets 主資料庫 字元集與排序順序
sysconfigures 主資料庫 配置選項
syscurconfigs 主資料庫 當前配置選項
sysdatabases 主資料庫 伺服器中的資料庫
syslanguages 主資料庫 語言
syslogins 主資料庫 登陸帳號信息
sysoledbusers 主資料庫 鏈接伺服器登陸信息
sysprocesses 主資料庫 進程
sysremotelogins主資料庫 遠程登錄帳號
syscolumns 每個資料庫 列
sysconstrains 每個資料庫 限制
sysfilegroups 每個資料庫 文件組
sysfiles 每個資料庫 文件
sysforeignkeys 每個資料庫 外部關鍵字
sysindexs 每個資料庫 索引
sysmenbers 每個資料庫 角色成員
sysobjects 每個資料庫 所有資料庫對象
syspermissions 每個資料庫 許可權
systypes 每個資料庫 用戶定義數據類型
select 列名=name from syscolumns where id=object_id(N'要查的表名')
Ⅷ mysql百萬數據查詢 用什麼代替in,該如何處理
關於mysql處理百萬級以上的數據時如何提高其查詢速度的方法
最近一段時間由於工作需要,開始關注針對Mysql資料庫的select查詢語句的相關優化方法。
由於在參與的實際項目中發現當mysql表的數據量達到百萬級時,普通SQL查詢效率呈直線下降,而且如果where中的查詢條件較多時,其查詢速度簡直無法容忍。曾經測試對一個包含400多萬條記錄(有索引)的表執行一條條件查詢,其查詢時間竟然高達40幾秒,相信這么高的查詢延時,任何用戶都會抓狂。因此如何提高sql語句查詢效率,顯得十分重要。以下是網上流傳比較廣泛的30種SQL查詢語句優化方法:
1、應盡量避免在 where 子句中使用!=或<>操作符,否則將引擎放棄使用索引而進行全表掃描。
2、對查詢進行優化,應盡量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。
3、應盡量避免在 where 子句中對欄位進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃描,如:
select id from t where num is null
可以在num上設置默認值0,確保表中num列沒有null值,然後這樣查詢:
select id from t where num=0
4、盡量避免在 where 子句中使用 or 來連接條件,否則將導致引擎放棄使用索引而進行全表掃描,如:
select id from t where num=10 or num=20
可以這樣查詢:
select id from t where num=10
union all
select id from t where num=20
5、下面的查詢也將導致全表掃描:(不能前置百分號)
select id from t where name like 『%c%』
若要提高效率,可以考慮全文檢索。
6、in 和 not in 也要慎用,否則會導致全表掃描,如:
select id from t where num in(1,2,3)
對於連續的數值,能用 between 就不要用 in 了:
select id from t where num between 1 and 3
7、如果在 where 子句中使用參數,也會導致全表掃描。因為SQL只有在運行時才會解析局部變數,但優化程序不能將訪問計劃的選擇推遲到運行時;它必須在編譯時進行選擇。然 而,如果在編譯時建立訪問計劃,變數的值還是未知的,因而無法作為索引選擇的輸入項。如下面語句將進行全表掃描:
select id from t where num=@num
可以改為強制查詢使用索引:
select id from t with(index(索引名)) where num=@num
8、應盡量避免在 where 子句中對欄位進行表達式操作,這將導致引擎放棄使用索引而進行全表掃描。如:
select id from t where num/2=100
應改為:
select id from t where num=100*2
9、應盡量避免在where子句中對欄位進行函數操作,這將導致引擎放棄使用索引而進行全表掃描。如:
select id from t where substring(name,1,3)=』abc』–name以abc開頭的id
select id from t where datediff(day,createdate,』2005-11-30′)=0–』2005-11-30′生成的id
應改為:
select id from t where name like 『abc%』
select id from t where createdate>=』2005-11-30′ and createdate<』2005-12-1′
10、不要在 where 子句中的「=」左邊進行函數、算術運算或其他表達式運算,否則系統將可能無法正確使用索引。
11、在使用索引欄位作為條件時,如果該索引是復合索引,那麼必須使用到該索引中的第一個欄位作為條件時才能保證系統使用該索引,否則該索引將不會被使 用,並且應盡可能的讓欄位順序與索引順序相一致。
12、不要寫一些沒有意義的查詢,如需要生成一個空表結構:
select col1,col2 into #t from t where 1=0
這類代碼不會返回任何結果集,但是會消耗系統資源的,應改成這樣:
create table #t(…)
13、很多時候用 exists 代替 in 是一個好的選擇:
select num from a where num in(select num from b)
用下面的語句替換:
select num from a where exists(select 1 from b where num=a.num)
14、並不是所有索引對查詢都有效,SQL是根據表中數據來進行查詢優化的,當索引列有大量數據重復時,SQL查詢可能不會去利用索引,如一表中有欄位 sex,male、female幾乎各一半,那麼即使在sex上建了索引也對查詢效率起不了作用。
15、索引並不是越多越好,索引固然可以提高相應的 select 的效率,但同時也降低了 insert 及 update 的效率,因為 insert 或 update 時有可能會重建索引,所以怎樣建索引需要慎重考慮,視具體情況而定。一個表的索引數最好不要超過6個,若太多則應考慮一些不常使用到的列上建的索引是否有 必要。
16.應盡可能的避免更新 clustered 索引數據列,因為 clustered 索引數據列的順序就是表記錄的物理存儲順序,一旦該列值改變將導致整個表記錄的順序的調整,會耗費相當大的資源。若應用系統需要頻繁更新 clustered 索引數據列,那麼需要考慮是否應將該索引建為 clustered 索引。
17、盡量使用數字型欄位,若只含數值信息的欄位盡量不要設計為字元型,這會降低查詢和連接的性能,並會增加存儲開銷。這是因為引擎在處理查詢和連接時會 逐個比較字元串中每一個字元,而對於數字型而言只需要比較一次就夠了。
18、盡可能的使用 varchar/nvarchar 代替 char/nchar ,因為首先變長欄位存儲空間小,可以節省存儲空間,其次對於查詢來說,在一個相對較小的欄位內搜索效率顯然要高些。
19、任何地方都不要使用 select * from t ,用具體的欄位列表代替「*」,不要返回用不到的任何欄位。
20、盡量使用表變數來代替臨時表。如果表變數包含大量數據,請注意索引非常有限(只有主鍵索引)。
21、避免頻繁創建和刪除臨時表,以減少系統表資源的消耗。
22、臨時表並不是不可使用,適當地使用它們可以使某些常式更有效,例如,當需要重復引用大型表或常用表中的某個數據集時。但是,對於一次性事件,最好使 用導出表。
23、在新建臨時表時,如果一次性插入數據量很大,那麼可以使用 select into 代替 create table,避免造成大量 log ,以提高速度;如果數據量不大,為了緩和系統表的資源,應先create table,然後insert。
24、如果使用到了臨時表,在存儲過程的最後務必將所有的臨時表顯式刪除,先 truncate table ,然後 drop table ,這樣可以避免系統表的較長時間鎖定。
25、盡量避免使用游標,因為游標的效率較差,如果游標操作的數據超過1萬行,那麼就應該考慮改寫。
26、使用基於游標的方法或臨時表方法之前,應先尋找基於集的解決方案來解決問題,基於集的方法通常更有效。
27、與臨時表一樣,游標並不是不可使用。對小型數據集使用 FAST_FORWARD 游標通常要優於其他逐行處理方法,尤其是在必須引用幾個表才能獲得所需的數據時。在結果集中包括「合計」的常式通常要比使用游標執行的速度快。如果開發時 間允許,基於游標的方法和基於集的方法都可以嘗試一下,看哪一種方法的效果更好。
28、在所有的存儲過程和觸發器的開始處設置 SET NOCOUNT ON ,在結束時設置 SET NOCOUNT OFF 。無需在執行存儲過程和觸發器的每個語句後向客戶端發送 DONE_IN_PROC 消息。
29、盡量避免向客戶端返回大數據量,若數據量過大,應該考慮相應需求是否合理。
30、盡量避免大事務操作,提高系統並發能力。
Ⅸ 如何查詢SQL中一個表的所有數據
如果全部查詢就不用where
直接select * from jsxx就可以了
那地方是from 不是form