SQL学习知识点总结

时间:2024.4.20

//创建表

create table user(

id int(11) not null auto_increment,

name varchar(50) default null,

password varchar(50) default null,

primary key(id)

)

//distinct 关键字是查询数据库中不相等的数据如果有相同的数据则显示一条数据

SELECT distinct name FROM user

//and(并且) or(或)查询where语句的条件

SELECT * FROM user where City="上海" and name="admian3"

SELECT * FROM user where City="上海" or name="admian3"

//如果and 和or 结合来用的时候则要用到()处理

SELECT * FROM user where (City="上海" or name = "admian3") and name="xxx"

//order by(关键字排序)(按照名字的顺序来做升序排序)

select * from user order by name

//order by 后面可以接多个排序列表中间用,隔开

select * from user order by name,City,....

//desc (降序的关键字)

select * from user order by name desc

//asc (升序的关键字 order by 后面不跟有降序的关键字那么就是默认为升序)

select * from user order by name desc,City asc

//添加数据

insert into user(name,password,Address,City,OrderNumber)values("ddsds","ssss","广东","广州",1234656)

//更新数据

upate user set name="ffff" where id =6

//删除数据

delete from user where id = 6

//limit (关键字是查询数据库中多少条数据 再mysql里面用 如果是sql server用则用top ) select * form user limit 2

//in (关键字允许我们在where语句中存在多个条件)

select * from user where name in("xxxxs","zdasdsa")

//between ....and..(关键字是处理在什么之间到什么之间的操作)

select * from user where name between "fffff" and "ssss"

//as(关键字是用于给表或数据库起一个别名)

select * name as n,password as p from user

//inner join (关键字使用了内连接来查询两个表的数据,其中还有 left join(左连接) right

join(右连接) full join(左右连接))

select u.name,u.Address,n.number from user as u “inner join” number as n on u.id = n.user_id order by u.Address

//union(命令将两条sql语句拼接起来)

select * from user

union

select * from number

//select into(关键字是为了把一个表的数据插入到另一个表当中)

select * into user from number

//create database(创建数据库)

create database my_db

//create table(创建表)

create table Persons

(

id int(10),

lastName varchar(25)

........

)

//约束

not null (不为null值)

unique (唯一)

primary key(主键)

foreign key(外键)

check(查询约束)

default(默认值约束)

//create index (创建索引)

create index ff on user (name,Address)


第二篇:SQL学习总结


SQL学习总结

一些常用的知识

1. NULL

1. ISNULL函数做一个空值的判断,语法表达式为ISNULL(EXPRESSION1,0),意思是如果是0则返回NULL,如果不是零,则返回EXPRESSION1的表达式

ISNULL函数,经常跟CASE WHEN…THEN..ELSE..END 表达式联合在一起做一个复杂的ISNULL判断,他的意图是先统一表中的NULL值和对查询结果不产生影响的值。

2.NULLIF函数,语法表达式为NULLIF(EXPRESSION1,EXPRESSION2),意思是如果两个表达式相等则返回NULL,如果两个表达式不相等则返回EXPRESSION1.

2.数据类型的转换

1. 一般情况来说SQL里面从低级的数据类型转换成高级的数据类型是默认的,但从高级转换为低级的数据类型则需要做定义。

数据类型排序(从高到低)

DATETIME—FLOAT—INT—VARCHAR—CHAR

当自己不能判断哪个数据类型比较高时,可以先不做转换,如果SQL可以运行,则说明是向高级转换,如果不能运行,则必须做一个转换

2.CONVERT函数

表达式;CONVERT(数据类型(长度),EXPRESSION1,样式)

例子;CONVERT(VARCHAR(8),GETDATE(),112)

3.CAST函数

表达式;CAST(EXPRESSION1 AS 数据类型(长度))

例子;CAST(GETDATE() AS VARCHAR(8))

