SQL基本操作語句
查詢語句-select * from table; select * from table where 條件1=數值 and 條件2=數值; select * from table where id in (select id from table);兩表關聯 select a.a,b.b,c.c from table1 a,table2 b,table3 c where *1=*2;插入語句-insert into table (字段1,字段2,字段3,……) values (數值1,數值2,數值3,……);更新語句-update 表名 set 數值 where=id = 1;添加列語句-alter table 表名 add (列名1 類型1,列名2 類型2,列名3 類型3,……);查詢隨機20條記錄-select * from( select * from emp order by dbms_*) where rownum <= 10;修改列類型-alter table 表名 modify (列名1 類型1,列名2 類型2,列名3 類型3,……);刪除列語句-alter table 表名 drop column 列名s;顯示查詢時間-set timing on;刪除表語句-deltet table 表名;清空表數據-truncate table 表名;修改列名 - ALTER TABLE emp RENAME COLUMN comm TO newa;集合查詢(無重復):select * from table_name union select * from table_name;集合查詢(有重復):select * from table_name union all select * from table_name;差 集 查 詢:select * from table_name minus select * from table_name;--------------------------------------------------------------------------------運行腳本-start d:\文件名.sql;編輯腳本-edit d:\文件名.sql;另存為腳本-spool d:\文件.sql;select * from emp;spool off;分頁顯示-set pagesize 頁數;行數顯示-set linesize 行數;創建用戶-create user 用戶名 identified by 密碼;(需要SYS/SYSTEM權限才能建立用戶)賦予權限-grant resource to 用戶名;(建表權限)賦予查詢權限-grant select on emp to 用戶名;賦予修改權限-grant update on emp to 用戶名;賦予所有訪問權限-grant all on emp to 用戶名;--------------------------------------------------------收回查詢權限-revoke select on emp from 用戶名;傳遞權限-grant select on emp to 用戶名2 with grant option;賬戶鎖定-creata profile 名稱 limit failed_login_attcmpts 輸入次數限制 password_lock_time 鎖定天數;------------------------------DBA權限登錄alter user 想要鎖定的用戶名 profile 名稱;------------------------------DBA權限登錄解鎖用戶鎖定-alter user 用戶名 account unlock;定期修改密碼-create profile 名字 limit password_life_time 天數 password_grace_time 寬限天數;切換用戶-conn system/密碼;更改密碼-password 用戶名;刪除用戶-drop user 用戶名 cascade(刪除用戶及用戶建立的所有表);查詢同樣結構兩表中的不同數據-select * from emp_tmp where empno not in(select empno from emp);select * from v$session;select * from v$version;定義函數:---------函數說明 函數是計算數字平方;FUNCTION y2(inx2 number)return number is Result number(2);begin Result := inx2*inx2; return(Result);end y2;---------函數說明 函數是輸入漢字然后輸出拼音;FUNCTION HZ(inputStr in VARCHAR2)RETURN VARCHAR2 iSoutputStr varchar2(10);BEGINSELECT c_spell INTO outputStr FROM BASE$CHINESE WHERE C_WORD = inputStr;RETURN outputStr;END hz; ----------函數說明 函數是計算累加自然月;FUNCTION month(inmonth number,inaddmonth number)return varchar2 is Result varchar2(6);begin Result :=substr(to_char(add_months(to_date(inmonth,'yyyymm'),inaddmonth),'yyyymmdd'),1,6); return(Result);end month; select to_char(add_months(trunc(sysdate),-1),'yyyymmdd') from dual;--取上個月的日期;select to_char((sysdate-30),'yyyymmdd') from dual; ---去當前日期前30天日期; ORACLE 隨機數DBMS_*(low IN NUMBER,high IN NUMBER) RETURN NUMBER;select round(dbms_*(x,x)) from dual;ORACLE 取當前時間并按毫秒計算select systimestamp from dual;select * from cda_datasource---中繼表。
SQL基本操作語句
查詢語句-select * from table;
select * from table where 條件1=數值 and 條件2=數值;
select * from table where id in (select id from table);兩表關聯
select a.a,b.b,c.c from table1 a,table2 b,table3 c where *1=*2;
插入語句-insert into table (字段1,字段2,字段3,……)
values (數值1,數值2,數值3,……);
更新語句-update 表名 set 數值 where=id = 1;
添加列語句-alter table 表名
add (列名1 類型1,列名2 類型2,列名3 類型3,……);
查詢隨機20條記錄-select * from( select * from emp order by dbms_*) where rownum
SQL數據操作基礎有哪些
更新記錄 要修改表中已經存在的一條或多條記錄,應使用SQL UPDATE語句。
同DELETE語句一樣,UPDATE語句可以使用WHERE子句來選擇更新特定的記錄。請看這個例子: UPDATE mytable SET first_column='Updated!' WHERE second_column='Update Me!' 這個UPDATE 語句更新所有second_column字段的值為'Update Me!'的記錄。
對所有被選中的記錄,字段first_column的值被置為'Updated!'。 下面是UPDATE語句的完整句法: UPDATE {table_name|view_name} SET [{table_name|view_name}] {column_list|variable_list|variable_and_column_list} [,{column_list2|variable_list2|variable_and_column_list2}… [,{column_listN|variable_listN|variable_and_column_listN}]] [WHERE clause] 注意: 你可以對文本型字段使用UPDATE語句。
但是,如果你需要更新很長的字符串,應使用UPDATETEXT語句。這部分內容對本書來說太高級了,因此不加討論。
要了解更多的信息,請參考Microsoft SQL Sever 的文檔。 如果你不提供WHERE子句,表中的所有記錄都將被更新。
有時這是有用的。 例如,如果你想把表titles中的所有書的價格加倍,你可以使用如下的UPDATE 語句: 你也可以同時更新多個字段。
例如,下面的UPDATE語句同時更新first_column,second_column,和third_column這三個字段: UPDATE mytable SET first_column='Updated!' Second_column='Updated!' Third_column='Updated!' WHERE first_column='Update Me1' 技巧: SQL忽略語句中多余的空格。 你可以把SQL語句寫成任何你最容易讀的格式。
用SELECT 創建記錄和表 你也許已經注意到,INSERT 語句與DELETE語句和UPDATE語句有一點不同,它一次只操作一個記錄。然而,有一個方法可以使INSERT 語句一次添加多個記錄。
要作到這一點,你需要把INSERT 語句與SELECT 語句結合起來,象這樣: INSERT mytable (first_column,second_column) SELECT another_first,another_second FROM anothertable WHERE another_first='Copy Me!' 這個語句從anothertable拷貝記錄到mytable。 只有表anothertable中字段another_first的值為'Copy Me!'的記錄才被拷貝。
當為一個表中的記錄建立備份時,這種形式的INSERT 語句是非常有用的。在刪除一個表中的記錄之前,你可以先用這種方法把它們拷貝到另一個表中。
如何使用SQL查詢語句
一、 簡單查詢 簡單的Transact-SQL查詢只包括選擇列表、FROM子句和WHERE子句。
它們分別說明所查詢列、查詢的表或視圖、以及搜索條件等。例如,下面的語句查詢testtable表中姓名為“張三”的nickname字段和email字段。
SELECT nickname,emailFROM testtableWHERE name='張三'(一) 選擇列表選擇列表(select_list)指出所查詢列,它可以是一組列名列表、星號、表達式、變量(包括局部變量和全局變量)等構成。 1、選擇所有列例如,下面語句顯示testtable表中所有列的數據:SELECT *FROM testtable 2、選擇部分列并指定它們的顯示次序查詢結果集合中數據的排列順序與選擇列表中所指定的列名排列順序相同。
例如:SELECT nickname,emailFROM testtable 3、更改列標題在選擇列表中,可重新指定列標題。定義格式為:列標題=列名列名 列標題如果指定的列標題不是標準的標識符格式時,應使用引號定界符,例如,下列語句使用漢字顯示列標題:SELECT 昵稱=nickname,電子郵件=emailFROM testtable 4、刪除重復行SELECT語句中使用ALL或DISTINCT選項來顯示表中符合條件的所有行或刪除其中重復的數據行,默認為ALL。
使用DISTINCT選項時,對于所有重復的數據行在SELECT返回的結果集合中只保留一行。 5、限制返回的行數使用TOP n [PERCENT]選項限制返回的數據行數,TOP n說明返回n行,而TOP n PERCENT時,說明n是表示一百分數,指定返回的行數等于總行數的百分之幾。
例如:SELECT TOP 2 *FROM testtableSELECT TOP 20 PERCENT *FROM testtable(二)FROM子句 FROM子句指定SELECT語句查詢及與查詢相關的表或視圖。在FROM子句中最多可指定256個表或視圖,它們之間用逗號分隔。
在FROM子句同時指定多個表或視圖時,如果選擇列表中存在同名列,這時應使用對象名限定這些列所屬的表或視圖。例如在usertable和citytable表中同時存在cityid列,在查詢兩個表中的cityid時應使用下面語句格式加以限定:SELECT username,citytable。
cityidFROM usertable,citytableWHERE usertable。cityid=citytable。
cityid在FROM子句中可用以下兩種格式為表或視圖指定別名:表名 as 別名表名 別名(二) FROM子句FROM子句指定SELECT語句查詢及與查詢相關的表或視圖。 在FROM子句中最多可指定256個表或視圖,它們之間用逗號分隔。
在FROM子句同時指定多個表或視圖時,如果選擇列表中存在同名列,這時應使用對象名限定這些列所屬的表或視圖。例如在usertable和citytable表中同時存在cityid列,在查詢兩個表中的cityid時應使用下面語句格式加以限定:SELECT username,citytable。
cityidFROM usertable,citytableWHERE usertable。cityid=citytable。
cityid在FROM子句中可用以下兩種格式為表或視圖指定別名:表名 as 別名表名 別名例如上面語句可用表的別名格式表示為:SELECT username,b。 cityidFROM usertable a,citytable bWHERE a。
cityid=b。cityidSELECT不僅能從表或視圖中檢索數據,它還能夠從其它查詢語句所返回的結果集合中查詢數據。
例如:SELECT a。au_fname+a。
au_lnameFROM authors a,titleauthor ta(SELECT title_id,titleFROM titlesWHERE ytd_sales>10000) AS tWHERE a。au_id=ta。
au_idAND ta。 title_id=t。
title_id此例中,將SELECT返回的結果集合給予一別名t,然后再從中檢索數據。
誰能給個SQL操作全集,Mssql語句也行
1. 查看數據庫的版本 select @@version 2. 查看數據庫所在機器操作系統參數 exec master..xp_msver 3. 查看數據庫啟動的參數 sp_configure 4. 查看數據庫啟動時間 select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1 查看數據庫服務器名和實例名 print 'Server Name。
。
。
:' + convert(varchar(30),@@SERVERNAME) print 'Instance。
。
。
:' + convert(varchar(30),@@SERVICENAME) 5. 查看所有數據庫名稱及大小 sp_helpdb 重命名數據庫用的SQL sp_renamedb 'old_dbname', 'new_dbname' 6. 查看所有數據庫用戶登錄信息 sp_helplogins 查看所有數據庫用戶所屬的角色信息 sp_helpsrvrolemember 修復遷移服務器時孤立用戶時,可以用的fix_orphan_user腳本或者LoneUser過程 更改某個數據對象的用戶屬主 sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner' 注意:更改對象名的任一部分都可能破壞腳本和存儲過程。 把一臺服務器上的數據庫用戶登錄信息備份出來可以用add_login_to_aserver腳本 查看某數據庫下,對象級用戶權限 sp_helprotect 7. 查看鏈接服務器 sp_helplinkedsrvlogin 查看遠端數據庫用戶登錄信息 sp_helpremotelogin 8.查看某數據庫下某個數據對象的大小 sp_spaceused @objname 還可以用sp_toptables過程看最大的N(默認為50)個表 查看某數據庫下某個數據對象的索引信息 sp_helpindex @objname 還可以用SP_NChelpindex過程查看更詳細的索引情況 SP_NChelpindex @objname clustered索引是把記錄按物理順序排列的,索引占的空間比較少。
對鍵值DML操作十分頻繁的表我建議用非clustered索引和約束,fillfactor參數都用默認值。 查看某數據庫下某個數據對象的的約束信息 sp_helpconstraint @objname 9.查看數據庫里所有的存儲過程和函數 use @database_name sp_stored_procedures 查看存儲過程和函數的源代碼 sp_helptext '@procedure_name' 查看包含某個字符串@str的數據對象名稱 select distinct object_name(id) from syscomments where text like '%@str%' 創建加密的存儲過程或函數在AS前面加WITH ENCRYPTION參數 解密加密過的存儲過程和函數可以用sp_decrypt過程 10.查看數據庫里用戶和進程的信息 sp_who 查看SQL Server數據庫里的活動用戶和進程的信息 sp_who 'active' 查看SQL Server數據庫里的鎖的情況 sp_lock 進程號1--50是SQL Server系統內部用的,進程號大于50的才是用戶的連接進程. spid是進程編號,dbid是數據庫編號,objid是數據對象編號 查看進程正在執行的SQL語句 dbcc inputbuffer () 推薦大家用經過改進后的sp_who3過程可以直接看到進程運行的SQL語句 sp_who3 檢查死鎖用sp_who_lock過程 sp_who_lock 11.查看和收縮數據庫日志文件的方法 查看所有數據庫日志文件大小 dbcc sqlperf(logspace) 如果某些日志文件較大,收縮簡單恢復模式數據庫日志,收縮后@database_name_log的大小單位為M backup log @database_name with no_log dbcc shrinkfile (@database_name_log, 5)。