ORACLE 和PLSQL总结

ORACLE 和PLSQL总结
ORACLE 和PLSQL总结

Oracle之PLSQL总结

基本数据类型变量

1. 基本数据类型Number 数字型Int 整数型Pls_integer 整数型,产生溢出时出现错误Binary_integer 整数型,表示带符号的整数Char 定长字符型,最大255个字符Varchar2 变长字符型,最大2000个字符Long 变长字符型,最长2GB Date 日期型Boolean 布尔型(TRUE、FALSE、NULL三者取一)在PL/SQL中使用的数据类型和Oracle 数据库中使用的数据类型,有的含义是完全一致的,有的是有不同的含义的。

2. 基本数据类型变量的定义方法变量名类型标识符[not null]:=

值; declare age number(3):=26; --长度为3,初始值为

26 begin commit; end; 其中,定义常量的语法格式:常量名constant 类型标识符[not null]:=值; declare pi constant number(9):=3.1415926;--为pi的数字型常量,长度为9,初始值为3.1415926 begin commit; end;

表达式

变量、常量经常需要组成各种表达式来进行运算,下面介绍在PL/SQL中常见表达式的运算规则。 1. 数值表达式PL/SQL程序中的数值表达式是由数值型常数、变量、函数和算术运算符组成的,可以使用的算术运算符包括+(加法)、-(减法)、*(乘法)、/(除法

)和**(乘方)等。命令窗口中执行下列PL/SQL程序,该程序定义了名为result的整数型变量,计算的是10+3*4-20+5**2的值,理论结果应该是27。―――――――――――――――――――――――――――――――――――――

set serveroutput on Declare result

