SQL语法常用函数及高级查询

基本增删改查

1.新增INSERT  基本语法

INSERT INTO [TABLE_NAME](表名) (column1, column2, column3,...columnN) VALUES (value1, value2, value3,...valueN)

INSERT INTO Student(NAME,AGE,HEIGHT) VALUES('布朗尼',18,'180')

———————————————————————————————————————————————————————————————————————————————————————————————————————

2.查询SELECT 基本语法

SELECT * FROM TABLE_NAME   SELECT COLUMN,COLUMN2,COLUMN3 FROM TABLE_NAME

SELECT * FROM STUDENT  *号直接查询当前列表所有行 可以直接查询需要显示的行数    

———————————————————————————————————————————————————————————————————————————————————————————————————————

3.删除DELETE基本语法

DELETE FROM TABLE_NAME WHERE COLUMNX=‘条件’    如果不加条件   会删除列表所有信息,开发谨慎使用

DELETE FROM STUDENT WHERE NAME='乔丹' 

 ——————————————————————————————————————————————————————————————————————————————————————————————————————

3.修改UPDATE基本语法

UPDATE TABLE_NAME SET COLUMNX='',COLUMNX2=‘’ WHERE COLUMNX3=''      where后面加条件语句    UPDATE 后面直接+表名 不能加FROM

UPDATE STUDENT SET AGE=100 WHERE NAME='科比'

——————————————————————————————————————————————————————————————————————————————————————————————————————

部分函数介绍

--substring(字段名,n,m)  分割字符串 某个字段 街区 从 第n位字符 到后面m个字符
select SUBSTRING(NAME,1,3),NAME from Student where ID=1    

——————————————————————————————————————————————————————————————————————————————————————————————————————

--STUFF(str1,n,m,str2)    第一个子串 从第n位删除 m位数 插入 第二个字符串
select STUFF(NAME,2,1,'qqqqq'), Name from Student where ID=1    

——————————————————————————————————————————————————————————————————————————————————————————————————————

--left 函数     left(字段,N个数) 从左边开始N个字符
select left(NAME,4),NAME from Student where ID=1 

——————————————————————————————————————————————————————————————————————————————————————————————————————

--right 函数 right(字段,N个数) 从右边开始N个字符
select right(NAME,4),NAME from Student where ID=1

——————————————————————————————————————————————————————————————————————————————————————————————————————

--REPLICATE 函数 以指定次数重复字符表达式

select REPLICATE(NAME,3),NAME from Student where ID=1

——————————————————————————————————————————————————————————————————————————————————————————————————————

-- ltrim和rtrim函数 删除左边空格和右面空格  TRIM 去中间空格  2017SQl才能使用

select LTRIM(NAME),RTRIM(NAME),TRIM(NAME),NAME from Student where ID=1

 

——————————————————————————————————————————————————————————————————————————————————————————————————

--reverse函数 将字符串反转
select REVERSE(NAME),NAME from Student where ID=1

 

高级查询介绍

子查询

1.作为查询条件使用  where

 子查询作为条件  查询学号在杜兰特前边的同学

  select * from Student where ID < (select ID from Student where NAME='杜兰特')

 ——————————————————————————————————————————————————————————————————————————————————————————————————

2.作为临时表使用  from

select * from
(select * from Student where NAME='乔丹') s1,
(select * from StudentScore where SCORE<100) s2 where s1.ID=s2.STUDENTID 

 ——————————————————————————————————————————————————————————————————————————————————————————————————

3.使用EXISTS和NOT EXISTS子查询

1.EXISTSNOT EXISTS表示存在不存在的意思

2.在语句中会判断EXISTS和NOT EXISTS后接的子句是否存在和是否存在

3.NOT EXISTS的用法与EXISTS一样,唯一的区别就是意义相反。

--查询存在分数>70的学员的信息
SELECT * FROM Student inner join StudentScore on Student.ID=StudentScore.STUDENTID
WHERE EXISTS (SELECT * FROM StudentScore WHERE StudentScore.STUDENTID = Student.ID and StudentScore.SCORE>70)

--查询存在分数<=70的学员的信息

SELECT * FROM Student inner join StudentScore on Student.ID=StudentScore.STUDENTID
WHERE not EXISTS (SELECT * FROM StudentScore WHERE StudentScore.STUDENTID = Student.ID and StudentScore.SCORE>=70)

 —————————————————————————————————————————————————————————————————————————————————————————————————

可能有人没看懂  inner join   内连接

SELECT * FROM Student inner join StudentScore on Student.ID=StudentScore.STUDENTID

两个表中 有关联的id进行连接   学生表 和学生成绩表   主外键关系

———————————————————————————————————————————————————————————————————————————————————————————————————————

 

原文地址:https://www.cnblogs.com/wangyihui/p/12553222.html