第一篇:PostgreSQL学习手册:SQL语言函数
PostgreSQL学习手册:SQL语言函数
一、基本概念:
SQL函数可以包含任意数量的查询,但是函数只返回最后一个查询(必须是SELECT)的结果。在简单情况下,返回最后一条查询结果的第一行。如果最后一个查询不返回任何行,那么该函数将返回NULL值。如果需要该函数返回最后一条SELECT语句的所有行,可以将函数的返回值定义为集合,即SETOF sometype。
SQL函数的函数体应该是用分号分隔的SQL语句列表,其中最后一条语句之后的分号是可选的。除非函数声明为返回void,否则最后一条语句必须是SELECT。事实上,在SQL函数中,不仅可以包含SELECT查询语句,也可以包含INSERT、UPDATE和DELETE等其他标准的SQL语句,但是和事物相关的语句不能包含其中,如BEGIN、COMMIT、ROLLBACK和SAVEPOINT等。
CREATE FUNCTION命令的语法要求函数体写成一个字符串文本。通常来说,该文本字符串常量使用美元符($$)围住,如:
CREATE FUNCTION clean_emp()RETURNS void AS $$
DELETE FROM emp WHERE salary < 0;
$$ LANGUAGE SQL;
最后需要说明的是SQL函数中的参数,PostgreSQL定义$1表示第一个参数,$2为第二个参数并以此类推。如果参数是复合类型,则可以使用点表示法,即$1.name访问复合类型参数中的name字段。需要注意的是函数参数只能用作数据值,而不能用于标识符,如: INSERT INTO mytable VALUES($1);--合法
INSERT INTO $1 VALUES(42);--不合法(表名属于标示符之一)
二、基本类型:
最简单的SQL函数可能就是没有参数且返回基本类型的函数了,如:
CREATE FUNCTION one()RETURNS integer AS $$
SELECT 1 AS result;
$$ LANGUAGE SQL;
下面的例子声明了基本类型作为函数的参数。
CREATE FUNCTION add_em(integer, integer)RETURNS integer AS $$
SELECT $1 + $2;
$$ LANGUAGE SQL;
# 通过select调用函数。
postgres=# SELECT add_em(1,2)AS answer;
answer
--------
(1 row)
在下面的例子中,函数体内包含多个SQL语句,它们之间是用分号进行分隔的。
CREATE FUNCTION tf1(integer, numeric)RETURNS numeric AS $$
UPDATE bank SET balance = balance-$2 WHERE accountno = $1;
SELECT balance FROM bank WHERE accountno = $1;
$$ LANGUAGE SQL;
lv包包、古奇女包、coach包:|兔毛皮草、獭兔皮草、皮草服饰:
三、复合类型:
见如下示例:
1).创建数据表,这样与之对应的复合类型也随之生成。
CREATE TABLE emp(name text,salary numeric,age integer,);
2).创建函数,其参数为复合类型。在函数体内,可以像引用基本类型参数那样引用复合类型,如$1。访问复合类型的字段使用点表达式即可,如:$1.salary。
CREATE FUNCTION double_salary(emp)RETURNS integer AS $$
SELECT($1.salary * 2)::integer AS salary;
$$ LANGUAGE SQL;
3).在select语句中,可以使用emp.*表示emp表的一整行数据。
SELECT name, double_salary(emp.*)AS dream FROM emp WHERE age > 30;
4).我们也可以使用ROW表达式构造自定义的复合类型,如:
SELECT name, double_salary(ROW(name, salary*1.1, age))AS dream FROM emp;
5).创建一个函数,其返回值为复合类型,如:
CREATE FUNCTION new_emp()RETURNS emp AS $$
SELECT ROW('None', 1000.0, 25)::emp;
$$ LANGUAGE SQL;
6).调用返回复合类型的函数。
SELECT new_emp();
7).调用返回复合类型的函数,同时访问该返回值的某个字段。
SELECT(new_emp()).name;
四、带输出参数的函数:
还有一种方法可以用于返回函数执行的结果,即输出参数,如:
CREATE FUNCTION add_em2(IN x int, IN y int, OUT sum int)AS $$
SELECT $1 + $2
$$ LANGUAGE SQL;
调用方法和返回结果与add_em(带有返回值的函数)完全一致,如:
SELECT add_em(3,7);
这个带有输出参数的函数和之前的add_em函数没有本质的区别。事实上,输出参数的真正价值在于它为函数提供了返回多个字段的途径。如,CREATE FUNCTION sum_n_product(x int, y int, OUT sum int, OUT product int)AS $$
SELECT $1 + $2, $1 * $2
$$ LANGUAGE SQL;
调用方式没有改变,只是返回结果多出一列。
SELECT * FROM sum_n_product(11,42);
sum | product
-----+---------
| 462
(1 row)
在上面的示例中,IN用于表示该函数参数为输入参数(缺省值,可以忽略),OUT则表示该参数为输出参数。
五、返回结果作为表数据源:
所有SQL函数都可以在查询的FROM子句里使用。该方法对于返回复合类型的函数而言特别有用,如果该函数定义为返回一个基本类型,那么该函数生成一个单字段表,如果该函数定义为返回一个复合类型,那么该函数生成一个复合类型里每个属性组成的行。见如下示例:
1).创建一个数据表。
CREATE TABLE foo(fooid int,foosubid int,fooname text);
2).创建SQL函数,其返回值为与foo表对应的复合类型。
CREATE FUNCTION getfoo(int)RETURNS foo AS $$
SELECT * FROM foo WHERE fooid = $1;
$$ LANGUAGE SQL;
3).在FROM子句中调用该函数。
SELECT *, upper(fooname)FROM getfoo(1)AS t1;
六、返回集合的SQL函数:
如果SQL函数的返回值为SETOF sometype,那么在调用该函数时,将返回最后一个SELECT查询的全部数据。这个特性通常用于把函数放在FROM子句里调用,见如下示例: CREATE FUNCTION getfoo(int)RETURNS setof foo AS $$
SELECT * FROM foo WHERE fooid = $1;
$$ LANGUAGE SQL;
在FROM子句中调用了返回复合类型集合的函数,其结果等同于:SELECT * FROM(SELECT * FROM foo WHERE fooid = 1)t1;
SELECT * FROM getfoo(1)AS t1;
七、多态的SQL函数:
SQL函数可以声明为接受多态类型(anyelement和anyarray)的参数或返回多态类型的返回值,见如下示例:
1).函数参数和返回值均为多态类型。
CREATE FUNCTION make_array(anyelement, anyelement)RETURNS anyarray AS $$
SELECT ARRAY[$1, $2];
$$ LANGUAGE SQL;
其调用方式和调用其它类型的SQL函数完全相同,只是在传递字符串类型的参数时,需要显式转换到目标类型,否则将会被视为unknown类型,如:
SELECT make_array(1, 2)AS intarray, make_array('a'::text, 'b')AS textarray;
2).函数的参数为多态类型,而返回值则为基本类型。
CREATE FUNCTION is_greater(anyelement, anyelement)RETURNS boolean AS $$
SELECT $1 > $2;
$$ LANGUAGE SQL;
3).多态类型用于函数的输出参数。
CREATE FUNCTION dup(f1 anyelement, OUT f2 anyelement, OUT f3 anyarray)AS $$
SELECT $1, ARRAY[$1,$1]
$$ LANGUAGE sql;
八、函数重载:
多个函数可以定义成相同的函数名,但是它们的参数一定要有所区分。换句话说,函数名可以重载,此规则有些类似于面向对象语言中的函数重载,见如下示例:
CREATE FUNCTION test(int, real)RETURNS...CREATE FUNCTION test(smallint, double)RETURNS...由于在PostgreSQL中函数支持重载,因此在删除函数时,也必须指定参数列表,如: DROP FUNCTION test(int, real);
DROP FUNCTION test(smallint,double);
第二篇:sql语言学习
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 < 3
begin
print @x--打印变量x 的值
while @y < 3
begin
select @c = 100*@x + @y
print @c--打印变量c 的值
select @y = @y + 1
end
select @x = @x + 1
select @y = 1
end
--WAITFOR
--例 等待1 小时2 分零3 秒后才执行SELECT 语句
waitfor delay ’01:02:03’
select * from employee
--例 等到晚上11 点零8 分后才执行SELECT 语句
waitfor time ’23:08:00’
select * from employee
***SELECT***
select *(列名)from table_name(表名)where column_name operator value
ex:(宿主)
select * from stock_information where stockid= str(nid)
stockname = 'str_name'
stockname like '% find this %'
stockname like '[a-zA-Z]%'---------([]指定值的范围)
stockname like '[^F-M]%'---------(^排除指定范围)
---------只能在使用like关键字的where子句中使用通配符)
or stockpath = 'stock_path'
or stocknumber < 1000
and stockindex = 24
not stocksex = 'man'
stocknumber between 20 and 100
stocknumber in(10,20,30)
order by stockid desc(asc)---------排序,desc-降序,asc-升序
order by 1,2---------by列号
stockname =(select stockname from stock_informationwhere stockid= 4)
---------子查询
---------除非能确保内层select只返回一个行的值,---------否则应在外层where子句中用一个in限定符
select distinct column_name form table_name---------distinct指定检索独有的列值,不重复select stocknumber ,“stocknumber + 10” = stocknumber + 10 from table_name
select stockname , “stocknumber” = count(*)from table_name group by stockname
---------group by 将表按行分组,指定列中有相同的值
having count(*)= 2---------having选定指定的组
select *
from table1, table2
where table1.id *= table2.id--------左外部连接,table1中有的而table2中没有得以null表示table1.id =* table2.id--------右外部连接
select stockname from table1
union [all]-----union合并查询结果集,all-保留重复行
select stockname from table2
***insert***
insert into table_name(Stock_name,Stock_number)value(“xxx”,“xxxx”)
value(select Stockname , Stocknumber from Stock_table2)---value为select语句
***update***
update table_name set Stockname = “xxx” [where Stockid = 3]
Stockname = default
Stockname = null
Stocknumber = Stockname + 4
***delete***
delete from table_name where Stockid = 3
truncate table_name-----------删除表中所有行,仍保持表的完整性
drop table table_name---------------完全删除表
***alter table***---修改数据库表结构
alter table database.owner.table_name add column_name char(2)null.....sp_help table_name----显示表已有特征
create table table_name(name char(20), age smallint, lname varchar(30))
insert into table_name select.........-----实现删除列的方法(创建新表)
alter table table_name drop constraint Stockname_default----删除Stockname的default约束
***function(/*常用函数*/)***
----统计函数----
AVG--求平均值
COUNT--统计数目
MAX--求最大值
MIN--求最小值
SUM--求和
--AVG
use pangu
select avg(e_wage)as dept_avgWage
from employee
group by dept_id
--MAX
--求工资最高的员工姓名
use pangu
select e_name
from employee
where e_wage =
(select max(e_wage)
from employee)
--STDEV()
--STDEV()函数返回表达式中所有数据的标准差
--STDEVP()
--STDEVP()函数返回总体标准差
--VAR()
--VAR()函数返回表达式中所有值的统计变异数
--VARP()
--VARP()函数返回总体变异数
----算术函数----
/***三角函数***/
SIN(float_expression)--返回以弧度表示的角的正弦
COS(float_expression)--返回以弧度表示的角的余弦
TAN(float_expression)--返回以弧度表示的角的正切
COT(float_expression)--返回以弧度表示的角的余切
/***反三角函数***/
ASIN(float_expression)--返回正弦是FLOAT 值的以弧度表示的角
ACOS(float_expression)--返回余弦是FLOAT 值的以弧度表示的角
ATAN(float_expression)--返回正切是FLOAT 值的以弧度表示的角
ATAN2(float_expression1,float_expression2)
--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角
DEGREES(numeric_expression)
--把弧度转换为角度返回与表达式相同的数据类型可为
--INTEGER/MONEY/REAL/FLOAT 类型
RADIANS(numeric_expression)--把角度转换为弧度返回与表达式相同的数据类型可为
--INTEGER/MONEY/REAL/FLOAT 类型
EXP(float_expression)--返回表达式的指数值
LOG(float_expression)--返回表达式的自然对数值
LOG10(float_expression)--返回表达式的以10 为底的对数值
SQRT(float_expression)--返回表达式的平方根
/***取近似值函数***/
CEILING(numeric_expression)--返回>=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型
FLOOR(numeric_expression)--返回<=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型
ROUND(numeric_expression)--返回以integer_expression 为精度的四舍五入值返回的数据--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型
ABS(numeric_expression)--返回表达式的绝对值返回的数据类型与表达式相同可为
--INTEGER/MONEY/REAL/FLOAT 类型
SIGN(numeric_expression)--测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型--与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型
PI()--返回值为π 即3.14***936
RAND([integer_expression])--用任选的[integer_expression]做种子值得出0-1 间的随机浮点数----字符串函数----
ASCII()--函数返回字符表达式最左端字符的ASCII 码值
CHAR()--函数用于将ASCII 码转换为字符
--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值
LOWER()--函数把字符串全部转换为小写
UPPER()--函数把字符串全部转换为大写
STR()--函数把数值型数据转换为字符型数据
LTRIM()--函数把字符串头部的空格去掉
RTRIM()--函数把字符串尾部的空格去掉
LEFT(),RIGHT(),SUBSTRING()--函数返回部分字符串
CHARINDEX(),PATINDEX()--函数返回字符串中某个指定的子串出现的开始位置
SOUNDEX()--函数返回一个四位字符码
--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值DIFFERENCE()--函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异
--0 两个SOUNDEX 函数返回值的第一个字符不同
--1 两个SOUNDEX 函数返回值的第一个字符相同
--2 两个SOUNDEX 函数返回值的第一二个字符相同
--3 两个SOUNDEX 函数返回值的第一二三个字符相同
--4 两个SOUNDEX 函数返回值完全相同
QUOTENAME()--函数返回被特定字符括起来的字符串
/*select quotename('abc', '{')quotename('abc')
运行结果如下
---{
{abc} [abc]*/
REPLICATE()--函数返回一个重复character_expression 指定次数的字符串 /*select replicate('abc', 3)replicate('abc',-2)
运行结果如下
----------------------
abcabcabc NULL*/
REVERSE()--函数将指定的字符串的字符排列顺序颠倒
REPLACE()--函数返回被替换了指定子串的字符串
/*select replace('abc123g', '123', 'def')
运行结果如下
----------------------
abcdefg*/
SPACE()--函数返回一个有指定长度的空白字符串
STUFF()--函数用另一子串替换字符串指定位置长度的子串
第三篇:SQL语句常用函数
SQL语句常用函数、字符转换函数
1、ASCII()
返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。
2、CHAR()
将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR()返回NULL。
3、LOWER()和UPPER()
LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。
4、STR()
把数值型数据转换为字符型数据。
STR(
length 指定返回的字符串的长度,decimal 指定返回的小数位数。如果没有指定长度,缺省的length 值为10,decimal 缺省值为0。
当length 或者decimal 为负值时,返回NULL;
当length 小于小数点左边(包括符号位)的位数时,返回length 个*; 先服从length,再取decimal ;
当返回的字符串位数小于length,左边补足空格。
二、去空格函数
1、LTRIM()把字符串头部的空格去掉。
2、RTRIM()把字符串尾部的空格去掉。
三、取子串函数
1、left()
LEFT(
返回character_expression 左起 integer_expression 个字符。
2、RIGHT()
RIGHT(
返回character_expression 右起 integer_expression 个字符。
3、SUBSTRING()
SUBSTRING(
返回从字符串左边第starting_ position 个字符起length个字符的部分。
四、字符串比较函数
1、CHARINDEX()
返回字符串中某个指定的子串出现的开始位置。
CHARINDEX(<’substring_expression’>,
其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。
此函数不能用于TEXT 和IMAGE 数据类型。
2、PATINDEX()
返回字符串中某个指定的子串出现的开始位置。
PATINDEX(<’%substring _expression%’>,
与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、VARCHAR 和TEXT 数据类型。
五、字符串操作函数
1、QUOTENAME()
返回被特定字符括起来的字符串。
QUOTENAME(<’character_expression’>[,quote_ character])其中quote_ character 标明括字符串所用的字符,缺省值为“[]”。
2、REPLICATE()
返回一个重复character_expression 指定次数的字符串。
REPLICATE(character_expression integer_expression)如果
integer_expression 值为负值,则返回NULL。
3、REVERSE()
将指定的字符串的字符排列顺序颠倒。
REVERSE(
4、REPLACE()
返回被替换了指定子串的字符串。
REPLACE(
5、SPACE()
返回一个有指定长度的空白字符串。
SPACE(
6、STUFF()
用另一子串替换字符串指定位置、长度的子串。
STUFF(
如果起始位置为负或长度值为负,或者起始位置大于
character_expression1 的长度,则返回NULL 值。
如果length 长度大于character_expression1 中 start_ position 以右的长度,则character_expression1 只保留首字符。
六、数据类型转换函数
1、CAST()
CAST(
2、CONVERT()
CONVERT(
1)data_type为SQL Server系统定义的数据类型,用户自定义的数据类型不能在此使用。
2)length用于指定数据的长度,缺省值为30。
3)把CHAR或VARCHAR类型转换为诸如INT或SAMLLINT这样的INTEGER类型、结果必须是带正号或负号的数值。
4)TEXT类型到CHAR或VARCHAR类型转换最多为8000个字符,即CHAR或VARCHAR数据类型是最大长度。
5)IMAGE类型存储的数据转换到BINARY或VARBINARY类型,最多为8000个字符。
6)把整数值转换为MONEY或SMALLMONEY类型,按定义的国家的货币单位来处理,如人民币、美元、英镑等。
7)BIT类型的转换把非零值转换为1,并仍以BIT类型存储。
8)试图转换到不同长度的数据类型,会截短转换值并在转换值后显示“+”,以标识发生了这种截断。
9)用CONVERT()函数的style 选项能以不同的格式显示日期和时间。style 是将DATATIME 和SMALLDATETIME 数据转换为字符串时所选用的由SQL Server 系统提供的转换样式编号,不同的样式编号有不同的输出格式。
七、日期函数
1、day(date_expression)
返回date_expression中的日期值
2、month(date_expression)
返回date_expression中的月份值
3、year(date_expression)
返回date_expression中的年份值
4、DATEADD()
DATEADD(
返回指定日期date 加上指定的额外日期间隔number 产生的新日期。
5、DATEDIFF()
DATEDIFF(
返回两个指定日期在datepart 方面的不同之处,即date2 超过date1的差距值,其结果值是一个带有正负号的整数值。
6、DATENAME()
DATENAME(
以字符串的形式返回日期的指定部分此部分。由datepart 来指定。
7、DATEPART()
DATEPART(
以整数值的形式返回日期的指定部分。此部分由datepart 来指定。DATEPART(dd,date)等同于DAY(date)
DATEPART(mm,date)等同于MONTH(date)
DATEPART(yy,date)等同于YEAR(date)
8、GETDATE()
以DATETIME 的缺省格式返回系统当前的日期和时间。
八、统计函数
AVG()-返回的平均价值
count()-返回的行数
first()-返回第一个值
last()-返回最后一个值
max()-返回的最大价值
min()-返回最小的价值
total()-返回的总和
九、数学函数
abs(numeric_expr)求绝对值
ceiling(numeric_expr)取大于等于指定值的最小整数 exp(float_expr)取指数
floor(numeric_expr)小于等于指定值得最大整数 pi()3.1415926.........power(numeric_expr,power)返回power次方
rand([int_expr])随机数产生器
round(numeric_expr,int_expr)安int_expr规定的精度四舍五入 sign(int_expr)根据正数,0,负数,返回+1,0,-1 sqrt(float_expr)平方根
十、系统函数
suser_name()用户登录名
user_name()用户在数据库中的名字 user用户在数据库中的名字 show_role()对当前用户起作用的规则
db_name()数据库名object_name(obj_id)数据库对象名
col_name(obj_id,col_id)列名
col_length(objname,colname)列长度
valid_name(char_expr)是否是有效标识符
第四篇:SQL语言学习工作总结
以下是作者在学习SQL过程中,以工作总结方式写下点滴的感悟,敬请关注!
暑假过的真快总感觉昨天才刚放假,还想着这个暑假怎么过时,暑假就已经去了。
这个暑假一开始我们看了浙大的sql的视频,老师给我们的要求是只要看一遍就行。刚开始看的时候还能听懂一些,看到后面的时候基本就听不懂了,幸好老师对我们的要求不高,于时只好硬着头皮继续。
sql的视频其实总的说来无非讲的是对数据库、表、字段等的创建、修改和删除。我们不懂的也就是怎样使用代码来实现这些操作。我们现在只要对这些有了解就够了,以后还会有锻炼机会的。
之后我们参照着原代码做了《学生信息管理系统》,大概用了七天的时间。刚开始做的时候,觉得这个工程肯定会挺复杂的。但是做着做着感觉也就是那么回事。无非就是对几张表的操作。做这个工程最大的收获就是对刚学的sql知识有了一次熟练的机会,巩固了刚学的知识。也可以说是趁热打铁吧。
然后米老师给了我们更大的考验,让我们做《机房收费系统》,而且这次和上一次的《学生信息管理系统》不同的是,这次我们除了只有一个程序和数据库外,没有一个字的原码。
在得知我们可以把这次的工程做成任何样子时,我打算做一个类似于网吧那样的收费系统。也是一个cs系统。在网上查了一些主机如何与客户端通信的资料后,就开工了。虽然遇到了一些困难,但是到最后都一一解决了这三次的学习困难程度可以说是一次比一次高,米老师也是用心良苦呀。
经过这个暑假,对sql已经有了深一步的了解,还有就是将米老师的学习方法又应用了一次。可谓是受益匪浅。
现在软件工程的学习已经开始,我会继续努力的。
第五篇:黑马程序员c语言教程:SQL函数
日期
Oracle 中的日期型数据实际含有两个值: 日期和时间。默认的日期格式是 DD-MON-RR.函数SYSDATE 返回: 日期 时间
在日期上加上或减去一个数字结果仍为日期。两个日期相减返回日期之间相差的天数。
可以用数字除24来向日期中加上或减去小时。
日期的数学运算
日期函数
转换函数
隐式数据类型转换
显式数据类型转换