integer; begin result:=10+3*4-20+5**2; dbms_output.put_line('运算结果是:

'||to_char(result)); end; ――――――――――――――――――――――――――――――――――――― dbms_output.put_line函数输出只能是字符串,因此利用to_char函数将数值型结果转换为字符型。 2. 字符表达式字符表达式由字符型常数、变量、函数和字符运算符组成,唯一可以使用的字符运算符就是连接运算符“||”。 3. 关系表达式关系表达式由字符表达式或数值表达式与关系运算符组成,可以使用的关系运算符包括以下9种。< 小于> 大于= 等于(不是赋值运算符:=)like 类似于in 在……之中<= 小于等于>= 大于等于!= 不等于或<> between 在……之间关系型表达式运算符两边的表达式的数据类型必须一致。 4. 逻辑表达式逻辑表达式由逻辑常数、变量、函数和逻辑运算符组成,常见的逻辑运算符包括以下3种。NOT:逻辑非OR:逻辑或AND:逻辑与运算的优先次序为NOT、AND和OR。

PLSQL函数

PL/SQL程序中提供了很多函数供扩展功能,除了标准SQL语言的函数可以使用外,最常见的数据类型转换函数有以下3个。To_char:将其他类型数据转换为字符型。To_date:将其他类型数据转换为日期型。To_number:将其他类型数据转换为数值型。继续追加中..

系统输出打印

利用pl/sql在数据库服务器端打印一句话:set serveroutput on--设置数据库输出,默认为关闭,每次重新打开窗口需要重新设置。BEGIN DBMS_OUTPUT.PUT_LINE('Hello PL/SQL'); END;

pl/sql程序中对大小写不敏感(打印声明的变量)――――――――――――――――――――――――――――――――――――― s et serveroutput on DECLARE v_char varchar2(20):='a'; v_char1

varchar2(20):='b'; BEGIN DBMS_OUTPUT.PUT_LINE(v_char); DBMS_OU TPUT.PUT_LINE(v_char1); END;

pl语句块是pl/sql里最小的编程块,其中可以再嵌套begin

end begin dbms_output.put_line('Hello

World'); dbms_output.put_line('2*3='||(2*3)); dbms_output.put_line('what''s '); end; ―――――――――――――――――――――――――――――――――――――

PL/SQL中的变量声明

所有变量必须在declare中声明,程序中不允许声明。没有初始化的变量默认值为null,屏幕上null是看不见的,命名习惯:PL/SQL中变量一般以v_开头(等同于存储过程中as和begin区域的变量定义习惯)。注意number也能存小数,最长38位,所以以后建议整数都用

binary_integer存。long是字符类型,boolean类型不能打印。标准变量类型:数字,字符,时间,布

尔。――――――――――――――――――――――――――――――――――――― d eclare v_number1 number; v_number2 number(3,2) ; v_number3 binary_integer :=1; v_name varchar2(20) :='kettas'; v_date date :=sysdate; v_long long :='ni hao'; v_b boolean := true; begin if (v_number1 is null) then dbms_output.put_line( 'hello'); end if; dbms_output.put_line(v_number1); dbms_output.put_line(v_number2);

dbms_output.put_line(v_number3); dbms_output.put_line(v_name);

dbms_output.put_line(v_date);

dbms_output.put_line(v_long); --dbms_output.put_line(v_b); --执行该句ORACLE 提示“调用'PUT_LINE' 时参数个数或类型错

误” end; ―――――――――――――――――――――――――――――――――――――

备注:关于声明number(4,3)中括号中的两个数字的意义,前面的数字叫精度,后面的叫刻度。刻度:当刻度为正数的时候,表示四舍五入到小数点后面的位数当刻度为负数的时候,表示四舍五入到小数点前面的位数精度:从数字的最前面不为零开始到刻度精确到的位置v_Number number(4,3):=123.12312 1、按刻度进行四舍五入得到123.123 2、确定刻度精确到的位置123123处,精度为6位(.符号不算)2、根据精度进行判断6位(>4)精度上限值--报错不能存储number(3,-3):=44445 1、根据刻度-3进行四舍五入得到44000 2、小数点向前移动3位44.此位置为刻度精确到的位置3、根据精度进行判断2位(<3)精度上限值--不报错可存储结果为44000 DECLARE v_Number

number(4,3):=123.12312;--实际精度6位大于上限精度值4位,提示“ORA-06502: PL/SQL:

数字或值错误: 数值精度太

高” BEGIN DBMS_OUTPUT.PUT_LINE(v_Number); END ; DECLARE

v_Number number(7,3):=4555; --实际精度7位等于上限精度值,可以存

储BEGIN DBMS_OUTPUT.PUT_LINE(v_Number); END ;

***************************************** 变量赋值方式

***************************************** oracle中变量赋值方式是值拷贝而非引用

declare v_number1 number:=100; v_number2

number; begin v_number2:=v_number1; v_number1:=200; dbms _output.put_line(v_number1); --200 dbms_output.put_line(v_number2);

--100 end;

***************************************** PLSQL复合类型

***************************************** 记录类型record record类型最常用,声明的时候可以加not null,但必须给初始值,如果record类型一致可以相互赋值,如果类型不同,里面的字段恰好相同,不能互相赋值。引用记录型变量的方法是“记录变量名.基本类型变量名”。――――――――――――――――――――――――――――――――――――― de clare type t_first is record( id number(3), name

varchar2(20) ); v_first

t_first; begin v_first.id:=1; v_https://www.360docs.net/doc/719114308.html,:='cheng'; dbms_output.put_lin e(v_first.id); dbms_output.put_line(v_https://www.360docs.net/doc/719114308.html,); end;

record类型变量间赋值declare type t_first is record( id

number, name varchar2(20) ); v_first t_first; v_second

t_first; begin v_first.id:=1; v_https://www.360docs.net/doc/719114308.html,:='susu'; v_second:= v_first;--相互赋

值v_first.id:=2; v_https://www.360docs.net/doc/719114308.html,:='kettas'; dbms_output.put_line(v _first.id); dbms_output.put_line(v_https://www.360docs.net/doc/719114308.html,); dbms_output.put_line(v_se cond.id); dbms_output.put_line(v_https://www.360docs.net/doc/719114308.html,); end; ――――――――――――――――――――――――――――――――――――― 表类型变量table 语法如

下:type 表类型is table of 类型index by binary_integer; 表变量名表类型; 类型可以是前面的类型定义,index by binary_integer子句代表以符号整数为索引,这样访问表类型变量中的数据方法就是“表变量名(索引符号整数)”。table类型,相当于java中的Map容器,就是一个可变长的数组,key(符号整数索引)必须是整数,可以是负数,value(类型)可以是标量,也可以是record类型。可以不按顺序赋值,但必须先赋值后使用。

1.定义一维表类型变量――――――――――――――――――――――――――――――――――――― decl are type t_tb is table of varchar2(20) index by binary_integer; v_tb

t_tb; begin v_tb(100):='hello'; v_tb(98):='world'; dbms_output.put_ line(v_tb(100)); dbms_output.put_line(v_tb(98)); end;

类型为record的表类型变量declare type t_rd is record(id number,name varchar2(20)); type t_tb is table of t_rd index by binary_integer; v_tb2

t_tb; begin v_tb2(100).id:=1; v_tb2(100).name:='hello'; --dbm s_output.put_line(v_tb2(100).id); --dbms_output.put_line(v_tb2(100).name);

dbms_output.put_line(v_tb2(100).id||' '||v_tb2(100).name); end; ―――――――――――――――――――――――――――――――――――――

2.定义多维表类型变量该程序定义了名为tabletype1的多维表类型,相当于多维数组,table1是多维表类型变量,将数据表tempuser.testtable中recordnumber为60的记录提取出来

存放在table1中并显示。――――――――――――――――――――――――――――――――――――― de clare type tabletype1 is table of testtable%rowtype index by

binary_integer; table1 tabletype1; begin select * into table1(60) from tempuser.testtable where

recordnumber=60; dbms_output.put_line(table1(60).recordnumber||table1(60). currentdate); end; 备注:在定义好的表类型变量里,可以使用count、delete、first、last、next、exists和prior等属性进行操作,使用方法为“表变量名.属性”,返回的是数字。

set serveroutput on declare type tabletype1 is table of varchar2(9) index by binary_integer; table1 tabletype1; begin table1(1):='成都市

'; table1(2):='北京市'; table1(3):='青岛市'; dbms_output.put_line('

总记录数:'||to_char(table1.count)); dbms_output.put_line('第一条记录:

'||table1.first); dbms_output.put_line('最后条记录:

'||https://www.360docs.net/doc/719114308.html,st); dbms_output.put_line('第二条的前一条记录:

'||table1.prior(2)); dbms_output.put_line('第二条的后一条记录:

'||table1.next(2)); end; ―――――――――――――――――――――――――――――――――――――

***************************************** %type和%rowtype

***************************************** 使用%type定义变量,为了让PL/SQL 中变量的类型和数据表中的字段的数据类型一致,Oracle 9i提供了%type定义方法。这样当数据表的字段类型修改后,PL/SQL程序中相应变量的类型也自动修改。――――――――――――――――――――――――――――――――――――― c reate table student( id number, name varchar2(20), age

number(3,0) );

insert into student(id,name,age) values(1,'susu',23); --查找一个字段的变量

declare v_name varchar2(20); v_name2

https://www.360docs.net/doc/719114308.html,%type; begin select name into v_name2 from student where rownum=1; dbms_output.put_line(v_name2); end;

--查找多个字段的变量declare v_id student.id%type; v_name https://www.360docs.net/doc/719114308.html,%type; v_age student.age%type; begin select

id,name,age into v_id,v_name,v_age from student where

rownum=1; dbms_output.put_line(v_id||' '||v_name||' '||v_age); end;

--查找一个类型的变量,推荐用*

declare v_student student%rowtype; begin select * into v_student from student where

rownum=1; dbms_output.put_line(v_student.id||' '||v_https://www.360docs.net/doc/719114308.html,||' '||v_st udent.age); end;

--也可以按字段查找,但是字段顺序必须一样,不推荐这样做declare v_student student%rowtype; begin select id,name,age into v_student from student where rownum=1; dbms_output.put_line(v_student.id||' '||v_https://www.360docs.net/doc/719114308.html,||' '||v_stu dent.age); end;

declare v_student student%rowtype; begin select id,name,age into

v_student.id,v_https://www.360docs.net/doc/719114308.html,,v_student.age from student where id=1; --select * into v_student.id,v_https://www.360docs.net/doc/719114308.html,,v_student.age from student where

id=1; dbms_output.put_line(); end; ――――――――――――――――――――――――――――――――――――― 备注:insert,update,delete,select都可以,create table,drop table不行。DPL,DML,和流程控制语句可以在pl/sql里用,但DDL语句不

行。declare v_name https://www.360docs.net/doc/719114308.html,%type:='wang'; begin insert into student(id,name,age) values(2,v_name,26); end; begin insert into student(id,name,age) values(5,'hehe',25); end;

declare v_name https://www.360docs.net/doc/719114308.html,%type:='hexian'; begin update student set name=v_name where id=1; end;

begin update student set name='qinaide' where

id=2; end; ――――――――――――――――――――――――――――――――――――― ***************************************** PLSQL变量的可见空间

***************************************** 变量的作用域和可见性,变量的作用域为变量申明开始到当前语句块结束。当外部过程和内嵌过程定义了相同名字的变量的时候,在内嵌过程中如果直接写这个变量名是没有办法访问外部过程的变量的,可以通过给外部过程定义一个名字<>,通过outername变量名来访问外部过程的变量(待测试..)。――――――――――――――――――――――――――――――――――――― declare v_i1 binary_integer:=1; begin declare v_i2 binary_integer:=2; begin dbms_output.put_line(v_i1); dbms _output.put_line(v_i2); end; dbms_output.put_line(v_i1); --dbms_out put.put_line(v_i2); 解开后执行Oracle会提示“必须说明标识符

'V_I2'” end; ―――――――――――――――――――――――――――――――――――――

***************************************** PLSQL流程控制

***************************************** if判断declare v_b boolean:=true; begin if v_b then dbms_output.put_line('ok'); end if; end;

if else判断declare v_b boolean:=true; begin if v_b

then dbms_output.put_line('ok'); else dbms_output.put_line('false');

end if; end;

if elsif else判断declare v_name varchar2(20):='cheng'; begin if

v_name='0701' then dbms_output.put_line('0701'); elsif v_name='cheng' then dbms_output.put_line('cheng'); else dbms_output.put_line('false '); end if; end;

loop循环,注意推出exit是推出循环,而不是推出整个代码块declare v_i

binary_integer:=0; begin loop if v_i>10 then exit; end

if; v_i:=v_i+1; dbms_output.put_line('hehe'); end

loop; dbms_output.put_line('over'); end;

loop简化写法declare v_i binary_integer :=0; begin loop exit when

v_i>10; v_i :=v_i+1; dbms_output.put_line('hehe'); end

loop; dbms_output.put_line('over'); end;

while循环declare v_i binary_integer:=0; begin while v_i<10

loop dbms_output.put_line('hello'||v_i ); v_i:=v_i+1; end loop; dbms_output.put_line('over'); end;

for循环,注意不需要声明变量begin for v_i in 0..10

loop dbms_output.put_line('hello'||v_i); end

loop; dbms_output.put_line('over'); end;

***************************************** PLSQL异常处理

***************************************** 1、声明异常异常名EXCEPTION;2、抛出异常RAISE 异常名3、处理异常抛出异常后的逻辑代码不会被继续执行

异常的定义使

用――――――――――――――――――――――――――――――――――――― be gin dbms_output.put_line(1/0); exception when others

then dbms_output.put_line('error'); end;

declare e_myException

exception; begin dbms_output.put_line('hello'); raise

e_myException; --raise抛出异常,用此关键字,抛出后转到自定义的e_myException ,执行其里面的putline函数后,再跳到end处,结束PL/SQL块,raise接下面的2句不会继续执行。dbms_output.put_line('world'); dbms_output.put_line(1/0); exception when e_myException

then dbms_output.put_line(sqlcode); --当前会话执行状态,错误编

码dbms_output.put_line(sqlerrm); --当前错误信

息dbms_output.put_line('my error'); when others

then dbms_output.put_line('error'); end; ―――――――――――――――――――――――――――――――――――――

***************************************** PLSQL游标和goto语句

***************************************** 备注:下面提到的游标为静态cursor,包括显示和隐式。游标,从declare、open、fetch、close是一个完整的生命旅程。当然了一个这

样的游标是可以被多次open进行使用的,显式cursor是静态cursor,她的作用域是全局的,但也必须明白,静态cursor也只有pl/sql代码才可以使用它。静态游标变量是在定义时就必须指定SQL 语句。

cursor 游标(结果集)用于提取多行数据,定义后不会有数据,使用后才有。一旦游标被打开,就无法再次打开(可以先关闭,再打开)。declare cursor c_student is select * from book; begin open c_student; close c_student; end;

第二种游标的定义方式,用变量控制结果集的数量。declare v_id

binary_integer; cursor c_student is select * from book where

id>v_id; begin v_id:=10; open c_student; close

c_student; end;

第三种游标的定义方式,带参数的游标,用的最多。declare cursor c_student(v_id binary_integer) is select * from book where id>v_id; begin open

c_student(10); close c_student; end;

游标的使用,一定别忘了关游标。declare v_student

book%rowtype; cursor c_student(v_id binary_integer) is select * from book where id>v_id; begin open c_student(10); fetch c_student into

v_student; close

c_student; dbms_output.put_line(v_https://www.360docs.net/doc/719114308.html,); end;

如何遍历游标fetch游标的属性%found,%notfound,%isopen,%rowcount。%found:若前面的fetch语句返回一行数据,则%found返回true,如果对未打开的游标使用则报ORA-1001异常。%notfound,与%found行为相反。%isopen,判断游标是否打开。%rowcount:当前游标的指针位移量,到目前位置游标所检索的数据行的个数,若未打开就引用,返回ORA-1001。

注:no_data_found和%notfound的用法是有区别的,小结如下1)SELECT . . . INTO 语句触发no_data_found;2)当一个显式光标(静态和动态)的where 子句未找到时触

发%notfound;3)当UPDATE或DELETE 语句的where 子句未找到时触发sql%notfound;4)在光标的提取(Fetch)循环中要用%notfound 或%found 来确定循环的退出条件,不要用

no_data_found。

下面是几个实例:create table BOOK ( ID VARCHAR2(10) not null, BOOKNAME VARCHAR2(10) not null, PRICE VARCHAR2(10) not null, CID VARCHAR2(10) not null );

--insert create or replace procedure say_hello( i_name in varchar2, o_result_msg out varchar2 ) as v_price varchar2(100); e_myException exception;

begin insert into book(id,bookname,price) values

(1,2,3); o_result_msg := 'success'; exception when others

then rollback; o_result_msg := substr(sqlerrm, 1, 200); end;

--update or delete create or replace procedure say_hello( i_name in varchar2,

o_result_msg out varchar2 ) as v_price varchar2(100); e_myException exception;

begin update book set price = '55' where bookname = i_name; delete from book where bookname = i_name; if sql%notfound then raise

e_myException; end if; /* if sql%rowcount = 0 then--写法2 raise e_myException; end if; */ o_result_msg :=

'success'; exception when e_myException

then rollback; o_result_msg := 'update or delete dail'; end;

--select create or replace procedure say_hello( i_name in varchar2, o_result_msg out varchar2 ) as v_price varchar2(100); e_myException exception;

begin select price into v_price from book where bookname =

i_name; o_result_msg := 'success'; exception when no_data_found then rollback; o_result_msg := 'select into dail'; end;

loop方式遍历游标declare v_bookname varchar2(100); cursor

c_book(i_id number) is select bookname from book where id =

i_id; begin Open c_book(i_id); Loop Fetch c_book into

v_bookname; exit when c_student%notfound; update book set price = '33' where bookname = v_bookname; End Loop; Close

c_book; end; 或declare v_bookname varchar2(100); cursor c_book(i_id number) is select bookname from book where id =

i_id; begin Open c_book(i_id); Fetch c_book into

v_bookname; While c_book%Found Loop update book set price = '33' where bookname = v_bookname; Fetch c_book into

v_bookname; End Loop; Close c_book; end;

while循环遍历游标,注意,第一次游标刚打开就fetch,%found为null,进不去循环解决方法:while nvl(c_student%found,true)

loop declare v_bookname varchar2(100); cursor c_book(i_id number) is select bookname from book where id =

i_id; begin Open c_book(i_id); while nvl(c_book%found,true) --或这种写法:while c_book%found is null or c_book%found loop Fetch c_book into v_bookname; update book set price = '33' where bookname =

v_bookname; End Loop; Close c_book; end;

for循环遍历,最简单,用的最多,不需要声明v_student,Open和Close游标和fetch操作(不用打开游标和关闭游标,实现遍历游标最高效方式)declare cursor c_book(i_id number) is select bookname from book where id = i_id; begin for cur in

c_book(i_id) --直接将入参i_id传入cursor即可loop update book set price = '53' where bookname = cur.bookname; end loop; end;

goto例子,一般不推荐使用goto,会使程序结构变乱declare i

number:=0; begin if i=0 then goto hello; end

if; <> begin dbms_output.put_line('hello'); g oto

over; end; <> begin dbms_output.put_line('wo rld'); goto

over; end; <> dbms_output.put_line('over'); end; ***************************************** Oracle存储过程

***************************************** 在谈存储过程书写中的一些规则时,先看一下执行它的规则,在命令窗口执行存储过程sp_get_product_prompt

set serveroutput on var ret1 varchar2(200); var ret2

varchar2(200); exec sp_get_product_prompt(83,:ret1,:ret2); --或

execute print ret1; print ret2; 或set serveroutput

on declare ret1 varchar2(200); ret2

varchar2(200); begin sp_get_product_prompt(83,ret1,ret2); dbms_o utput.put_line(ret1); dbms_output.put_line(ret2); end;

存储过程入参,不论类型,缺省情况下值都为null,入参和出参不能有长度,其中关键字as可以替换成is,存储过程中变量声明在as和begin之间,同时,存储过程中可以再调用其它的存储过程,如果要保证存储过程之间的事务处理不受影响,可以定义为自治事务。create or replace procedure say_hello( v_name in varchar2, v_flag number, o_ret out number ) as begin if v_name is null and v_flag is null then --v_name 和v_flag都等于null o_ret := 10; else o_ret := 100; end if; end;

对于入参为null情况下给予缺省值create or replace procedure say_hello( i_name in varchar2, i_flag number, o_ret out

number ) as v_name varchar2(100); begin if i_name is null then v_name := '0'; else v_name := i_name; end

if; insert into phone(..,wname..,) values(..,v_name,..); end; 或直接在insert语句中调用nvl函数赋缺省值insert into phone(..,wname..,)

values(..,nvl(v_name,' '),..); ----如果将' '写成'',则insert进来的v_name值还是为''等价于null值

带一个参数的存储过程输入参数in,输入参数不能进行:=赋值,但可以将它赋给as后面定义的变量;输入参数in,可以作为变量进行条件判断;默认不写就是in;存储过程没有重载,这个有参的say_hello会替代已经存在的无参say_hello。

create or replace procedure say_hello(v_name in

varchar2) as begin --v_name:='a'; --存储过程入参v_name不能做为赋值目标dbms_output.put_line('hello '||v_name); end;

存储过程输入参数作为变量进行条件判断create or replace procedure

say_hello( i_opFlag in number ) as v_name

varchar2(100); begin if i_opFlag = 1

then v_name :='0'; else v_name :='haha'; end

if; dbms_output.put_line('hello '||v_name); end;

利用存储过程中定义的变量对入参的空值处理:create or replace procedure

say_hello( i_name in varchar2 ) as v_name

varchar2(100); begin if i_name is null

then v_name :='0'; else v_name :=i_name;--将入赋值给定义变

量end if; dbms_output.put_line('hello '||v_name); end;

多个参数的存储过程create or replace procedure say_hello( v_first_name in varchar2, v_last_name in

varchar2) as begin dbms_output.put_line('hello

'||v_first_name||'.'||v_last_name); end;

out输出参数,用于利用存储过程给一个或多个变量赋值,类似于返回值create or replace procedure say_hello( v_name in varchar2, v_content out

varchar2 ) begin v_content:='hello'||v_name; end;

调用:declare v_con varchar2(200); v_in

varchar2(20):='wang'; begin say_hello(v_in,v_con); dbms_output.pu t_line(v_con); end;

in out参数,既赋值又取值create or replace procedure say_hello(v_name in out varchar2) as begin v_name:='hi '||v_name; end;

调用:declare v_inout

varchar2(20):='wangsu'; begin say_hello(v_inout); dbms_output.put _line(v_inout); end;

对存储过程入参赋缺省值create or replace procedure say_hello( v_name varchar2 default 'susu', v_content varchar2 default

'hello' ) as begin dbms_output.put_line(v_name||'

'||v_content); end;

调用:(用指明形参名的方式调用更

好) begin say_hello(); end; 或begin say_hello('cheng');

end; 或begin say_hello(v_name=>'cheng'); end;

***************************************** PLSQL中的function

***************************************** FUNCTION和PROCEDURE的区别1、函数有返回值,过程没有2、函数调用在一个表达式中,过程则是作为pl/sql程序的一个语句过程和函数都以编译后的形式存放在数据库中,函数可以没有参数也可以有多个参数并有一个返回值。过程有零个或多个参数,没有返回值。函数和过程都可以通过参数列表接收或返回零个或多个值,函数和过程的主要区别不在于返回值,而在于他们的调用方式,过程是作为一个独立执行语句调

用的,函数以合法的表达式的方式调用create or replace function func(v_name in varchar2) return varchar2 is begin return(v_name||' hello'); end;

调用:declare v_name

varchar2(20); begin v_name:=func('cheng'); dbms_output.put_line(v_ name); end;

带out参数的函数create or replace function func( v_name in

varchar2, v_content out varchar2 ) return

varchar2 is begin v_content:=v_name||' hello'; return

v_content; end;

调用:declare v_name varchar2(20); v_name1

varchar2(20); begin v_name1:=func('susu',v_name);--返回v_name

值dbms_output.put_line(v_name1);--打印func结

果dbms_output.put_line(v_name);--打印v_name结果end;

带in out 参数的函数create or replace function func( v_name in out

varchar2) return varchar2 is begin v_name:=v_name||'

hello'; return 'cheng'; end;

调用:declare v_inout varchar2(20):='world'; v_ret

varchar2(20); begin v_ret:=func(v_inout);--返回调用v_inout值(作为出

参) dbms_output.put_line(v_ret);--打印func结

果dbms_output.put_line(v_inout);--返回v_name结果end;

2021年SQL语句大全实例

SQL语句实例 欧阳光明(2021.03. 07) 表操作 例1对于表的教学管理数据库中的表STUDENTS ,可以定义如下: CREATE TABLE STUDENTS (SNO NUMERIC (6, 0) NOT NULL SNAME CHAR (8) NOT NULL AGE NUMERIC(3,0) SEX CHAR(2) BPLACE CHAR(20) PRIMARY KEY(SNO)) 例2对于表的教学管理数据库中的表ENROLLS ,可以定义如下:CREATE TABLE ENROLLS (SNO NUMERIC(6,0) NOT NULL CNO CHAR(4) NOT NULL GRADE INT PRIMARY KEY(SNO,CNO) FOREIGN KEY(SNO) REFERENCES STUDENTS(SNO) FOREIGN KEY(CNO) REFERENCES COURSES(CNO)

*欧阳光明*创编2021.03.07 CHECK ((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100))) 例3根据表的STUDENTS表,建立一个只包含学号.姓名.年龄的女学生表。 CREATE TABLE GIRL AS SELECT SNO, SNAME, AGE FROM STUDENTS WHERE SEX=女?; 例4删除教师表TEACHER。 DROP TABLE TEACHER 例5在教师表中增加住址列。 ALTER TABLE TEACHERS ADD (ADDR CHAR(50)) 例6把STUDENTS表中的BPLACE列删除,并且把引用 BPLACE列的所有视图和约束也一起删除。 ALTER TABLE STUDENTS DROP BPLACE CASCADE 例7补充定义ENROLLS表的主关键字。 ALTER TABLE ENROLLS ADD PRIMARY KEY (SNO,CNO);

中考英语口语辅导:consider的用法

中考英语口语辅导:consider的用法 表示“考虑”,其后可接动名词,但不能接不定式。如He is considering changing his job. 他在考虑调换工作。I’ve never really considered getting married. 我从未考虑过结婚的事。注:consider 之后虽然不能直接跟不定式,但可跟“疑问词+不定式”结构。如Have you considered how to get there / how you could get there. 你是否考虑过何到那儿去?2. 表示“认为”、“把……看作”,下面三个句型值得注意(有时三者可互换) (1) consider +that从句(2) consider+宾语+(as +)名词或形容词(3) consider+宾语+(to be +)名词或形容词I consider him (as) honest (或an honest man). I consider him (to be) honest (或an honest man). I consider that he is honest (或an honest man). 注:(1) 以上备句意思大致相同,对于consider 之后能否接as 的问题,尚有不同看法(即有人认为不能接as ,有人认为可以拉as,但实际上接as 的用法已很普遍)。(2) 在“consider+宾语”之后除可接to be 外,有时也可to do 型动词(但多为完成形式)。如We all considered him to have acted disgracefully. 我们都认为他的行为很不光彩。

SQL学习总结

SQL学习 2.1 SQL 简介 当面对一个陌生的数据库是,通常需要一种方式与它进行交换,以完成用户所需要的各种工作,这个时候,就要用到SQL语言了,由于SQL 语言的标准化,所以大多数关系型数据库系统都支持SQL语言,它已经发展成多种平台进行交互操作的底层会话语言。 2.2 SQL 使用入门 2.2.1 SQL分类 SQL 语句主要可以划分为以下3个类别 1)、DDL (Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括create、drop、alter等。 2)、DML(Data Manipulation Languagr)语句:数据操作语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用的语句关键字主要包括insert、delete、update和select等。 3)、DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别、主要的语句关键字包括grant、revoke等。 2.2.2 DDL 语句 DDL是数据定义语言的缩写,是对数据库内部的对象进行创建(create)、删除(drop)、修改(alter)的操作语言,它和DML语句的最大区别是DML只是对表内部数据的操作,而不涉及表定义,结构的修改,更不会涉及其它的对象,DDL语句更多地被数据库管理员(DBA)所使用,一般开发人员很少使用。 下面通过一些例子来介绍MySQL中常用的DDL语句的使用方法。 1、创建数据库 因为所有的数据都存储在数据库中,因此需要学习的第一个命令是创建数据库,语法如下:

数据库_经典SQL语句大全

一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat' --- 开始备份 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 viewname 10、说明:几个简单的基本的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

consider的基本用法及与regardthinkofabout

consider的基本用法及与regard,think ofabout和look(up)on as的区别 consider的基本用法及与regard,think of/about和look(up)on as的区别 consider一词在历年高考中是一个常考的要点,其用法应分为两部分来讲。第一、作“考虑、思考”时的搭配如下: 1.consider+n./pron.,例如: Have you considered the suggestion? That’s what we have to consider now. 2.consider+v-ing,但不能接不定式的一般式,例如: We considered going to see the doctor the next day. Have you considered moving to shanghai recently? You must consider to tell him something about it.(错误) 3.consider+疑问词+不定式,例如: He is considering how to improve his English. We must consider what to do next.

4.consider+从句,例如: We didn’t consider whether he should go or not. Have you considered when we should go there? 第二、作“认为、把……当作/看作”等意思时的搭配如下:1.consider+sb/sth+(to be/as)+n./adj.,例如: I consider him to(be/as)my best friend. Everyone considers him(to be)clever. He considered it much improved. 2.consider+sb./sth.+不定式短语(作宾语补足语),不能接不定式的一般式,例如: We consider them to be working very hard. We consider them to have finished the work. We consider him to be the clever in our class. We must consider him to go there at once.(错误) 3.consider+it+adj./n.+不定式短语,其中it为形式宾语,不定式短语为真正的宾语,例如: Jiao Yulu considered it his duty to serve the people heart and soul. They consider it necessary to set the slaves free.

SQL语句--Group By总结

1 SQL语句--Group By总结 1. Group By 语句简介: Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。 P.S. 这里真是体会到了一个好的命名的力量,Group By从字面是直接去理解是非常好理解的。恩,以后在命名的环节一定要加把劲:)。话题扯远了。 2. Group By 的使用: 上面已经给出了对Group By语句的理解。基于这个理解和SQL Server 2000的联机帮助,下面对Group By语句的各种典型使用进行依次列举说明。 2.1 Group By [Expressions]: 这个恐怕是Group By语句最常见的用法了,Group By + [分组字段](可以有多个)。在执行了这个操作以后,数据集将根据分组字段的值将一个数据集划分成各个不同的小组。比如有如下数据集,其中水果名称(FruitName)和出产国家(ProductPlace)为联合主键: FruitName ProductPlace Price Apple China $1.1 Apple Japan $2.1 Apple USA $2.5 Orange China $0.8 Banana China

