增
Insert 插入数据行
Insert [into] <表名> [列名] values <值列表>
Eg: insert into student (name,address,grade,email)
Values(‘张三’,‘上海’,6,‘ZQC@sohu’)
Insert 语句不能为标识列指定值,自增长的,不能插入
一次插入多行数据的三种方法:
1. 预先创建好表
Insert into新表 (列名) select列名from原始表
Eg: insert into Tongxuelu (姓名,地址,电子邮件)
Select name,address,email from student
2. 运行过程中直接生成新表
Select 表名.列名 into 新表 from 原始表
Eg:select name, address, email into tongxuelu from student
插入标题列的语法:
Select 表名.列名 identity数据类型,标识种子,标识增长量) AS 列名 into 新表 from 原始表
Eg:select name, address, email, identity (int,1,1) as studentID into tongxuelu from student
3. Union语句用于将两个不同的数据或查询结果组合成一个新的结果集。
Select ‘张可’,7,1 union
Select ‘李杨’,4,0 union
Select ‘杨晓’,2,0 union
Select ‘汤美’,3,0 union
Select ‘陈刚’,4,1 union
这样的结果与insert。。。select 的结果是一样的。
删
1.delete
delete 表名> [where<删除条件>]
eg:delete from student where name=‘张三’
注:delete 与 from 连用,中间不能插入内容。
2.Truncate table
Truncate table <表名>
Eg:truncate table student
注:此语法用于删除表中的所有行,且不能用于有外键约束应用的表,否则需要使用delete 语句。
改
Update
Update表名> set <列名=更新值> [where<更新条件>](多个更新条件用and/or 连接)
and /or
*查*
select列名> from表名> [where<查询条件表达式>] [order by排序的列名>[asc或desc]]
1.查询所有的数据行和列
Select * from student(表名)
2.查询部分行列——条件查询
Eg: select code,name,address from student where address=‘河南新乡’
3.在查询中使用列名
AS子句可以用来改变结果集列的名称,也可以为组合或者计算出的列指定名称,还有一种情况是让标题列的信息更易懂。
Eg: select code as 学员编号,name as学员姓名,address as 学员地址 from student where address = ‘河南新乡’
4.查询空行
采用“is null”或者“is not null”
Eg: select name from student where email is null/is not null
5.在查询中使用常量列
Eg: select 姓名=name,地址=address,‘河北新龙’ as 学校名称 from student
查询输出多了一列“学校名称”,该列的所有数据都是“河北新龙”。
6.查询返回限制的行数
Eg: select top 5/20 percent name,address/* from student where sex=1
7.查询排序
Eg: Select studentID as 学员编号,(score*0.9+5) as 综合成绩 from score where (score*0.9+5)>60 order by score asc/desc
8.在查询中使用函数
函数分为:
a. 字符串函数: charindex、len、ltrim、rtrim、replace、stuff
b. 日期函数: getdate dateadd datediff datename datepart
c. 数学函数: ceiling floor round
d. 系统函数: convert
9.模糊查询
a. like
eg: select * from card where id like ‘00[^8]%[a,c]’
[^] 不在括号中所指定范围内的任意一个字符
[ ] 括号中所指定范围内的一个字符
b. between…and
eg:select * from score where score between 60 and 80
包括60 和80
c. in/not in 在列举的条件内进行查询
eg:select name as 学员姓名 from student where address in/not in (‘北京’, ‘上海’, ‘广州’)
10.聚合函数
a.sum(和)
eg:select sum (sales) as 销售业绩 from titles where type = ‘business’
b.avg(平均数)
平均成绩 from score where score >=60
c.max(最大值),min(最小值)
eg:select avg(score) as 平均成绩,max(score) as 最高分,min(score)as 最低分 from score where score >=60
d.count非空值的计数,最后得到的是一个数值
select count(列名/*) from 表名 where 查询条件
eg:select count (*) as 及格人数 from score where score>=60