2014.9.9数据库高级查询

1 select * from Nation
2 select * from Info

1 --连接(列的扩展)
2 --把两个表连起来显示(第一种方法)
3 select Info.Code,Info.Name,Info.Sex,Nation.Name as nation,Info.Birthday
4 from Info,Nation
5 where Nation.Code=Info.Nation --笛卡尔积  --把列名换成汉字 [as]空格+列名

执行结果:

1 --把两个表连接起来(第二种方法)
2 select * from Info join Nation on Info.Nation=Nation.Code where Nation.Name=‘汉族‘--后面可以加where条件
1 select * from Info left join Nation on Info.Nation=Nation.Code--以左边为主,NULL值也会显示出来,左连接
2 select * from Info right join Nation on Info.Nation=Nation.Code--以右边为主,NULL值也会显示出来,右连接
3 select * from Info full join Nation on Info.Nation=Nation.Code--外连接(左,右,全连接)

 1 --联合(行的扩展)
 2 select Name from Info
 3 union
 4 select Name from Family
 5 --子查询(嵌套查询)
 6  select Name from Info where Code in (select infocode from Work group by InfoCode having COUNT(*)=3)
 7
 8  --取前10条信息
 9  select top 10 * from Car
10  --分页查询,查询第二页
11  select top 5 * from Car where Code not in
12  (
13     select top 5 Code from Car
14  )
1 --取总页数
2 select CEILING(COUNT(*)/5.0) from car
1 --ceiling返回进1的值,floor返回退1的值,round四舍五入
2 print ceiling(6.14)  --结果为7
3 print floor(5.73)   --结果为5
4 print round(345.863,1)  --结果为345.900  保留一位小数
5 print round(345.863,-2)  --结果为300.00  小数点往左去两位
6 print round(345.863,0)   --结果为346,000  保留0位小数
1 print sqrt(4)--返回表达式的平方根
2
3 print rand()--0-1之间的随机

ABS()  绝对值

LOWER()  把字符串全部转换为小写

UPPER()  把字符串全部转换为大写

STR()  把数值型数据转换为字符型数据

select ‘平均分是:‘+STR(AVG(degree)) from score

LTRIM()  把字符串头部的空格去掉

RTRIM()  把字符串尾部的空格去掉

LEFT()  返回部分字符串

RIGHT()  返回部分字符串

SUBSTRING()  返回部分字符串  (哪个位置,长度)

REVERSE()  将指定的字符串的字符排列顺序颠倒

REPLACE()  返回被替换了指定子串的字符串

select replace(‘abc123g‘,‘123‘,‘def‘)  --返回结果为abcdefg

数据类型转换函数:

select cast(12345 as char) --12345
select convert(int,3.14) --返回结果为3
select convert(bit,12.345) --返回结果为1,bit逻辑类型

DAY() 返回date_expression 中的日期值 DAY(<date_expression>)

MONTH()返回date_expression 中的月份值 MONTH(<date_expression>)

YEAR()返回date_expression 中的年份值 YEAR(<date_expression>)

DATEADD 函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期

DATEADD(<datepart>,<number>,<date>)

DATEDIFF()  返回date2 超过date1的差距值,其结果值是一个带有正负号的整数值 DATEDIFF(<datepart>,<date1>,<date2>)

DATEPART()   以整数值的形式返回日期的指定部分 DATEPART(<datepart>,<date>)

DATEPART(dd,date)等同于DAY(date)

DATEPART(mm,date)等同于MONTH(date)

DATEPART(yy,date)等同于YEAR(date)

getdate()  获取当前日期

ISDATE ()判断所给定的表达式是否为合理日期,如果是则返回1,不是则返回0. ISDATE(<expression>)

时间: 2024-08-27 12:12:28

2014.9.9数据库高级查询的相关文章

15-07-17 数据库--高级查询

高级查询 --连接查询 select * from 表1,表2 -- 形成笛卡尔积 select * from 表1,表2 where 表1.主键=表2.外键 --主外键位置可以互换 --join on 内连接 select * from 表1 join 外键 on 表1.主键 = 表2.外键 --查哪位学生的哪一门课考了多少分 select student.sname,course.cname,score.degree from student join score on score.sno=

