简单记录数据库中的基础语法。
(1)基础查询语句
select all/distinct/top N
from 表名
where 条件
group by 列名
having 条件
order by 列名 desc(降序)|asc(升序)
select all/distinct/top N
from 表名
inner/right/full/outer join
on 条件
(2)比较大小
select 手机号码
from app
where LEN (手机号码)=11
(3)多重条件查询
例:查C1和C2成绩大于85分学生
select 学号
from 学生表
where (学号='C1' or 'C2')
and (成绩>85)
(4)确定范围
例:查工资在 范围100-200之间老师姓名
select 教师名
from 教师表
where 工资 betweent 100 and 200
(5)确定集合
in 查询属性值属于指定集合元组,not in 不在元组
例:查询选修课程C1和C2学生姓名
select 学生姓名
from 学生表
where 课程名 in ('C1','C2')
and 课程名 like '%'
(6)部分匹配查询-like查询
属性名 like 字符串常量
例:查询所有姓张老师姓名
select 老师名
from 教师表
where 老师名 like '张%'
(7)空值查询
没有值称为具有空值(NULL)
例:查询没有考试的学生姓名,成绩为空
select 学生姓名
from 学生表
where 成绩 is NULL
(8)子查询
1.返回一个值的子查询
例:查询与"刘伟”老师职称相同的教师号(子查询返回一个值,刘伟老师职称)
select 教师号,姓名
from 教师表
where 职称=(select 职称 from 教师表
where 教师名='刘伟')
2.返回一组值的子查询
any 或 all
例: 查询课程号为C5的教师姓名(子查询返回一组值,多个老师的教师号)
select 教师姓名
from 教师表
where (教师号=any (select 教师号 from 课程表 where 课程号='C5'))
in 代替='any'
select 教师姓名
from 教师表
where (教师号 in (select 教师号 from 课程表 where 课程号='C5'))
all为全部,<> 不等于
exists 子查询不返回任何实际的数据,只得到逻辑值"真" 或"假"
select 教师姓名
from 教师表
where exists (select 教师号 from 课程表 where 课程号='C5')
注意:含有in的查询通常可用exists表示,但反过来不一定
(9)存储查询结果保存到其他表中
select .... into 将查询结果存储到一个新建数据库表或临时表
例:查询app表中列手机号码存储到新表sdk1
select 手机号码 into sdk1
from app
(10)修改数据
①replace (修改的列名,被修改的值,修改后的值)
select *,replace(id,'5','5')
from titles_test
②update
update 表名
set 列名=表达式,列名=表达式
where 条件
例子:
update app活跃 (修改的表)
set 手机号码='13002020810' (修改为该值)
where 手机号码 ='18276999517'
#多表更改查询
use 练习1
update A
set A.values =B .values
from A inner join B on A.ID=B.ID
(11)添加数据
语法:
insert into 表名 (列名1,列名2) values (值1,值2),(值2,值2),(值3,值3);
①例:B中插入全部A的信息,输出A和B全部信息
use 练习1
insert into B select *from A
②例:在S表添加一条选课记录('S7','C1')
insert into s (SNO,CNO)
values ('S7','C1')
(12)删除数据
①delete用法:删除一行或多行数据
例:删除app表,id列为001的信息
delete from app
where id=’001’
#where 子句指定删除的记录满足的条件,省略时默认删除全部
②drop table用法:销毁表
例:删除zhuce表全部信息
Drop table zhuce
Drop table if exist zhuce
③truncate table用法:只清除表数据,保留结构
由于数据库内存不足,需要清除表user的全部数据,保留其结构。
例:清除表user数据,保留其结构
Truncate table user