$3.1 Peach USA $3.0 如果我们想知道每个国家有多少种水果,那么我们可以通过如下SQL语句来完成: SELECTCOUNT(*)AS水果种类,ProductPlaceAS出产国 FROMT_TEST_FRUITINFO GROUPBYProductPlace 这个SQL语句就是使用了Group By + 分组字段的方式,那么这句SQL语句就可以解释成“我按照出产国家(ProductPlace)将数据集进行分组,然后分别按照各个组来统计各自的记录数量。”很好理解对吧。这里值得注意的是结果集中有两个返回字段,一个是ProductPlace(出产国), 一个是水果种类。如果我们这里水果种类不是用Count(*),而是类似如下写法的话: SELECTFruitName,ProductPlaceFROMT_TEST_FRUITINFOGROUPBYProductPlace 那么SQL在执行此语句的时候会报如下的类似错误: 选择列表中的列'T_TEST_FRUITINFO.FruitName'无效,因为该列没有包含在聚合函数或GROUPBY子句中。 这就是我们需要注意的一点,如果在返回集字段中,这些字段要么就要包含在Group By语句的后面,作为分组的依据;要么就要被包含在聚合函数中。我们可以将Group By操作想象成如下的一个过程,首先系统根据SELECT 语句得到一个结果集,如最开始的那个水果、出产国家、单价的一个详细表。然后根据分组字段,将具有相同分组字段的记录归并成了一条记录。这个时候剩下的那些不存在于Group By语句后面作为分组依据的字段就有可能出现多个值,但是目前一种分组情况只有一条记录,一个数据格是无法放入多个数值的,所以这里就需要通过一定的处理将这些多值的列转化成单值,然后将其放在对应的数据格中,那么完成这个步骤的就是聚合函数。这就是为什么这些函数叫聚合函数(aggregate functions)了。 2.2 Group By All [expressions] : Group By All + 分组字段, 这个和前面提到的Group By [Expressions]的形式多了一个 关键字ALL。这个关键字只有在使用了where语句的,且where条件筛选掉了一些组的情况才可以看出效果。在SQL Server 2000的联机帮助中,对于Group By All是这样进行描述的:

