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 --修改索引

创建数据表

语法

  1. craete table [创建表名称](
  2. [列名] [数据类型] [约束],
  3. [列名] [数据类型] [约束]
  4. )

创建学生表(student)

  1. create table student(
  2. id int identity(1,1) primary key, --设置id为主键,并为标识列自增1
  3. sex bit not null, --学员性别 0:女 1:男
  4. name varchar(50) not null, --学员姓名
  5. age int not null, --学员年龄
  6. classId int references Class(id) --ClassId为外键指向Class
  7. )

创建班级表(class)

  1. create table class(
  2. id int identity(1,1) primary key,
  3. name varchar(50) --班级名称
  4. )

向表中插入数据

由于学生表(student)引用了班级表(class)表所以我们先插入班级表中的数据

向表中插入数据的语法为

  1. insert into [表名]([列名1],[列名2],[列名3]) values([数据1],[数据2],[数据3]) --插入数据项应与列明一一对应

向班级表(class)插入数据

  1. insert into class(name) values('大一') --由于id为标识列有自增属性这里不用插入自增列的信息
  2. --象征性的多插入几条
  3. insert into class(name) values('大二')
  4. insert into class(name) values('大三')
  5. insert into class(name) values('大四')

向学生表(student)中插入数据

  1. insert into student (name, sex,age,classId) values('小明',1,18,1)
  2. insert into student (name, sex,age,classId) values('小红',0,18,1)
  3. insert into student (name, sex,age,classId) values('小蓝',1,17,1)
  4. insert into student (name, sex,age,classId) values('小绿',1,19,2)
  5. insert into student (name, sex,age,classId) values('小紫',0,18,1)
  6. insert into student (name, sex,age,classId) values('小张',1,20,2)
  7. insert into student (name, sex,age,classId) values('小李',1,18,1)
  8. insert into student (name, sex,age,classId) values('小王',0,21,3)
  9. insert into student (name, sex,age,classId) values('小钱',1,18,1)
  10. insert into student (name, sex,age,classId) values('小赵',0,19,2)
  11. insert into student (name, sex,age,classId) values('小周',1,18,1)
  12. insert into student (name, sex,age,classId) values('小丽',0,20,2)
  13. insert into student (name, sex,age,classId) values('小聪',1,18,1)
  14. insert into student (name, sex,age,classId) values('小慧',0,19,3)
  15. insert into student (name, sex,age,classId) values('小星',1,21,1)
  16. insert into student (name, sex,age,classId) values('小思',1,20,4)

查询表中数据

  1. select 查询

    1. select [查询列名称],[查询列名称] from [表名]
    2. select * from student --查询student表中所有列信息
  2. where 条件查询

    1. select name,age from student where age>19 --查询年龄大于19学生的姓名和年龄
  3. order by 排序

    1. select * from student where age>19 order by age asc --按年龄升序
    2. select * from student where age>19 order by age desc --按年龄降序
  4. group by 分组,查询全部学生男女生各多少人

    1. select case when sex=1 then '男'
    2. when sex=0 then '女' end as 性别 --这里使用了case when than的语法,相当于编程语言中if else 判断条件
    3. ,COUNT(name) as 总数 --count()函数返回总计数
    4. from student group by sex

注意:

在group by 后不能使用where条件语句,group by 语句后可以使用having 进行条件约束 ,

后面也可以可以使用 order by进行排序

修改表数据

修改数据表中的数据使用Update

语法

  1. update [表名] set [列名]=[修改的值] where [列名] = [条件]

下面修改id=16 同学的姓名:

  1. update student set name='小林' where id=16
  2. select * from student where id=16

修改之后的数据为 小思的名字就改成了小林

注意:

如果不给定条件会修改表中所有的数据

删除表中数据

*删除表中数据Delete

语法

  1. delete [表名] where [条件]

下面删除id=16的小林的信息

  1. delete student where id=16

执行结果:可以清楚的看到id=16小林的数据就没有了,

总结:

修改和删除要谨慎使用,使用时一定要给定条件,不然就会修改、删除整张表中的数据。格外注意

