数据插入、更新、删除
----插入数据
(1) 插入所有字段
insert into 表名 values(值1,值2…)
(2) 插入个别字段(插入的值要和列的类型相对应)
insert into 表名(列1,列2…) values(值1,值2…)
(3) 表对表的插入
insert 表名(列1,列2…)
select 列1,列2…
from 源表名
----更新数据
update 表名 set 列1=值,列2=值..
where 条件
----删除数据
delete from 表名
where 条件
(truncate table 表名,删除整个表的数据,速度更快)
----------------------------------------------------------------------------- 数据查询
(返回的结果是一个临时表)
完整的查询语句:
select 列|表达式
from 表名
where 条件(针对select和from返回的结果进行筛选)
group by 列(针对where子句的输出结果分组)
having 条件(针对分组汇总后的结果进行筛选)
order by 列,…(进行排序)
如:select distinct name
from student
查询结果只返回不重复的值
---------------------------------
order by 用来排序,Asc代表升序,Desc代表降序
如:有个成绩表,我先按学生的ID升序排序,再按Score(分数)降序排序
select *
from tbExam
order by u_ID asc,Score desc
---------------------------------
使用常量:
如:有学生表字段name,sex,age,我要连接在一起显示出来
select ‘姓名:’+name+’ 性别:’+sex+’ 年龄:’+cast(age as varchar)
from tbStudent
注:”+”号左右两边的数据类型必须相等
cast是把age数字型转换成了varchar文本型
注:类型转换 1)convert(类型,内容,格式) 2)cast(内容 as 类型)
---------------------------------
给列命别名:
(1) select 别名=列名 from 表
(2) select 列名 as 别名 from 表
查询,列是没有名字的,我们可以给列命别名
select ‘姓名:’+name+’ 性别:’+sex+’ 年龄:’+cast(age as varchar)
as ‘学生信息’
from tbStudent
---------------------------------
用Top关键字对返回的数据的数量进行控制
如:学生表有10条数据,我要返回5条,可以采用下面两种方法
(1) select top 5 *
from tbStudent
(2) select top 50 percent
from tbStudent
注:percent是百分比的意思,代表我只返回百分之50的数据
---------------------------------
联接:
联接
|
----------------------------------------------------
| | |
内联接 外联接 内联接
|
-------------------------------
| | |
左外部联接 右外部联接 完全外部联接
1. 内联接,只返回左右两表相匹配的记录
select *
from A inner join B
on 条件
2. 外联接
左外部联接,返回左表中所有的记录,但仅返回右表中相匹配的记录
select *
from A left join B
on 条件
右外部联接,返回右表中所有的记录,但仅返回左表中相匹配的记录
select *
from A right join B
on 条件
完全外部联接,返回左右表中所有的记录
select *
from A full join B
on 条件