一、誰能教我幾句最常用的SQL語句
--語 句 功 能 --數據操作 SELECT --從數據庫表中檢索數據行和列 INSERT --向數據庫表添加新數據行 DELETE --從數據庫表中刪除數據行 UPDATE --更新數據庫表中的數據 --數據定義 CREATE TABLE --創建一個數據庫表 DROP TABLE --從數據庫中刪除表 ALTER TABLE --修改數據庫表結構 CREATE VIEW --創建一個視圖 DROP VIEW --從數據庫中刪除視圖 CREATE INDEX --為數據庫表創建一個索引 DROP INDEX --從數據庫中刪除索引 CREATE PROCEDURE --創建一個存儲過程 DROP PROCEDURE --從數據庫中刪除存儲過程 CREATE TRIGGER --創建一個觸發器 DROP TRIGGER --從數據庫中刪除觸發器 CREATE SCHEMA --向數據庫添加一個新模式 DROP SCHEMA --從數據庫中刪除一個模式 CREATE DOMAIN --創建一個數據值域 ALTER DOMAIN --改變域定義 DROP DOMAIN --從數據庫中刪除一個域 --數據控制 GRANT --授予用戶訪問權限 DENY --拒絕用戶訪問 REVOKE --解除用戶訪問權限 --事務控制 COMMIT --結束當前事務 ROLLBACK --中止當前事務 SET TRANSACTION --定義當前事務數據訪問特征 --程序化SQL DECLARE --為查詢設定游標 EXPLAN --為查詢描述數據訪問計劃 OPEN --檢索查詢結果打開一個游標 FETCH --檢索一行查詢結果 CLOSE --關閉游標 PREPARE --為動態執行準備SQL 語句 EXECUTE --動態地執行SQL 語句 DESCRIBE --描述準備好的查詢 ---局部變量 declare @id char(10) --set @id = '10010001' select @id = '10010001' ---全局變量 ---必須以@@開頭 --IF ELSE declare @x int @y int @z int select @x = 1 @y = 2 @z=3 if @x > @y print 'x > y' --打印字符串'x > y' else if @y > @z print 'y > z' else print 'z > y' --CASE use pangu update employee set e_wage = case when job_level = '1' then e_wage*1。
08 when job_level = '2' then e_wage*1。07 when job_level = '3' then e_wage*1。
06 else e_wage*1。 05 end --WHILE CONTINUE BREAK declare @x int @y int @c int select @x = 1 @y=1 while @x =表達式的最小整數返回的數據類型與表達式相同可為 --INTEGER/MONEY/REAL/FLOAT 類型 FLOOR(numeric_expression) --返回 AS [ length ]) CONVERT() 函數語法如下 CONVERT() ([ length ], [, style]) select cast(100+99 as char) convert(varchar(12), getdate()) 運行結果如下 ------------------------------ ------------ 199 Jan 15 2000 ----日期函數---- DAY() --函數返回date_expression 中的日期值 MONTH() --函數返回date_expression 中的月份值 YEAR() --函數返回date_expression 中的年份值 DATEADD( , ,) --函數返回指定日期date 加上指定的額外日期間隔number 產生的新日期 DATEDIFF( , ,) --函數返回兩個指定日期在datepart 方面的不同之處 DATENAME( , ) --函數以字符串的形式返回日期的指定部分 DATEPART( , ) --函數以整數值的形式返回日期的指定部分 GETDATE() --函數以DATETIME 的缺省格式返回系統當前的日期和時間 ----系統函數---- APP_NAME() --函數返回當前執行的應用程序的名稱 COALESCE() --函數返回眾多表達式中第一個非NULL 表達式的值 COL_LENGTH(, ) --函數返回表中指定字段的長度值 COL_NAME(, ) --函數返回表中指定字段的名稱即列名 DATALENGTH() --函數返回數據表達式的數據的實際長度 DB_ID(['database_name']) --函數返回數據庫的編號 DB_NAME(database_id) --函數返回數據庫的名稱 HOST_ID() --函數返回服務器端計算機的名稱 HOST_NAME() --函數返回服務器端計算機的名稱 IDENTITY([, seed increment]) [AS column_name]) --IDENTITY() 函數只在SELECT INTO 語句中使用用于插入一個identity column列到新表中 /*select identity(int, 1, 1) as column_name into newtable from oldtable*/ ISDATE() --函數判斷所給定的表達式是否為合理日期 ISNULL(, ) --函數將表達式中的NULL 值用指定值替換 ISNUMERIC() --函數判斷所給定的表達式是否為合理的數值 NEWID() --函數返回一個UNIQUEIDENTIFIER 類型的數值 NULLIF(, ) --NULLIF 函數在expression1 與expression2 相等時返回NULL 值若不相等時則返回expression1 的值 。
二、SQL數據庫語句大全
經典SQL語句大全下列語句部分是Mssql語句,不可以在access中使用。
SQL分類: DDL—數據定義語言(CREATE,ALTER,DROP,DECLARE) DML—數據操縱語言(SELECT,DELETE,UPDATE,INSERT) DCL—數據控制語言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,簡要介紹基礎語句: 1、說明:創建數據庫CREATE DATABASE database-name 2、說明:刪除數據庫drop database dbname 3、說明:備份sql server --- 創建 備份數據的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_*' --- 開始 備份BACKUP DATABASE pubs TO testBack 4、說明:創建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根據已有的表創建新表:A:create table tab_new like tab_old (使用舊表創建新表)B:create table tab_new as select col1,col2… from tab_old definition only 5、說明: 刪除新表:drop table tabname 6、說明: 增加一個列:Alter table tabname add column col type 注:列增加后將不能刪除。DB2中列加上后數據類型也不能改變,唯一能改變的是增加varchar類型的長度。
7、說明: 添加主鍵:Alter table tabname add primary key(col) 說明: 刪除主鍵:Alter table tabname drop primary key(col) 8、說明: 創建索引:create [unique] index idxname on tabname(col….) 刪除索引:drop index idxname 注:索引是不可更改的,想更改必須刪除重新建。 9、說明: 創建視圖:create view viewname as select statement 刪除視圖:drop view viewname10、說明:幾個簡單的基本的sql語句 選擇:select * from table1 where 范圍 插入:insert into table1(field1,field2) values(value1,value2) 刪除:delete from table1 where 范圍 更新:update table1 set field1=value1 where 范圍 查找:select * from table1 where field1 like '%value1%' ---like的語法很精妙,查資料! 排序:select * from table1 order by field1,field2 [desc] 總數:select count * as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、說明:幾個高級查詢運算詞 A: UNION 運算符 UNION 運算符通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)并消去表中任何重復行而派生出一個結果表。
當 ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重復行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。
B: EXCEPT 運算符 EXCEPT 運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重復行而派生出一個結果表。當 ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重復行。
C: INTERSECT 運算符 INTERSECT 運算符通過只包括 TABLE1 和 TABLE2 中都有的行并消除所有重復行而派生出一個結果表。當 ALL 隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重復行。
注:使用運算詞的幾個查詢結果行必須是一致的。 12、說明:使用外連接 A、left outer join: 左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c B:right outer join: 右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。 C:full outer join: 全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。
其次,大家來看一些不錯的sql語句 1、說明:復制表(只復制結構,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 1<>1 法二:select top 0 * into b from a 2、說明:拷貝表(拷貝數據,源表名:a 目標表名:b) (Access可用)insert into b(a, b, c) select d,e,f from b; 3、說明:跨數據庫之間表的拷貝(具體數據使用絕對路徑) (Access可用)insert into b(a, b, c) select d,e,f from b in '具體數據庫' where 條件 例子:..from b in '"&*h(".")&"\*" &"' where.. 4、說明:子查詢(表名1:a 表名2:b)select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3) 5、說明:顯示文章、提交人和最后回復時間select *,*me,*e from table a,(select max(adddate) adddate from table where *=*) b6、說明:外連接查詢(表名1:a 表名2:b)select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c 7、說明:在線視圖查詢(表名1:a )select * from (SELECT a,b,c FROM a) T where t.a > 1; 8、說明:between的用法,between限制查詢數據范圍時包括了邊界值,not between不包括select * from table1 where time between time1 and time2select a,b,c, from table1 where a not between 數值1 and 數值2 9、說明:in 的使用方法select 。
三、數據庫查詢語句
select classtitle ,count(newsid) from newsclassinfo left outer join newsinfo on *d= *dgroup by classtitle這個是最準確的,樓上各為幾級大俠們都大意了!如果使用 inner join 內聯查詢的話, newsinfo表中如果沒有newsclassinfo表中的某些標題類型的數據,那最后查出的數據不可能統計出 count 為0的項。
所以這里應該使用左內聯查詢 left outer join !剛自己寫過并查詢成功~ 你可自己試下~。
四、SQL 數據庫中常用的一些語句
--通配符1.%:代表任意多個字符 name LIKE '李%'2._(下劃線):代表任意一個字符3.[]:指定范圍的一個字符 如:Sex LIKE '[男女]' StuID LIKE [0-9][0-9]*:限制范圍 StuID IN(0,1,2,3,4,5,6,7,8,9)5.[^]:不在指定范圍里的一個字符 *>=0 and age<=100 age BETWEEN 0 AND 100--插入一行數據INSERT INTO 新表(列名)VALUES (值)比如:INSERT INTO Student(StuName,Sex,Age,Email) VALUES ('Tom','男',20,'tom@*','starRoad 30#') --插入多行數據有3種方法--第一種(相當于表復制,必須要有這個新表,僅僅復制表中的數據,允許重復)INSERT INTO 新表(列名)SELECT (舊表列)FROM 舊表比如:INSERT INTO newStu1 SELECT StuID,StuName,Sex FROM Student --第二種(相當于表復制,自動建表,會將舊表中的結構也一起復制,但主鍵不會帶過來)SELECT (舊表列名)INTO 新表FROM 舊表比如:SELECT StuID,StuName,Sex INTO newStu2 FROM Student--特列(寫入標識列)SELECT INDENTITY(int,1,1) AS StuID,StuName,SexINTO newStu3FROM Student--第三種(相當于把多個值手寫插入到表中)INSERT INTO 新表名(列名)SELECT 值,值,值。
UNIONSELECT 值,值,值。 UNIONSELECT 值,值,值。
比如:INSERT INTO Student SELECT 'jack','男',24,'jack@*','starRoad 100#' UNION SELECT 'tom','女',23,'tom@*','starRoad 198#'--更新UPDATE 表名 SET 列名=值 WHERE 更新條件--刪除DELETE FROM 表名 WHERE 刪除條件TRUNCATE TABLE 表名--查詢SELECT 列名FROM 表名WHERE 查詢條件表達式ORDER BY 排序的列名(ASC或DESC)--對列更名方式有3種--第一種SELECT StuID AS 學號,StuName AS 姓名, Sex AS 性別FROM Student--第二種SELECT 學號=StuID,姓名=StuName,性別=SexFROM Student--第三種SELECT StuID 學號,StuName 姓名, Sex 性別FROM Student這些都是最基本的,稍微復雜點的像內連接查詢,外連接,交叉查詢,sql知識點很多,多理解就OK了,很簡單的。加油!。
五、關于數據庫語句求解答
一,1,select * from COPTA where TA001='A001'2,insert into COPTA(TA001,TA002,TA003,TA004,TA005) values('A001','890101000001','20000101','B001','007')3,UPDATE COPTA SET TA005='008' WHERE TA005='007'4,select * from COPTA where TA005='008' ORDER BY TA0045,DELETE FROM COPTA WHERE TA004='K001'6,DELETE FROM COPTA WHERE TA001=TA002二,1,SELECT * FROM COPTA LEFT JOIN COPTB ON TA001=TB001 AND TA002=TB002 WHERE TA001='A001' AND TA002 ='890101000001'2,SELECT * FROM COPTB WHERE TB001 NOT IN (SELECT TA001 FROM COPTA) OR TB002 NOT IN (SELECT TA002 FROM COPTA)。