SQLServer数据库查询语法
前言:
SQLServer数据库介绍:
SQLServer数据库是微软公司推出的一款关系型数据库系统,SQL Server是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。
重要的SQL命令
备注:
数据库不区分大小写 所以这里用了全小写
- select --从数据库中提取数据
- update --更新数据库中的数据
- delete --删除数据库中的数据
- insert into --向数据库中插入数据
- create database --创建数据库
- alert database --修改数据库
- crete table --创建数据表
- alert table --修改数据表
- drop table --删除数据表
- create index --创建索引
- drop index --修改索引
创建数据表
语法
craete table [创建表名称](
[列名] [数据类型] [约束],
[列名] [数据类型] [约束]
)
创建学生表(student)
create table student(
id int identity(1,1) primary key, --设置id为主键,并为标识列自增1
sex bit not null, --学员性别 0:女 1:男
name varchar(50) not null, --学员姓名
age int not null, --学员年龄
classId int references Class(id) --ClassId为外键指向Class表
)
创建班级表(class)
create table class(
id int identity(1,1) primary key,
name varchar(50) --班级名称
)
向表中插入数据
由于学生表(student)引用了班级表(class)表所以我们先插入班级表中的数据
向表中插入数据的语法为
insert into [表名]([列名1],[列名2],[列名3]) values([数据1],[数据2],[数据3]) --插入数据项应与列明一一对应
向班级表(class)插入数据
insert into class(name) values('大一') --由于id为标识列有自增属性这里不用插入自增列的信息
--象征性的多插入几条
insert into class(name) values('大二')
insert into class(name) values('大三')
insert into class(name) values('大四')
向学生表(student)中插入数据
insert into student (name, sex,age,classId) values('小明',1,18,1)
insert into student (name, sex,age,classId) values('小红',0,18,1)
insert into student (name, sex,age,classId) values('小蓝',1,17,1)
insert into student (name, sex,age,classId) values('小绿',1,19,2)
insert into student (name, sex,age,classId) values('小紫',0,18,1)
insert into student (name, sex,age,classId) values('小张',1,20,2)
insert into student (name, sex,age,classId) values('小李',1,18,1)
insert into student (name, sex,age,classId) values('小王',0,21,3)
insert into student (name, sex,age,classId) values('小钱',1,18,1)
insert into student (name, sex,age,classId) values('小赵',0,19,2)
insert into student (name, sex,age,classId) values('小周',1,18,1)
insert into student (name, sex,age,classId) values('小丽',0,20,2)
insert into student (name, sex,age,classId) values('小聪',1,18,1)
insert into student (name, sex,age,classId) values('小慧',0,19,3)
insert into student (name, sex,age,classId) values('小星',1,21,1)
insert into student (name, sex,age,classId) values('小思',1,20,4)
查询表中数据
-
select 查询
select [查询列名称],[查询列名称] from [表名] select * from student --查询student表中所有列信息
-
where 条件查询
select name,age from student where age>19 --查询年龄大于19学生的姓名和年龄
-
order by 排序
select * from student where age>19 order by age asc --按年龄升序 select * from student where age>19 order by age desc --按年龄降序
-
group by 分组,查询全部学生男女生各多少人
select case when sex=1 then '男' when sex=0 then '女' end as 性别 --这里使用了case when than的语法,相当于编程语言中if else 判断条件 ,COUNT(name) as 总数 --count()函数返回总计数 from student group by sex
注意:
在group by 后不能使用where条件语句,group by 语句后可以使用having 进行条件约束 ,
后面也可以可以使用 order by进行排序
修改表数据
修改数据表中的数据使用Update
语法
update [表名] set [列名]=[修改的值] where [列名] = [条件]
下面修改id=16 同学的姓名:
update student set name='小林' where id=16
select * from student where id=16
修改之后的数据为 小思的名字就改成了小林
注意:
如果不给定条件会修改表中所有的数据
删除表中数据
*删除表中数据Delete
语法
delete [表名] where [条件]
下面删除id=16的小林的信息
delete student where id=16
执行结果:可以清楚的看到id=16小林的数据就没有了,
总结:
修改和删除要谨慎使用,使用时一定要给定条件,不然就会修改、删除整张表中的数据。格外注意