最新常用经典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 --- 创建备份数据的device USE master EXEC sp_addumpdevice ’disk’, ’testBack’, ’c:\mssql7backup\MyNwind_1.dat’--- 开始备份 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

Consider的用法

Consider的用法: -Have you considered_____ the job ss a teacher? -Yes.I like it because a teacher is often considered _______ a gardener. A.to take,to be B.to take,being C.taking,being D.taking,to be 答案:d译文:你考虑过做老师的工作吗? 是的,我非常喜欢,因为老师通常被认为是园丁 一、consider作“考虑”解,常用于以下句型: 1.consider+名词/代词/动名词。 You'd better consider my suggestion. 你最好考虑我的建议。 I’m considering going abroad some day.我一直考虑有一天出国。 2.consider+从句或“疑问词+不定式”。 Have you considered what he suggested? 你们考虑他的建议了吗? We must consider what to do next. 我们必须考虑下一步要做什么。 二.consider作“认为”解时,常用于以下句型: 1.consider sb./sth+.(as)+形容词/名词。其中,as可以省略。 We consider him honest. 我们认为他很诚实。 At first they considered me as a doctor.起初他们认为我是医生。 2.consider+sb./sth.+不定式。其中,不定式通常是to be(可以省略)或其他动词的完成式。We consider this matter to be very important. 我们认为这件事很重要。 We all consider him to have stolen the bike.我们都认为他偷了自行车。 3.consider+it+形容词/名词+不定式短语。 We consider it hard to study English well.我们认为学好英语很难。 I consider it my duty to help you with your studies.我认为帮助你学习英语是我的职责。 4.consider+宾语从句。 We consider that the music is well worth listening to.我们这首音乐很值得一听。 在该题中,前一个句子中的consider作“考虑”解,后接动名词作宾语,但不可接不定式,由此可以排除A, B; 后一个句子中的consider作“认为”解,用到句型consider+sb./sth.+不定式,此处使用的是被动语态结构。故答案为D项。 请看下面两道考题,均考查“with+宾语+非谓语动词”结构: 1.—Come on, please give me some ideas about the project. —Sorry. With so much work _________my mind, I almost break down. A.filled B.filling C.to fill D.being filled 2.John received an invitation to dinner, and with his work _________, he gladly acc epted it. A.finished B.finishing C.having finished D.was finished 以上两题答案分别为B和A,均考查“with+宾语+非谓语动词”结构。该结果中的“非谓语动词”可以是不定式、现在分词、过去分词,它们在用法上的区别如下:

