基本增删改查
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.EXISTS和NOT 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进行连接 学生表 和学生成绩表 主外键关系
———————————————————————————————————————————————————————————————————————————————————————————————————————