SQLServer数据库查询语法的更多相关文章

  1. 基于Winform框架DataGridView控件的SqlServer数据库查询展示功能的实现

    关键词:Winform.DataGridView.SqlServer 一个基于winform框架的C/S软件,主要实现对SqlServer数据库数据表的实时查询. 一.为DataGridView添加数 ...

  2. Mysql数据库查询语法详解

    数据库的完整查询语法 在平常的工作中经常需要与数据库打交道 , 虽然大多时间都是简单的查询抑或使用框架封装好的ORM的查询方法 , 但是还是要对数据库的完整查询语法做一个加深理解 数据库完整查询语法框 ...

  3. sqlserver数据库查询

    帮助类 using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; ...

  4. sqlserver数据库查询,在数据类型不一致时容易出错

    1. 如此句sql: select SysNo from User_MainInfo where Ouid=@Ouid 在 User_MainInfo表中Ouid是nvarchar类型,但当我们传入的 ...

  5. Yii2数据库查询语法

    一: $con = Yii::$app->db; $rel = $con->createCommand("select * from user");//预处理对象 $r ...

  6. sqlserver数据库查询语句

    --数据库所有表select * from sysobjects where type='u'; --指定表的所有列select name from syscolumns where id=(sele ...

  7. 查询Sqlserver数据库死锁的一个存储过程(转)

        使用sqlserver作为数据库的应用系统,都避免不了有时候会产生死锁, 死锁出现以后,维护人员或者开发人员大多只会通过sp_who来查找死锁的进程,然后用sp_kill杀掉.利用sp_who ...

  8. SQLServer数据库之连接查询

    SQLServer数据库之连接查询 表的连接查询的几种方法介绍: inner join on内连接,left join on 左连接 , rigth join on 右连接, full join on ...

  9. Sqlserver数据库分页查询

    Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID.YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页查询 ...

随机推荐

  1. CRC校验原理和verilog实现方法(二)

    1 前言 在 前面的博客  CRC校验原理和verilog实现方法(一)  中,介绍了CRC校验的原理和手动计算过程.本文说一下我在学习CRC校验FPGA实现的一点心得体会. 2 线性反馈移位寄存器 ...

  2. Couchdb 垂直权限绕过漏洞(CVE-2017-12635)

    影响版本:小于 1.7.0 以及 小于 2.1.1 首先,发送如下数据包: 修改数据包 { "type": "user", "name": ...

  3. JIT in MegEngine

    作者:王彪 | 旷视框架部异构计算组工程师 一.背景 什么是天元 旷视天元(MegEngine)是一个深度学习框架,它主要包含训练和推理两方面内容.训练侧一般使用 Python 搭建网络:而推理侧考虑 ...

  4. 利用支付宝Cookie监听交易订单实现个人支付宝收款实时回调通知

    在网上.社区里搜了一下好像没找到什么文章详细分享这种方式的,这些天我花了些时间研究整理了一下,发现这种方式能实时获取到支付宝里的二维码收款记录,从而很好地实现个人支付宝免签约收款实时回调,于是在这里分 ...

  5. Spring学习笔记-Bean

    Bean作用域(Bean Scope) singleton[单例模式][默认]:全局唯一 <!--显式设置单例模式--> <bean id="accountService& ...

  6. Android开发失业六个月了,无限的焦虑

    最近到网上看到这样一个帖子: Android开发,坐标魔都:目前为止已经失业六个月,找工作期间,尤其是最近两天确实心态不好.要么没有面试,要么给的工资不符合预期( hr 压价太狠了,原先说的 19k, ...

  7. 以TiDB热点问题来谈Region的调度流程

    什么是热点问题 说这个话题之前我们先回顾一下TiDB的主要结构和概念. TiDB的核心架构分为TiDB.TiKV.PD三个部分,其中TiKV是一个分布式数据存储引擎用来存储真实的数据,在TiKV中又对 ...

  8. Linux进程理解与实践(五)细谈守护进程

    一. 守护进程及其特性      守护进程最重要的特性是后台运行.在这一点上DOS下的常驻内存程序TSR与之相似.其次,守护进程必须与其运行前的环境隔离开来.这些环境包括未关闭的文件描述符,控制终端, ...

  9. Linux线程同步之读写锁(rwlock)

    读写锁和互斥量(互斥锁)很类似,是另一种线程同步机制,但不属于POSIX标准,可以用来同步同一进程中的各个线程.当然如果一个读写锁存放在多个进程共享的某个内存区中,那么还可以用来进行进程间的同步, 和 ...

  10. springboot2集成log4j2

    pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http:// ...