SQL语句从大到小排序

根据下面三个关系模式完成下面习题:答案已设为白色需要就全选设为黑色学生表student 第一章课件:编写基本的sql语句。 1.查询所有学生情况。 3.查询所有学生的姓名,性别以及年龄。 5.查询所有学生10年后的年龄。 7.查询所有课程(列名用中文显示)。 9.查看竟有那些学生选课(重复学号显示一次)。 11.显示课程表的边结构。第二章课件:约束和排序数据。 01.查询计算机系的所有学生的姓名和年龄。 02.查询体育课的学分。 03.查询年龄小于18的学生。 04.查询年龄大于20的学生。 05.查询年龄介于18和20之间的学生(包括18和20)。 06.查询年龄不在18和20之间的学生。 07.查询年龄为18,20,22的学生。 08.查询年龄不是18,20,22的学生。 09.查询所有姓张的学生。 10.查询所有没有先行课的课程。 11.查询有先行课的课程。 12.在计算机系中找,姓张的男生。 13.在计算机系中找,姓张的或者姓李的男生并且按照年龄从大到小排序。 14.查询所有学生信息,显示结果先按系从大到小排序,再按年龄排序。 第三章课件:多表查询 1.查询每个学生(学号)选了哪门课(课程)得了多少分 2.查询每个学生(姓名)选了哪门课(课程号)得了多少分 3.查询每个学生(姓名)选了哪门课(课程名)得了多少分 4.查询一下王林选可哪门课得了多少分。 5.查询每个学生的成绩类别(优、良还是及格)。 6.查询哪个学生没有选课(用外查询)。 7.查询哪门课没有人选(用外查询)。 第四章课件:组函数

