总结SQL语句(SQL数据库总结)

http://www.itjxue.com  2023-01-28 10:52  来源:未知  点击次数: 

SQL语句总结----T-SQL程序结构(持续更新)

批是一组SQL语句集合,一个批以结束符GO而终结。批中的语句被一次性提交给SQL SERVER,将这些语句编译成一个执行单元,在执行时全部执行。

批的基本规则:

(1)所有create语句应当单独构成一个批

(2)使用alter table语句修改表结构后,不能在同一个批中使用新定义的列

(3)excute语句为批中第一语句时,可以省略excute

(4)go与sql语句不同行

(1) -- 单行注释

(2) /*...*/ 多行注释

(注:多行注释不能跨越批次处理,整个注释必须包含在一个批处理内)

1. 数学函数

ABS()绝对值 ,SIN ,ASIN ,COS ,ACOS ,EXP

POWER (numeric_expression,y)表达式的y次幂

SQRT()平方根

SQUARE()平方

2. 字符串函数

ASCII 求字符的ASCII值

CHAR 求整数对应的字符

STR float数值转字符串

LEFT(char_expression,count) 左侧截取字串

RIGHT(char_expression,count) 右侧截取字串

SUBSTRing(char,start,length) 取串内子串

LEN 求串长

LTRIM 去前导空格

RTRIM 去尾随空格

REPLACE(c1,c2,c3) 用字符串3替换字符串1中的字串2

3. 时间日期函数

GETDATE 取系统时间,日期

DATEADD 加一段时间

DATEDIFF 求两个时间之间的差

4.转换函数

CAST( 表达式 as 目标数据类型 [(长度)] )

CONVERT(varchar(60)目标数据类型,getdate()表达式,126格式)

1. 块语句

2. 条件语句

3. CASE语句

(1)简单CASE语句

(2)CASE搜索语句

4. 循环语句

5. 等待语句

6. GOTO语句

「干货」SQL之DML语句总结

【十六】DML语句总结

16.1 Insert语句的基本类型

1)单表一次插入一行,有values关键字。

2)单表一次插入多行,使用子查询,没有values关键字。

3)多表插入,又分Insert all和Insert first两种形式。

16,2单表单行插入

name列指定了default值;

表a后没有所选列,values必须指定所有字段的值;

同上,name字段用default占位;

表a后没有所选列,name字段用null占位;

未选定的字段如果指定了default,则以default的值代替null;

这种形式本质同上,只不过表a的形式以结果集代之;

values里的某列使用subquery引用另一个表的数据。

注意几点:

1)不符合约束条件的insert不能成功;

2)default不但可以用于insert语句, 也可以用于update语句;

3)values后面只能跟返回单行单列的子查询。

报错:ORA-00936: 缺失表达式

更正如下:

8)insert WITH CHECK OPTION的用法

报错: ORA-01402: view WITH CHECK OPTION where-clause violation

没有with check option约束,where后面的条件形同虚设。

16.3单表一次插入多行

语法:主句去掉了values选项,使用select子查询;

建立一个空表b,结构来自a表:

插入的是结果集,注意没有values选项;

使用子查询(结果集)插入,对位。

16.4多表插入

16.4.1作用:

一条INSERT语句可以完成向多张表的插入任务(Multitable insert),有两种形式:insert all与insert first。

准备测试环境:

1.创建表T并初始化测试数据,此表作为数据源。

2.创建表T1和T2,作为我们要插入数据的目标表。

16.4.1第一种多表插入方法INSERT ALL

12 rows created.

这里之所以显示插入了12条数据,实际上表示在T1表中插入了6条,T2表插入了6条,一共是12条数据。(不分先后,各插各的)

16.4.2第二种多表插入方法INSERT FIRST

1)清空表T1和T2

2)完成INSERT FIRST插入

处理逻辑是这样的,首先检索T表查找X列值大于等于3的数据插入到T1表,然后将前一个查询中出现的数据排除后再查找T表,找到X列值大于等于2的数据再插入到T2表,注意INSERT FIRST的真正目的是将同样的数据只插入一次。

3)小伙伴们,一起来验证T1和T2表中被插入的数据:

大家结果是怎么样的呢?

the end !!!

@jackman 共筑美好!

6条比较有用的MySQL数据库操作的SQL语句小结

在MySQL数据库操作中,我们常常编写一些SQL语句来实现自己想要的功能。但是对于初学MySQL数据库的人来说这似乎又有一定的难度。本文我们总结了六条比较有用的SQL语句,初学者可以套用下面的格式,接下来就让我们一起来了解一下这部分内容。

1.计算年数

如果您想通过生日来计算这个人的年龄,可以用以下的语句来实现:

SELECT

DATE_FORMAT(FROM_DAYS(TO_DAYS(now())

-

TO_DAYS(@dateofbirth)),

'%Y')

+

0;

2.两个时间的差

取得两个

datetime

值的差。假设

dt1

dt2

datetime

类型,其格式为

‘yyyy-mm-dd

hh:mm:ss',那么它们之间所差的秒数为:UNIX_TIMESTAMP(

dt2

)

-

UNIX_TIMESTAMP(

dt1

)

除以60就是所差的分钟数,除以3600就是所差的小时数,再除以24就是所差的天数。

3.显示某一列出现过N次的值

SELECT

id

FROM

tbl

GROUP

BY

id

HAVING

COUNT(*)

=

N;

4.计算两个日子间的工作日

所谓工作日就是除出周六周日和节假日。

SELECT

COUNT(*)

FROM

calendar

WHERE

d

BETWEEN

Start

AND

Stop

AND

DAYOFWEEK(d)

NOT

IN(1,7)

AND

holiday=0;

5.查找表中的主键

SELECT

k.column_name

FROM

information_schema.table_constraints

t

JOIN

information_schema.key_column_usage

k

USING

(constraint_name,table_schema,table_name)

WHERE

t.constraint_type='PRIMARY

KEY'

AND

t.table_schema='db'

AND

t.table_name=tbl'

6.查看你的数库有多大

SELECT

table_schema

AS

'Db

Name',

Round(

Sum(

data_length

+

index_length

)

/

1024

/

1024,

3

)

AS

'Db

Size

(MB)',

Round(

Sum(

data_free

)

/

1024

/

1024,

3

)

AS

'Free

Space

(MB)'

FROM

information_schema.tables

GROUP

BY

table_schema

;

关于MySQL数据库的比较有用的SQL语句的介绍就到这里了.

(责任编辑:IT教学网)

更多

推荐mac苹果系统文章