3.当查询的结果存在小数点时,我们为了查询的结果美观,好比较,可以根据需要定义保留的小数点位数

1.CONVERT函数

表达式;CONVERT(数据类型(长度),EXPRESSION1)

例子;CONVERT(NUMERIC(18,2),EXPRESSION1)

解释;将EXPRESSION1保留两位小数

2. CAST函数

表示式;CAST(EXPRESSION AS 数据类型(长度))

例子;CAST(EXPRESSION AS NUMERIC(18,2))

4.排序函数

当我们想对查询的结果取一个极值时,通常容易用到排序函数;ROW_NUMBER

表达式;ROW_NUMBER () OVER(PARTITION BY COLUMN_NAME1 ORDER BY

COLUMN_NAME2 ASC/DESC) AS 新列名

解释;PARTITION BY 这个函数是为了区别要排序的的结果,而ORDER BY 函数是鬼结

果进行排序。

例子;ROW_NUMBER () OVER(PARTITION BY 基金代码 ORDER BY 基金净值

DESC) AS 最大基金净值

取出每个基金最大的基金净值

5.用函数计算和定义时间间隔

1.DATEADD函数

我们可以通过DATEADD函数来定义时间间隔。

例如;近一周 DATEADD(DD,-7,GETDATE())

近一个月 DATEADD(MM,-1,GETDATE())

近半年 DATEADD(MM,-6,GETDATE())

近一年 DATEADD(YY,-1,GETDATE())

2. DATEDIFF函数

我们可以通过DATEDIFF函数来计算时间间隔

表达式;DATEDIFF(DD/mm/yy,EXPRESSION1,EXPRESSION2)

例如;现在和TDATE的时间间隔

DATEDIFF(DD/MM/YY,TDATE,GETDATE())

3. DATEADD和DATEDIFF的交叉使用

例如;这是计算一个月第一天的SQL 脚本:

SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)

本周的星期一

SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)

一年的第一天

SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)

季度的第一天

SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)

4. 备注;在使用这两个函数的时候我们必须注意间隔不能用小数来定义,这两个函数

无法识别小数

5. 题目要求查询的结果随自然日的变化而变化也要用到这两个函数。

例子;取上月中证500指数权重数据,列名;指数代码,指数名称,日期,权

重股代码,权重股市场代码,权重(issweight表),并按照日期,权重股

代码排序。

--注日期要能随自然日变化而变化

SELECT指数代码=ISYMBOL,指数名称=INAME,日期=TDATE,权重股代码=SYMBOL, 权重股市场代码=EXCHANGE,权重=WEIGHING

FROM ISSWEIGHT

WHERE INAME='中证500指数'

AND

LEFT(CONVERT(VARCHAR(8),TDATE,112),6)=LEFT(CONVERT(VARCHAR(8),DATEADD(MM,-1,GETDATE()),112),6)

ORDER BY 日期

6.对查询的结果进行行业分类

--中信标普

SELECT * FROM CINDUSTRY WHERE STYLE='504'

--申万1级

SELECT * FROM CINDUSTRY WHERE Style='464'

--申万2级

SELECT * FROM CINDUSTRY WHERE Style='489' AND RIGHT(STYLECODE,2)='00'AND RIGHT(STYLECODE,3)<>'000'

--取证监会一级

SELECT * FROM CINDUSTRY WHERE Style='009' AND DATALENGTH(STYLECODE)=2 --取证监会二级

SELECT * FROM CINDUSTRY WHERE Style='009'

AND DATALENGTH(STYLECODE)=CASE WHEN

STYLECODE<>'ZC99' THEN 3 ELSE 4 END STYLECODE LIKE '%C%' AND

注释:LEN(STYLECODE)=2 表示取对应代码长度为2的

LEN(STYLECODE)=CASE WHEN STYLECODE LIKE '%C%' AND STYLECODE<>'ZC99'

THEN 3 ELSE 4 END 表示制造业的时候是取长度为3的对应代码,其他的长度为4的时候都是属于证监会二级分