1.查询一下所有课程的平均分,最高分,最低分和总分数。 2.查询一下有多少个学生参加选课。 3.查询一下计算机系有多少人过20岁。 4.统计一下计算机系的男生多少人。 5.查询一下每个学生考试的最高分和最低分。 6.查询每门课(课程号)的最高分和最底分。 7.查询每门课(课程名)的最高分和最底分。 8.查询计算机系中男生多少人,女生多少人。 9,查询人数在三百人以上的系。 10.查询选修人数在三人(包括三人)的课程(课程名)。 11.查询各科考试成绩最低的同学。 12.查询考试成绩小于所选课程平均分的人。(有能力的同学选做) 第五章课件:子查询 1.查询所有比王林大的同学信息。 2.查询和王林同在一个系的所有学生信息。 3.查询一下谁的成绩(所有成绩)最低。 4.查询一下每门课成绩最底的同学(要姓名,和成绩)。 5.查询一下哪个学生没有选课(用子查询)。 6.查询一下哪门课没有人选(用子查询)。 7.查询一下和王林一个系,但是比他年龄大的同学。 第六章课件:ddl语句 1.创建以上四个表,要求每个表必须有主键,表和表之间必须有外间关联。 3.写出insert语句,给表添加以上数据。 5.提交所有操作。 7.将王林的年龄设置为空。 9.将张大民调到计算机系。 11.将体育课的学分设置成和管理学学分一样(update 中带有子查询)。 13.回滚所有操作。 9.某公司印了一批充值卡,卡的密码是随机生成的,现在出现这个问题:卡里面的“o和0”(哦和零)“i和1”(哎和一),用户反映说看不清楚,公司决定,把存储在数据