MySQL数据库 高级查询(二)

高级查询(二)  EXISTS 子查询 语法: SELECT ..... FROM  表名 WHERE EXISTS (子查询); EXISTS 关键字后面的参数是一个任意的子查询,如果该子查询有返回值,则EXISTS 子查询的结果为true,此时再执行外层查询语句.如果没有返回行,则EXISTS 子查询 的结果为false,此时外层语句不再执行查询.  NOT EXISTS 子查询 EXISTS 子查询和NOT EXISTS 子查询的结果只取决于是否有返回记录,不取决于这些记录的内容,所以EX

MySQL数据库 高级查询(一)

常用函数 常用聚合函数: AVG() 返回某字段的平均值 COUNT() 返回某字段的行数 MAX() 返回某字段的最大值 MIN( ) 返回某字段的最小值 SUM( ) 返回某字段的和 函数名 作用 常用的字符串函数 函数名 作用 举例 CONCAT(str1,str2,...,strn) 连接字符串str1,str2,...,strn为一个完整字符串 SELECT CONCAT('My','S','QL'); 返回:MySQL INSERT(str,pos,len,newstr) 将字符串s

数据库-高级查询

快捷查询 快捷查询方式是一种多字段相同查询条件的简化写法,可以进一步简化查询条件的写法,在多个字段之间用|分割表示OR查询,用&分割表示AND查询,可以实现下面的查询,例如: Db::table('think_user') ->where('name|title','like','thinkphp%') ->where('create_time&update_time','>',0) ->find(); 生成的查询SQL是: SELECT * FROM `think

MySQL 数据库 高级查询

1.连接查询select * from Info,Nation #笛卡尔积select * from Info,Nation where Info.Nation=Nation.Code join on 连接select * from Info join Nation #join连接select * from Info join Nation on Info.Nation=Nation.Code 2.联合查询select Code,Name from Infounionselect Code,Na

数据库高级查询的使用 201409005

一.连接查询 将多个表格列出来,不是SQL国际标准方法,但适用于每个表,是表格中列的扩展,表格横着铺开. 1.连接查询的方法: 1)形成笛卡尔积 select * from Info select * from nation 笛卡尔积: select info.code,info.name,info.sex,nation.name as nation,info.birthday from INFO,nation --显示info表中的code,name,sex列,并且将nation表中的name

Java数据库 高级查询

插入数据记录 1.插入单行数据 语法: INSERT INTO 表名 [(字段名列表)]  VALUES (值列表); 2.插入多行数据 语法:INSERT INTO 新表 (字段名列表) VALUES (值列表1), (值列表2), ......, (值列表n); 注意:在是INSERT语句插入记录时,如果不包含字段名称,VALUES后值列表中各字段的顺序必须和表定义中各字段的顺序相同,如果表结构变了(如执行了添加数据操作) 则值列表也要变化,否则会出现错误.如果指定了插入的字段名,就会避免这

数据库高级查询

1.连接查询,对结果集列的扩展select * from info ①select * from info,nation #形成笛卡尔积(学名) 简单查询②select * from info,nation where info.nation=nation.code info.nation=nation.code: 属于等于也属于 .:后面的数据属于前面的数据. =:起到连接的作用. ③select info.code,info.name,sex,nation.name,birthday fro

数据库——基础(数据库操作,表格操作)——增加高级查询

笔记 LAMP:Linx(操作系统) A(阿帕奇)——网页的应用程序 M(Mysql):体积小,应用简单 P(PHP) 第一步:搭建网页环境——A\M\P WAMP:用WAMP搭建环境 DW:更好的显示 数据库的基本操作: 数据库——表结构——字段(列) 每一行数据成为一条数据(记录) 特点:关系型数据库,有严格的规范 1.必须有主键:能够唯一标识一条数据的字段 2 T-SQL:通用的数据库操作语句 自增长列code(主键列) ;连接键表 最后一个字段不加 ,#注释 创建表:create tab