SELECT COUNT(*) from USER_TAB_COLUMNS WHERE TABLE_NAME=UPPER('pow_role')
统计pow_role表的列数
其中 USER_TAB_COLUMNS 是系统自带的表。
pow_role是要统计的表名。
如果要统计其他的表的列数只需要把表名换一下就可以了,如
SELECT COUNT(*) from USER_TAB_COLUMNS WHERE TABLE_NAME=UPPER('POW_ROLE_GROUP') 统计POW_ROLE_GROUP表的列数 ......
A left join B 的连接的记录数与A表的记录数同
A right join B 的连接的记录数与B表的记录数同
A left join B 等价B right join A
table A:Field_K, Field_A1 a3 b4 ctable B:Field_K, Field_B1 x2 y4 zselect a.Field_K, a.Field_A, b.Field_K, b.Field_B from a left join b on a.Field_K=b.Field_KField_K Field_A Field_K Field_B ---------- ---------- ---------- ---------- 1 a 1 x 3 b NULL NULL4 c 4 z 也就是说left join 则连接左边表中所有记录都会出现,如果根据连接条件在table2中找不到相关记录,则显示为null。right join 则显示右边表中的全部记录。inner join 则只有符合条件的记录才会出现在结果集中。
EG2∶有两表 ......
对于SQL我也学习了,但是真正用到的时候才知道很多东西还不太理解,在网上看了一下,这篇文章中讲的很好,所以拿来和大家分享一下:
SQL JOIN 的用法
关于sql语句中的连接(join)关键字,是较为常用而又不太容易理解的关键字,下面这个例子给出了一个简单的解释 --建表table1,table2:
create table table1(id int,name varchar(10))
create table table2(id int,score int)
insert into table1 select 1,''lee''
insert into table1 select 2,''zhang''
insert into table1 select 4,''wang''
insert into table2 select 1,90
insert into table2 select 2,100
insert into table2 select 3,70
如表
-------------------------------------------------
table1 | table2 |
-------------------------------------------------
id name |id score |
1 lee |1 90 |
2 zhang |2 100 |
4 wang |3 70 |
-------------------------------------------------
以下均在查询分析器中执行
一、外连接
1.概念:包括左向外联接、右向外联接或完整外部联接
2.左连接:left join 或 left outer join
(1)左向外联接的结果集包括 LEFT OUTE ......
一、字符转换函数
1、ASCII()
返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。
2、CHAR()
将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL 。
3、LOWER()和UPPER()
LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。
4、STR()
把数值型数据转换为字符型数据。
STR (<float_expression>[,len[, <decimal>]])
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>)
返回character_expression 左起 integer_expres ......
在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库。而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员每天守到晚上1点去备份数据库。要实现数据库的定时自动备份,最常用的方式就是使用SQL Server代理中的作业。启动SQL Server Agent服务,然后在其中新建作业,作业中添加1个备份步骤,类型是T-SQL脚本,然后在命令中输入如下SQL语句,该语句实现了对数据库TestDB1的完整备份,备份文件在C盘Backup文件夹中,文件名就是TestDB1+当时备份的日期字符串.bak。
declare @name varchar(250)
set @name='C:\Backup\TestDB1_'+
convert(varchar(50),getdate(),112)+'.bak'
BACKUP DATABASE [TestDB1] TO
DISK = @name
WITH NOFORMAT, NOINIT,
NAME = N'TestDB1-完整 数据库 备份',
SKIP, NOREWIND, NOUNLOAD
创建好步骤以后,接下来就是创建计划,创建计划的操作十分简单,界面上说明的很详细了,我就不多说了。另外还可以配置警报和通知,不过一般很少用这个。
使用SQL作业中执行SQL脚本进行备份的方法虽然已经很简单了,但是至少还是要去写BACKUP脚本, ......
http://topic.csdn.net/u/20091016/09/fea7e9d3-53c4-4b00-9abe-dbf8dd55b05b.html?seed=1546300155&r=60454236#r_60454236
原问题:
数据如下, 我想取出TABLE中的数据, 按照下面的条件.
如果F2相同的情况下, 取F3数据较小的那条, 如果F3还相同, 就取F4较小的那个, 依次...
请教简单点效率高点的SQL, 因为数据较多, 不想那么复杂
Data:
F1 F2 F3 F4 F5
A A1 2 4 6
A A1 1 8 9
B B1 4 6 2
B B1 4 9 7
C C2 1 4 5
C C2 ......