常用经典SQL语句大全完整版教学文案

常用经典S Q L语句大 全完整版

常用经典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 --- 创建备份数据的 device USE master EXEC sp_addumpdevice ’disk’, ’testBack’, ’c:\mssql7backup\MyNwind_1.dat’--- 开始备份

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….)

consider的用法归纳有哪些

consider的用法归纳有哪些 consider的用法:作名词 consideration作名词,意为careful thought and attention斟酌,考虑 Several considerations have influenced my decision.好几个因素影响了我的决定。 1.Consideration for顾及,体贴 He has never shown much consideration for his wife’s needs.他从来不顾及他妻 子的需要。 2.Under consideration在讨论/考虑中 Several projects are under consideration.好几个项目在讨论中。 There are some proposals under consideration. 有几个建议在审议中。 3.Take sth. into consideration考虑到某事,体谅 Your teachers will take your recent illness into consideration when marking your exams. 你的几位老师在给你的考试评分时,会考虑你最近生病这一情况的。 4.Leave sth. out of consideration 忽略/不重视某事 It was wrong to leave my feelings out of consideration.不顾及我的情感是不对的。 5.Show consideration for体谅,顾及 Jeff never shows any consideration for his mother’s feelings.杰夫从来不体谅他 母亲的感受。 6.of. No / little consideration无关紧要的,不重要的 Whether he would go with us or not was of no consideration. 他是否跟我们一起 去是无关紧要的。 7.In consideration of sth.作为对……的汇报,考虑到 It’s a small payment in consideration of your services.这是答谢您服务的微薄酬金。 consider的用法:作动词 1.Consider作动词,意为think about sth.考虑,斟酌 常用搭配:consider sth. / doing sth. / where(how, why)+to do /that clause; all things considered通盘考虑,考虑到问题的各个方面。如:

50个经典sql语句总结

一个项目涉及到的50个Sql语句(整理版) --1.学生表 Student(S,Sname,Sage,Ssex) --S 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别--2.课程表 Course(C,Cname,T) --C --课程编号,Cname 课程名称,T 教师编号 --3.教师表 Teacher(T,Tname) --T 教师编号,Tname 教师姓名 --4.成绩表 SC(S,C,score) --S 学生编号,C 课程编号,score 分数 */ --创建测试数据 create table Student(S varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10)) insert into Student values('01' , N'赵雷' , '1990-01-01' , N'男') insert into Student values('02' , N'钱电' , '1990-12-21' , N'男') insert into Student values('03' , N'孙风' , '1990-05-20' , N'男') insert into Student values('04' , N'李云' , '1990-08-06' , N'男') insert into Student values('05' , N'周梅' , '1991-12-01' , N'女') insert into Student values('06' , N'吴兰' , '1992-03-01' , N'女') insert into Student values('07' , N'郑竹' , '1989-07-01' , N'女') insert into Student values('08' , N'王菊' , '1990-01-20' , N'女') create table Course(C varchar(10),Cname nvarchar(10),T varchar(10)) insert into Course values('01' , N'语文' , '02') insert into Course values('02' , N'数学' , '01') insert into Course values('03' , N'英语' , '03') create table Teacher(T varchar(10),Tname nvarchar(10)) insert into Teacher values('01' , N'张三') insert into Teacher values('02' , N'李四') insert into Teacher values('03' , N'王五') create table SC(S varchar(10),C varchar(10),score decimal(18,1)) insert into SC values('01' , '01' , 80) insert into SC values('01' , '02' , 90) insert into SC values('01' , '03' , 99) insert into SC values('02' , '01' , 70) insert into SC values('02' , '02' , 60) insert into SC values('02' , '03' , 80) insert into SC values('03' , '01' , 80) insert into SC values('03' , '02' , 80) insert into SC values('03' , '03' , 80) insert into SC values('04' , '01' , 50) insert into SC values('04' , '02' , 30) insert into SC values('04' , '03' , 20) insert into SC values('05' , '01' , 76) insert into SC values('05' , '02' , 87)