更多相关推荐:
挂职学习总结发言稿

尊敬的各位领导、各位同仁,大家上午好!20xx年对我来说是难忘的一年,我有幸参加了安泽县中小学校长赴德清挂职学习,实现了多年来就有的江南之旅的梦想,在此我要感谢各级领导给我们创造了这样一个开阔视野,完善自我的机…

自动控制原理学习总结

班级:09自动化2班姓名:朱猛学号:0905071015自动控制原理是自动控制理论的基础,其主要内容包括:自动控制系统的基本组成和结构、自动控制系统的性能指标,自动控制系统的类型(连续、离散、线性、非线性等)及…

教学秘书学习总结

本次培训时间虽然是短暂的,但是使我对教学秘书的职责和定位有了更加深刻、更加全面的认识。从事教学秘书岗位的这几年,没有一个完整的概念,总以为只要做好服务即可。本次学习可以说是一次视野的开阔。教学管理是高等学校教学…

党课学习总结范文

本学期很荣幸能够参加学校的党课学习,也很珍惜这次难得的学习机会。在学习期间,我始终坚持认真听课,课堂上认真作笔记,课后积极参与讨论,在理论和实质上对党的认识有了很大的提高。从党的性质到党的指导思想,从党的根本宗…

商务礼仪学习总结

在竞争日趋激烈的就业形势下,社会产生实践对毕业生职业能力与素质的要求也越来越高,加强商务礼仪基本知识成了我们必修的课程,面对即将走入社会的我,为了提高自己的交际能力,所以这一期我选修了商务礼仪通过这一学期的学习…

商务礼仪学习总结

通过听金正昆老师对商务礼仪的主题讲解,主要体会有以下几点:1、通过这次培训让我深切的体会到学习的重要性,人最大的悲哀是无知,通过学习后知道很多我们在现实生活中习以为常的言行举止、穿着打扮那都是错误的,甚至是闹笑…

学习总结《双赢谈判》20xx年11月10日

学习《双赢谈判》总结通过《双赢谈判》课程的学习,了解了一些谈判的技巧,知道了商务谈判的基本思路和策略,要想真正掌握谈判的技巧,把握谈判的主动权,解决谈判的矛盾点,做到双赢,就必须理论和实践相结合,在实践中学,在…

个人学习总结报告

个人培训学习总报告20xx年X月XX日至X月XX日我有幸参加XXXXXXXX干部培训班20xx20xx年第二期总第六期的培训在XXXXX学院的精心安排下整个培训课程设计科学系统内容丰富形式多样安排紧凑最荣幸的是...

20xx小继教教师个人学习总结

20xx小继教教师个人学习总结本寨小学杨明文通过一年来的学习本人的继续教育取得了较好的成绩现将本年度个人继续教育总结如下通过本学期继续教育培训的学习使我在教育思想教育理论及业务能力等方面受益颇多我深切地认识到为...

20xx中心组个人学习总结

中心组个人学习心得体会一年来本人认真学完了所有规定的篇目通过学习加深了对理论知识的理解和认识自身理论水平和业务素质也得到了提高同时也使自己对新的形势下我们面临的新任务有了更加深刻的认识现就一年来的学习体会总结如...

个人学习及工作总结

一年来我刻苦钻研业务知识努力提高理论知识和业务工作水平遵纪守法努力工作认真完成领导交办的各项工作任务在领导和同志们的关心支持和帮助下我学习和工作等方面取得了新的进步现总结一严于律已自觉加强党性锻炼党性修养和政治...

电力电子学习总结

研1105兖文宇s20xx0326电力电子学习总结在这半年的时间我们在韩老师的带领下将电力电子这门课系统的学习了一下,也可以说是总结。因为很多知识并不是新的,在本科的时候都已经涉及到。通过这半年的学习,不敢说有…

学习总结(2259篇)