Sql Server 的crud(增删改查)以及一些简单的嵌套查询

来源:互联网 发布:王者荣耀网络问卷调查 编辑:程序博客网 时间:2024/06/01 10:29

列出一些简单的查询语句,做一下笔记!

Ps:使用sql语句最好统一大小写
1:创建和删除数据库

create database dbname  //创建数据库drop database dbname //删除数据库

2:创建表

use dbname //指定要创建表所在的数据库create table tbname(id int not null primary key,name varchar(50)not null)//primary key 主键、not null 不为空 、check(a>=600 and b<=800)check约束、as (a列 + b列 + c列) 可指定一列为计算出来的列、unique 唯一约束、foreign key(外键的名称) references Student(关联的表的列名) 创建外键

3:增加列或删除列

alter table 表名 add 列名 varchar(50) //增加列alter table 表名 drop column 列名 //删除列

4:删除表格数据和整个表

drop table <表名>  //删除整个表delete from <表名> [where条件] //删除表数据(标识列不会恢复:例如你的标识列到了11那么用delete 删除后标识列依旧要重12开始)truncate table <表名> //删除表数据)(标识列从新从1开始)

5:查询数据

标准查询:

select * from 表名 //*可以换成特定查询的列,也可以用as来查询特定计算列,例如: ABS(数值表达式)绝对值 Celling()进一制, AVG()按列计算平均值SUM 按列计算值的总和 MAX求一列中的最大值 MIN求一列中的最小值 COUNT按列值统计个数

更多具体的函数和使用方式:参考来自mars-kobe的Sql Server常用函数之统计、算数、字符串函数

条件查询:

select * from 表名  where 条件select distinct * from 表名//去除重复列select top 10 * form 表名 where 条件 //选取前10条数据select * from 表名 where datediff('minute',f开始时间,getdate())>5//datediff两个日期之间的时间差select name from syscolumns where id=object_id('TableName')//列出列名

排序查询:

select * from 表名  order by id desc //asc降序

子查询:

select * from 表名  where id=(select id from table2 where name=abc)

多表连接查询:

1:内联接查询第一种:直接用where链接查询select a.id,b.id,a.name,b.phone from dbo.a,dbo.b where a.id=b.id第二种:使用inner joinselect a.id,b.id,a.name,b.phone from dbo.a inner join dbo.b on a.id=b.id [where 条件]两种方式使用起来查询结果一致
2:外联接查询第一种:左外链接查询select a.id,b.id,a.name,b.phone from dbo.a left join dbo.b on a.id=b.id [where 条件]第一种:右外链接查询select a.id,b.id,a.name,b.phone from dbo.a right join dbo.b on a.id=b.id [where 条件]第三种:完整外联接查询select a.id,b.id,a.name,b.phone from dbo.a full join dbo.b on a.id=b.id [where 条件]//[where 条件]这个为选加的字段可以不加条件,完整外联接为两表全部查询出来

模糊查询:

select * from table1 where name like ’%云%’

Ps:内联接与外联接区别,内联接查询时会查询出两表匹配的字段,而外联接则可以查询出指定表匹配字段,另一表若不匹配则为空,实际使用中可能会出现更多的表联合查询,原理一致,例:select * from student inner join teacher on student.id=teacher.sid inner join project on student.id=project.sid;


6:增加数据

insert into table1(id,name) values(1,jiajia)

7:修改数据

update table1 set id=5 where 条件范围

8:删除数据

delete from table1 where 条件范围

基础和常用的就差不多就这些!