数据库经典SQL语句大全

数据库经典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 --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk','testBack', 'c:mssql7backupMyNwind_1.dat' --- 开始备份 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、说明: 删除新表: 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 注:索引是不可更改的,想更改必须删除重新建。

consider 用法

consider大致有两种含义。含义不同,用法有别。现归纳如下。 一、 consider作“考虑”解,常用于以下句型: 1. Consider+名词/代词/动名词。 You’d better consider my suggestion. 你最好考虑我的建议。 I’m considering going abroad some day.我一直考虑有一天出国。 2. Consider+从句或“疑问词+不定式”。 Have you considered what he suggested?你们考虑他的建议了吗? We must consider what to do next.我们必须考虑下一步要做什么。 二.Consider作“认为”解时,常用于以下句型: 1. Consider sb./sth+.(as)+形容词/名词。其中,as可以省略。 We consider him honest.我们认为他很诚实。 At first they considered me as a doctor.起初他们认为我是医生。 2.consider+sb./sth.+不定式。其中,不定式通常是to be(可以省略)或其他动词的完成式。We consider this matter to be very important.我们认为这件事很重要。 We all consider him to have stolen the bike.我们都认为他偷了自行车。 3.consider+it+形容词/名词+不定式短语。 We consider it hard to study English well.我们认为学好英语很难。 I consider it my duty to help you with your studies.我认为帮助你学习英语是我的职责。 4.consider+宾语从句。 We consider that the music is well worth listening to.我们这首音乐很值得一听

知识点、SQL语句学习及详细总结

一. 数据库简介和创建 1. 系统数据库 在安装好SQL SERVER后,系统会自动安装5个用于维护系统正常运行的系统数据库: (1)master:记录了SQL SERVER实例的所有系统级消息,包括实例范围的元数据(如登录帐号)、端点、链接服务器和系统配置设置。 (2)msdb:供SQL SERVER 代理服务调度报警和作业以及记录操作员的使用,保存关于调度报警、作业、操作员等信息。(备份还原时) (3)model:SQL SERVER 实例上创建的所有数据库的模板。 (4)tempdb:临时数据库,用于保存临时对象或中间结果集,为数据库的排列等操作提供一个临时工作空间。(每次启动都会重新创建) (5)Resource:一个只读数据库,包含了SQL SERVER 的所有系统对象。(隐藏的数据库) 2. 数据库的组成 2.1 数据文件 (1)主要数据文件:扩展名为 .mdf ,每个数据库有且只能有一个。 (2)次要数据文件:扩展名为 .ndf ,可以没有或有多个。 2.2 日志文件 扩展名为 .ldf ,用于存放恢复数据库的所有日志信息。 2.3 数据的存储分配 (1)数据文件和日志文件的默认存放位置为:\Programe Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data文件夹。 (2)数据的存储分配单位是数据页。一页表是一块8KB的连续磁盘空间。(3)页是存储数据的最小空间分配单位,页的大小决定了数据库表中一行数据的最大大小。

3. SQL语句数据库操作 (1)创建数据库 CREATE DATABASE database_name 二. SQL基础 SQL(Structured Query Language,结构化查询语言)是用户操作关系数据库的通用语言。 1. SQL功能概述

精妙SQL语句收集

精妙SQL语句收集 摘要:一、基础 二、提升 三、技巧 正文: SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作。 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 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中列加上后数据类型也不能改变,唯一能改变的是增加var char类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col)

consider的用法和短语例句

consider的用法和短语例句 consider有考虑;思考;认为;体谅等意思,consider的多种用法你了解多少呢,下面跟着小编一起来学习consider的用法和短语例句吧,希望对大家的学习有所帮助! consider的用法consider的用法1:consider的基本意思是用脑细想和斟酌,也可表示为找到结论而想方设法,还可以表示限定在确定的观点上,即认为。引申可表示关心顾及体谅等。 consider的用法2:consider作考虑解时,可用作不及物动词,也可用作及物动词。用作及物动词可接名词、代词、动名词、带疑问词的动词不定式或wh-从句作宾语。接动名词作宾语时,可用于进行时态。 consider的用法3:consider作认为解时,是正式语体,可接that 从句作宾语,也可接复合宾语。其宾语补足语可由名词、形容词、介词短语、动词不定式、现在分词、过去分词等充当。在用作宾语补足语的名词、形容词或介词短语之前,有时可插入to be或as。如果to be表示的时间先于谓语动词,则不可省略且须用完成时。consider 作关心,体谅,顾及解时,一般接名词作宾语。 consider的用法4:consider的过去分词considered有时可用作定语用来修饰其他名词,意思是考虑过的。 consider的用法5:consider可用于被动结构。

consider的常用短语consider over (v.+prep.) 考虑think about (sth) consider over sth consider相关词汇辨析consider,think,believe,count,deem,reckon,regard 这些动词均含有认为之意。 consider 指经过考虑和观察后得出的结论。 think 普通用词,指按照自己的意见提出看法。 believe 通常指根据一定的证据,经思考后而认为属实。 count 指作出判断后而得出的看法等。 deem 正式用词,常用于法律、文学,强调作判断而不是思考。 reckon 指对人或事作全面权衡,把各方面意见考虑进去后得出结论。 regard 侧重凭外表或表面现象作判断。多强调观点。 consider to do还是consider doing? I am considering to write an article.这个句子要表达的意思是:我正在考虑些一片文章。 句中出现consider这个词,它是名词consideration的动词形式。它是指考虑某人或某事物,尤其是指以做决定为目的的,细想。 我们先来熟悉一下这个词的用法,它的习惯用法有consider+名词或代词等,consideration+宾语从句,还有consider somebody or something for something or somebody或者是

相关文档
最新文档