威尼斯www.9778.com-威尼斯正版官方网站

数据库==数据查询功底

日期:2020-02-07编辑作者:数据库

还好吗?几天不见,甚是思念呀!笑对人生,好好生活,快快乐乐的迎接我们的美好未来吧!

      3.自增列不可以赋值

好吧!抒情结束,我们一起来学习一下我们今天的主题:数据查询基础,很有意思哟.让我们来感受它的魅力吧!

 

 数据查询基础

 

(left:right) select ltrim('                              生活不是林黛玉,      ' select rtrim('         生活不是林黛玉,      ')

一.使用select语句进行查询

语法:

select <列名>

from <表名>

[where <查询条件表达式>]

[order by <排序的列名>[asc或desc]]

其中:[]表示可省

01.查询所有的数据行和列(*)

 

select *from Studendt

02.查询部分行或列

eg:查找留言人是“乐”的部分信息

 

select ID,Emailfrom Studentwhere name='乐'

03.别名

别名方案一:

select msgAuthor as 留言人,msgContent as 留言内容from Message

别名方案二:

 

select msgAuthor 留言人,msgContent 留言内容from Message 

 

别名方案三:

select 留言人=msgAuthor,留言内容=msgContentfrom Message

04.查询空值

在SQL Server中null代表不知道,所以如果where后的限定条件不能用=和null做对比,必须使用is null

eg:查询Email为空的

select *from Studentwhere Email is null --不能写为where Email=null

05.常量列

select *,'汉族'as 民族 from Message

06.查询返回限制的行数(top关键字)

eg:限制只检索前3条数据

use MySchoolselect top 3 * from studentwhere Gender='0'

07.将多列合并成一列显示

select msgAuthor+'____'+msgContent as 留言人 from Message

 

08.通配符

  1. %:任意长度的任意字符,(包含0个)

  2. _:任意的单个字符,只能是一个

  3. []:括号中所指定范围内的一个字符

  4. [^]:不在括号中所指定范围内的任意一个字符

二.查询排序(order by)

asc:升序(不写默认值)

desc:降序

eg1:

 

select * from studentorder by Gender --默认按主键升序排序

eg2:按照多列排序

select * from studentorder by GradeId [asc],Gender [desc]

二.查询中使用函数

01.字符串函数

01.CharIndex('str1','str2',index)

参数含义:
--第一个参数:要查询的字符串
--第二个参数:在哪个字符串中搜索
--第三个参数:从str2的第几个字母开始搜索
--注意点:如果在str2中没有找到str1,那么返回0

 

select charindex('好好学','S1是S2的基础,所以大家好好学',1)--返回14

 

02.len():获取小括号中字符串的长度,空格也算一个字符长度

select len('明天咱们还上课,希望大家回去好好休息') --返回18select len('       大家都          是好孩子         ')  --返回39

 

注意点:如果内容以多个空格结尾,那么结尾的多个空格,是不计算长度的
--例如:

select len('我们都是好孩子                     ')  --返回7

03.upper:把传递给它的字符串转换为大写

SELECT upper('SQL Server课程') --SQL SERVER课程

 

04.LTRIM()清除左侧空格

select ltrim(' 一个人的时候,要好好学习,        ') --一个人的时候,要好好学习,      

05.rigim()清除右侧空格  

 

select rtrim('     生活不是敷衍,    ')  --     生活不是敷衍,

 

既想移除左边空格,也想移除右边空格:

select rtrim(ltrim('     生活不是敷衍,    '))select ltrim(rtrim('  你知道吗!  '))

 

06.substring('字符串',截取的位置,截取的长度)

select substring('我是中国人,我爱自己伟大的祖国,真的',6,1)  --返回,

 

07.right():从字符串右边返回指定类型的字符

     left():从字符串左边返回指定类型的字符

 

select left('大家今天辛苦了,爱你们',3)  --大家今select right('大家今天辛苦了,爱你们',2)  --你们

 

08.replace('str1','要替换的字符','目标字符'):

select replace('我爱你,天尽头,虽然这很遥远,但是心不变','遥远','现实')  --我爱你,天尽头,虽然这很现实,但是心不变

 

09.stuff('字符串',删除的起始位置,删除的长度,'插入的字符串')

 

select stuff('我爱你中国,我爱你故乡',4,2,'北京') --我爱你北京,我爱你故乡

 

02.日期函数

01.getdate():获取当前日期和时间

select getdate()select dateadd(yy,1,getdate())

02.dateadd(按年/月/日添加,增量,时间)

select dateadd(yy,100,'2014-8-6')select dateadd(year,-20,getdate())

03.datediff(按年/月/日求差,小时间,大时间)

select datediff(dd,'1996-12-01',getdate())

04.日期中指定日期部分的字符串形式

select datename(mi,getdate())

05.日期中指定日期部分的整数形式

select datepart(yy,getdate())

06.值 缩 写     

Year              Yy              yyyy              

Quarter         Qq              q                

Month           Mm              m                 

Day of year    Dy              y                 

Day               Dd              d                

Weekday       Dw              w                

Week            Wk              ww                

Hour              Hh              h                 

Minute           Mi              n                 

Second          Ss              s                 

Millisecond     Ms                -           

  

03.数学函数

01.天花板(ceiling)   向上取整

select ceiling(1.99) --返回2

02.地板(floor)  向下取整

select floor(1.99)  --返回1  

03.系统函数

convert:用来转变数据类型

 select convert(varchar(32),111)--返回的是字符串'111'

 

 

拜!回见!dear!!

       --:_:任意的单个字符,只能是一个 --查询考试成绩前五名的分数 

     05.讨论delete和truncate区别?  

    --默认按主键升序排序

     04.别名 --别名方案一

     --05.datepart(mm,日期):获取指定日期对应的年/月/日部分  select datepart(yy,getdate())

    

 

insert into 目标表  select  * from 原表
select * from student order by Gender desc

    --第二个参数:在哪个字符串中搜索

     --06.round:将一个数字四舍五入到指定精度  select round(42.564,1)

select * from [User]

 

         SQL  Server  2005

    02.新增数据注意事项  

      2,对表进行操作的时候,一定要使先用use关键字切换到对应的数据库  

    08.关于top关键字 --限制只检索前几条数据

           --01.SQL语句不区分大小写

    --第三个参数:从str2的第几个字母开始搜索

     --01.rand():产生一个到之间的随机数

 

 

     --13数学函数

 

  12.日期函数

    01.关于*会引起全表扫描问题 use MessageBoard select * from Message

  11.字符串函数

    --学号科目编号和分数(只要前3个人的)

 

           --03.起表名的时候,千万不要起得太好,例如不要使用User作为表名。

 

--高梓贺    select datediff(year,'1998-01-01',getdate())

       --别名方案二

     --replace('str1','要替换的字符','目标字符'):

        注意事项:如果目标中有自增列,那么不能使用*号  

     1.以后大家见到update语句,一定要跟where条件,打死也要跟。

   --查询“李X龙”的信息

    04.几个注意点

       --%:任意长度的任意字符,(包含0个)

       到这就算是完成了用SQL语句操作数据以及数据查询基础的一些函数,那你看完之后,希望在你看知识之外能够给我推荐你的一些学习方法,你的一点建议或许能够为我们每一个人进步很大空间,当方向的门为我们打开时,照亮我们去探索的往往是我们周围的默默无闻的灯光,每个人都能成为我们大家的指路灯,就看你愿不愿分享啦!

     --脚本语言:不需要编译器进行编译,就可以直接解析执行的代码 --编译语言: --从高版本向低版本附加,附加不上。

        --02.where后多个条件通过and连接,order by才用逗号

 

       --Year yy --Month mm --Day  dd --push(推)  pull(拉)

--案例:

 select * from Message where msgAuthor='罗雨萌'

 

     --03.ceiling:天花板,你要看天花板,抬头,向上取整 select ceiling(1.999991)

select power(4,4) select 1*2/3+5-56+100-5/100

       --05.power(5,2)求幂值

--例如:

 

select len('我们都是好孩子                                        ')



SELECT LEN('SQL Server课程') select len('我是这个世界上最大的王,你信吗?')
select substring('我是中国人,我爱自己伟大的祖国,真的',6,1) 

    01.SQL语句书写规范

     --如果产生四位数(-9999)

       --如果是返回 select sign(20)

  那么我就来揭幕”SQL语句操作数据“与”查询基础的一些函数(例如:字符串、日期、数学、以及系统函数等)“。

select len('我们都是好孩子                                        ')



SELECT LEN('SQL Server课程') select len('我是这个世界上最大的王,你信吗?')

    03. 一次性向一张表中插入多条数据的解决方案 方案一

 select * from student where Address like '%北京%' and Gender='1'

--思路灵活

 

       --确切的列名。

   --按照多列排序(先按年级,再按性别)

           --02.字符串和日期类型都需要单引号

    06.常量列 select *,'汉族'as 民族  from Message

           -- 如果表名和关键字重复了,我们可以通过[]取消转义。      

 --01.如果要进行数据表中数据的查询,那么必须先定位到该表所在的数据库 use Myschool 

--切换数据库 select StuId, StuName, StuAge, GradeId from Student 

--我只想要年龄小于岁的学员信息 select * from Student  where StuAge<=22 

--新增数据 insert into GoodPerson values ('微冷的雨',50,'中国某地区','未知','希望大家努力学习,将来薪资K') select * from goodperson

insert into goodperson(stuName,stuAge,stuAddress,stuLike,stuWishes) values('张靓颖',20,default,'大家微笑的脸庞','开心就好')

insert into goodPerson(stuName,stuAge) values('张晓玲',20) delete from goodperson where StuId=31

select * from goodPerson2

-- 一次性向一张表中写入多条数据方案一 insert into goodPerson2 select  StuName, stuAge, stuAddress, stuLike, stuWishes from goodPerson delete from goodperson2

--方案二 select * into goodpersonbak from goodperson

--方案三: select * from grade

insert into grade   select '高一二班'   union   select '高一五班'

--更新高一三班位"无敌S1290" update grade set gradename='无敌S1290' where gradename='高一三班' --将"王龙彪" 改成"李小龙" --将年龄为岁的学员年龄改成 update goodpersonbak set stuname='李小龙',stuage=25 where stuname='微冷的雨' select * from goodpersonbak update goodpersonbak set stuname='微冷的鳄鱼',stuage=10000 where stuid=1007

select * from goodperson insert into goodperson(stuname,stuage,stulike) values('李小龙',20,'吃faN')

select * from goodperson where stuwishes is null

update grade set gradename='S1' select * from goodpersonbak

     --比如说:

            --04.千万注意新建查询窗口中的中文空格。

     方案三

select * from student where StudentName like '李_龙' 

   --查询北京的男同学

select *  into 目标表(不存在)   from 原表

                          select sign(0)

    09.Order by相关     select * from Student

   接下来就是最后最繁琐的函数梳理,希望你们能更细致一点的去看:

select top 5  StudentNo,SubjectId,Studentresult from result order by Studentresult desc
select  * from Message 

   所以,我想送给大家也送给我自己这样一句话:“练习不在多,只在为知识点总结、为你的学业道路能够稍微平坦那么一点。”成功背后的艰辛我不会有多少感受,就算我们心里有那么多”这与那“,但只要能够坚持,往往成功就在坚持的下一秒,但下一秒在哪?我们都无从得知,也许在我们的心中、也许!!!,正因为我们都有太多的也许才让我们心里的渴望、期待等不断增强,祝福话听多了总归不好,只希望我们都能放下心中的那么多”也许“,方向永远只有前方一个,所以迸发吧。

 

select 留言人=msgAuthor,留言内容=msgContent from Message
select right(rand(),4) Select rand()
SELECT CHARINDEX('JBNS','My Jbns Course')  select charindex('微冷的雨','好人啊微冷的雨',4) select charindex('妈妈说','我们要为国家争光,妈妈说,是人就要有理想',11) 
select stuff('我爱你中国,我爱你故乡',4,2,'北京') select stuff('我们都要有理想,为了理想我们熬夜,当然以牺牲身体为代价',6,2,'自信')

 

     2.在SQL Server中null代表不知道,所以如果where后的限定条件不能用=和null做对比,必须使用is null

 

      --内存中 --*号会引起全表扫描,所以在真正的开发中,不推荐使用。最好使用

   看到这些,我们是不是该看一些数据查询基础啦,

     --04.floor:向下取整 select floor(1.999999)

       --stuff('字符串',删除的起始位置,删除的长度,'插入的字符串') 

--注意点:如果内容以多个空格结尾,那么结尾的多个空格,是不计算长度的

select len(rtrim('今年奇怪了,北京没下雪,去去去    '))
SELECT CHARINDEX('JBNS','My Jbns Course')  select charindex('微冷的雨','好人啊微冷的雨',4) select charindex('妈妈说','我们要为国家争光,妈妈说,是人就要有理想',11) 

  

 

           01.delete 后可以跟where条件,而truncate不行      

        --03.=(完全匹配)和like(模糊查询)

      --01.getdate():获取当前日期和时间 select getdate()

    --len():获取小括号中字符串的长度,空格也算一个字符长度

      1,.在SQL Sever中,SQL语句不区分大小写(数据库名,表名,列名,关键字) ,SQL编译器都识别  

           03.delete删除表中所有数据库,id编号不会从1开始,而truncate会。

      1.如果新增全部列,那么表名后可以不跟列名,但是要提供所有列的值,除非当前   列有默认值,那么也要给出default关键字。

    --参数含义:

     --right():从字符串右边返回指定类型的字符

      2.如果只想给一张表中添加部分列,那么在表名后要跟上列名,并且需要保证除了你给出   的列的值之外,其他列都允许为空或者有默认值。

    --第一个参数:要查询的字符串

       --1000ms是s

           02.delete删除数据的时候会记录日志,而truncate不会   

 

    --substring('字符串',截取的位置,截取的长度)

select * from student order by GradeId asc,Gender desc 
 select replace('周杰伦,残疾人,虽然手不残疾,但是X残疾','残疾','好')

        --01.order by

     --07.sign:如果括号中写的是一个正数,返回,如果是负数,返回-1

insert into 目标表(存在)   select '高一二班'   union   select '高一五班' 
select top 20 percent * from student

     --08.sqrt()开平方 select sqrt(9)

    --既想移除左边空格,也想移除右边空格

     方案二

    --LTrim():清除括号中内容左边的空格

 

select rtrim(ltrim('         生活不是林黛玉,      ')) select ltrim(rtrim('   你还好吧!   '))

 

       --02.dateadd(按年/月/日添加,增量,时间)

use MySchool select top 3 * from student where Gender='0'

 

       --03.datediff(按年/月/日求差,小时间,大时间)  

     03常见问题:

    --upper():将括号中出现的英文全部转换成大写

select msgAuthor as 留言人,msgContent as 留言内容 from Message

select msgAuthor  留言人,msgContent  留言内容 from Message

       --通过该方式也可以获取当天是周几 select datepart(dw,getdate())

 

 select charindex('好好学','S1是S2的基础,所以大家好好学',1)

         解析:因为truncate又称为“截断表”。编号从1开始。

     --04.datename:获取某个日期是星期几 select datename(dw,'2014-08-06')

select left('大家今天好像都没有交日记本,我去',3) select right('大家今天好像都没有交日记本,我去',2)

  10.通配符:

     --02.abs:取绝对值 select abs(-10) select abs(10) --非负数

    数据库有多重要,其实不用我说,但该怎么运用好数据库下SQL语句与其它的如“函数”等等,那就需要我们大家多多去练习并总结其中的窍门,或许你的总结没那么好,担只要你的练习足够多,就算那不是窍门,那也将是你在学习中最好的收获。

 

     --按主键 --获取Student表中的前20%的数据 --能大概推断表中总共的数据数

select ceiling(1.000000000000001) select floor(2.999999999999999) 

    --注意点:如果在str2中没有找到str1,那么返回

 

    05.将多列合并成一列显示 select msgAuthor+'____'+msgContent as 留言人说的留言是一种留言留言 from Message

    02.查找留言人是“罗雨萌”的所有留言信息

       SQL Server 2008    

  insert into goodPerson(stuName,stuAge) values('张晓玲',20) 

 

   数据查询基础 是什么呢?看看就知道了!

    07.常见事项说明 --通过Ctrl+R:可以显示和隐藏结果集窗口 --真正的安装顺序,先安装数据库,再装其他软件。 --换一个版本。,换安装包 --换系统 --来找我,我都解决不了,那么就是人品

         该方式只保留了数据和子自增列,但是主键等约束就都没有了

    --函数名称:CharIndex('str1','str2',index)//位置从开始

select dateadd(yy,100,'2014-8-6') select dateadd(year,-20,getdate()) 

本文由威尼斯www.9778.com发布于数据库,转载请注明出处:数据库==数据查询功底

关键词:

Atitit.sqlwhere条件表达式的原理attilax概括

Atitit.sql where条件表达式的原理  attilax概括     1. 数据查询接口sql api标准化1 2. Sql接口的问题2 2.1. 虽然sql是结构...

详细>>

我们分组玩的游戏 还记得吗

use Myschool--------------------上机练习1---------------------查询每个年级的总学时数,并按照升序排列select gradeid as 年级,sum(C...

详细>>

Hive HBase Integration 集成

官方文档:   1、在hive/lib目录下找到hive-hbase-handler-1.2.1.jar,并把该文件拷贝到hbase/lib目录下。 2、把hbase/lib目录下的...

详细>>

oracle存储过程、函数、序列、包

风度翩翩. 积累进程 1. 语法 create or replace procedure procedureName(seqName varchar2)is /*声明变量*/ n number(10); cursor cur is select ...

详细>>