誰能教我幾句最常用的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語句面試題
a)selectpnameas'商品名',avg(qty)as平均銷售量froms,p,*='上海'*=*=*,*,*,sum(*)*=*=*='上海市'*,*,*,*)、先刪除Sale表的外鍵PNO,再刪除gds表。
c)聯系:視圖(view)是在基本表之上建立的表,它的結構(即所定義的列)和內容(即所有數據行)都來自基本表,它依據基本表存在而存在。一個視圖可以對應一個基本表,也可以對應多個基本表。
視圖是基本表的抽象和在邏輯意義上建立的新關系區別:1、視圖是已經編譯好的sql語句。而表不是2、視圖沒有實際的物理記錄。
而表有。3、表是內容,視圖是窗口4、表只用物理空間而視圖不占用物理空間,視圖只是邏輯概念的存在,表可以及時四對它進行修改,但視圖只能有創建的語句來修改5、表是內模式,視圖是外模式6、視圖是查看數據表的一種方法,可以查詢數據表中某些字段構成的數據,只是一些SQL語句的集合。
從安全的角度說,視圖可以不給用戶接觸數據表,從而不知道表結構。7、表屬于全局模式中的表,是實表;視圖屬于局部模式的表,是虛表。
8、視圖的建立和刪除只影響視圖本身,不影響對應的基本表。
SQL數據庫面試題 急
a)select pname as '商品名',avg(qty) as 平均銷售量 from s,p,m where *='上海' and *=* and *=*,select *,*,sum(*)from s left join p on *=* left join m on *=*re *='上海市'group by *,*,*,*)、先刪除Sale表的外鍵PNO,再刪除gds表。
c)聯系:視圖(view)是在基本表之上建立的表,它的結構(即所定義的列)和內容(即所有數據行)都來自基本表,它依據基本表存在而存在。一個視圖可以對應一個基本表,也可以對應多個基本表。
視圖是基本表的抽象和在邏輯意義上建立的新關系區別:1、視圖是已經編譯好的sql語句。而表不是 2、視圖沒有實際的物理記錄。
而表有。 3、表是內容,視圖是窗口 4、表只用物理空間而視圖不占用物理空間,視圖只是邏輯概念的存在,表可以及時四對它進行修改,但視圖只能有創建的語句來修改 5、表是內模式,視圖是外模式 6、視圖是查看數據表的一種方法,可以查詢數據表中某些字段構成的數據,只是一些SQL語句的集合。
從安全的角度說,視圖可以不給用戶接觸數據表,從而不知道表結構。 7、表屬于全局模式中的表,是實表;視圖屬于局部模式的表,是虛表。
8、視圖的建立和刪除只影響視圖本身,不影響對應的基本表。
誰有一些關于SQL數據庫的一些面試題?關于SQL方面的題目都行 愛
一、 選擇題 1。
以下數據結構中不屬于線性數據結構的是______。 A、隊列 B、線性表 C、二叉樹 D、棧 2。
在結構化方法中,用數據流程圖(DFD)作為描述工具的軟件開發階段是______。 A、可行性分析 B、需求分析 C、詳細設計 D、程序編碼 3。
結構化程序設計主要強調的是______。 A、程序的規模 B、程序的易讀性 C、程序的執行效率 D、程序的可移植性 4。
在軟件生命周期中,能準確地確定軟件系統必須做什么和必須具備哪些功能的階段是______。 A、概要設計 B、詳細設計 C、可行性分析 D、需求分析 5。
下列關于棧的敘述中正確的是______。A、在棧中只能插入數據 B、在棧中只能刪除數據 C、棧是先進先出的線性表 D、棧是先進后出的線性表 6。
下面不屬于軟件設計原則的是______。A、抽象 B、模塊化 C、自底向上 D、信息隱蔽 7。
對長度為N的線性表進行順序查找,在最壞情況下所需要的比較次數為______。 A、N+1 B、N C、(N+1)/2 D、N/2 8。
視圖設計一般有3種設計次序,下列不屬于視圖設計的是______。 A、自頂向下 B、由外向內 C、由內向外 D、自底向上 9。
下列有關數據庫的描述,正確的是______。A、數據庫是一個DBF文件 B、數據庫是一個關系 C、數據庫是一個結構化的數據集合 D、數據庫是一組文件 10。
下列說法中,不屬于數據模型所描述的內容的是______。 A、數據結構 B、數據操作 C、數據查詢 D、數據約束 11。
在下面的Visual FoxPro表達式中,運算結果是邏輯真的是______。 A、EMPTY(。
NULL。) B、LIKE('acd','ac?') C、AT('a','123abc') D、EMPTY(SPACE(2)) 12。
表達式VAL(SUBS("奔騰586",5,1))*Len("visual foxpro")的結果是______。 A、13。
00 B、14。00 C、45。
00 D、65。00 13。
以下關于自由表的敘述,正確的是______。 A、全部是用以前版本的FOXPRO(FOXBASE)建立的表 B、可以用Visual FoxPro建立,但是不能把它添加到數據庫中 C、自由表可以添加到數據庫中,數據庫表也可以從數據庫中移出成為自由表 D、自由表可以添加到數據庫中,但數據庫表不可從數據庫中移出成為自由表 14。
下面關于數據環境和數據環境中兩個表之間的關系的陳述中,______是正確的。 A、數據環境是對象,關系不是對象 B、數據環境不是對象,關系是對象 C、數據環境是對象,關系是數據環境中的對象 D、數據環境和關系均不是對象 15。
在"報表設計器"中,可以使用的控件是______。 A、標簽、域控件和線條 B、標簽、域控件和列表框 C、標簽、文本框和列表框 D、布局和數據源 16。
用二維表數據來表示實體及實體之間聯系的數據模型稱為______。 A、實體--聯系模型 B、層次模型 C、網狀模型 D、關系模型 17。
用來指明復選框的當前選中狀態的屬性是______。A、Selected B、Caption C、Value D、ControlSource 18。
使用菜單操作方法打開一個在當前目錄下已經存在的查詢文件zgjk。qpr后,在命令窗口生成的命令是____。
A、OPEN QUERY zgjk。qpr B、MODIFY QUERY zgjk。
qpr C、DO QUERY zgjk。qpr D、CREATE QUERY zgjk。
qpr 19。 可以伴隨著表的打開而自動打開的索引是______。
A、單一索引文件(IDX) B、復合索引文件(CDX)C、結構化復合索引文件 D、非結構化復合索引文件 20。 在數據庫設計器中,建立兩個表之間的一對多聯系是通過以下索引實現的______。
A、"一方"表的主索引或候選索引,"多方"表的普通索引 B、"一方"表的主索引,"多方"表的普通索引或候選索引 C、"一方"表的普通索引,"多方"表的主索引或候選索引 D、"一方"表的普通索引,"多方"表的候選索引或普通索引 21。 下列函數中函數值為字符型的是______。
A、DATE() B、TIME() C、YEAR() D、DATETIME() 22。 下面對控件的描述正確的是______。
A、用戶可以在組合框中進行多重選擇 B、用戶可以在列表框中進行多重選擇 C、用戶可以在一個選項組中選中多個選項按鈕 D、用戶對一個表單內的一組復選框只能選中其中一個 23。 確定列表框內的某個條目是否被選定應使用的屬性是______。
A、Value B、ColumnCount C、ListCount D、Selected 24。 設有關系R1和R2,經過關系運算得到結果S,則S是______。
A、一個關系 B、一個表單 C、一個數據庫 D、一個數組 25。 DBAS指的是______。
A、數據庫管理系統B、數據庫系統C、數據庫應用系統 D、數據庫服務系統 26。 設X="ABC",Y="ABCD",則下列表達式中值為。
T。的是______。
A、X=Y B、X==Y C、X$Y D、AT(X,Y)=0 27。 在表結構中,邏輯型、日期型、備注型字段的寬度分別固定為______。
A、3,8,10 B、1,6,4 C、1,8,任意 D、1,8,4 28。 在標準SQL中,建立視圖的命令是______。
A、CREATE SCHEMA命令 B、CREATE TABLE命令 C、CREATE VIEW命令 D、CREATE INDEX命令 29。 有關SCAN循環結構,敘述正確的是______。
A、SCAN循環結構中的LOOP語句,可將程序流程直接指向循環開始語句SCAN,首先判斷EOF()函數的真假 B、在使用SCAN循環結構時,必須打開某一。
SQL語句面試題
恩,通過自定義函數吧。。 實現如下:
----創建自定義函數
create function F_Getvarchar(@a1 int)
returns varchar(8000)
as
Begin
declare @a2 varchar(100),@Newvarhar varchar(8000)
set @Newvarhar=''
declare cur_getvarchar cursor for
select a2 from a where a1=@a1 order by a2
Open cur_getvarchar
fetch next from cur_getvarchar into @a2
while @@fetch_status=0
Begin
set @Newvarhar=@Newvarhar+@a2
fetch next from cur_getvarchar into @a2
End
close cur_getvarchar deallocate cur_getvarchar
return @Newvarhar
End
--執行
select distinct a1,dbo.F_Getvarchar(a1) from a
常用的SQL語句語法有哪些
1。
INSERT (往數據表里插入記錄的語句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSERT INTO 表名(字段名1, 字段名2, ……) SELECT 字段名1, 字段名2, …… FROM 另外的表名; 字符串類型的字段值必須用單引號括起來, 例如: 'GOOD DAY' 如果字段值里包含單引號' 需要進行字符串轉換, 我們把它替換成兩個單引號''。 字符串類型的字段值超過定義的長度會出錯, 最好在插入前進行長度校驗。
日期字段的字段值可以用當前數據庫的系統時間SYSDATE, 精確到秒 或者用字符串轉換成日期型函數TO_DATE('2001-08-01','YYYY-MM-DD') TO_DATE()還有很多種日期格式, 可以參看ORACLE DOC。 年-月-日 小時:分鐘:秒 的格式YYYY-MM-DD HH24:MI:SS INSERT時最大可操作的字符串長度小于等于4000個單字節, 如果要插入更長的字符串, 請考慮字段用CLOB類型, 方法借用ORACLE里自帶的DBMS_LOB程序包。
INSERT時如果要用到從1開始自動增長的序列號, 應該先建立一個序列號 CREATE SEQUENCE 序列號的名稱 (最好是表名+序列號標記) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE; 其中最大的值按字段的長度來定, 如果定義的自動增長的序列號 NUMBER (6) , 最大值為999999 INSERT 語句插入這個字段值為: 序列號的名稱。 NEXTVAL 2。
DELETE (刪除數據表里記錄的語句) DELETE FROM表名 WHERE 條件; 注意:刪除記錄并不能釋放ORACLE里被占用的數據塊表空間。 它只把那些被刪除的數據塊標成unused。
如果確實要刪除一個大表里的全部記錄, 可以用 TRUNCATE 命令, 它可以釋放占用的數據塊表空間 TRUNCATE TABLE 表名; 此操作不可回退。 3。
UPDATE (修改數據表里記錄的語句) UPDATE表名 SET 字段名1=值1, 字段名2=值2, …… WHERE 條件; 如果修改的值N沒有賦值或定義時, 將把原來的記錄內容清為NULL, 最好在修改前進行非空校驗; 值N超過定義的長度會出錯, 最好在插入前進行長度校驗。 。
注意事項: A。 以上SQL語句對表都加上了行級鎖,確認完成后, 必須加上事物處理結束的命令 COMMIT 才能正式生效,否則改變不一定寫入數據庫里。
如果想撤回這些操作, 可以用命令 ROLLBACK 復原。
面試題目(sql)
我使用的是MySQL 如下語句:
建表語句:
create table Lessoninfo(
no int,
week int,
isonduty char);
插入數據:略
insert into Lessoninfo values(。。。。。)
SQL查詢語句:
select no as '教師號', sum(week=1) as '星期一',sum(week=2) as '星期二',sum(week=3) as '星期三' from Lessoninfo group by no;
/***********************附結果******************
mysql>select no as '教師號', sum(week=1) as '星期一',sum(week=2) as '星期二',su
m(week=3) as '星期三' from Lessoninfo group by no;
+--------+--------+--------+--------+
| 教師號 | 星期一 | 星期二 | 星期三 |
+--------+--------+--------+--------+
| 1 | 0 | 2 | 1 |
| 2 | 1 | 0 | 0 |
| 3 | 0 | 1 | 0 |
+--------+--------+--------+--------+
3 rows in set (0.02 sec)
轉載請注明出處華閱文章網 » 常用sql語句面試題