SQL Server语句

SQL简介:
结构化查询语言,全拼 Structured Query Language
主要用于对数据库的操作,大多数据库遵循sql原则
SQL server使用的是sql的扩展集T-SQL 全拼 Transact-SQL

SQL组成:
SQL由四部分组成分别为DML DDL DQL DCL

DML:数据表操作语言,用于插入(insert),修改(update),查询(select)数据表的操作
DDL:数据库的定义语言,建立数据库,数据库对象和定义其列,大部分是CREATE开头
DQL:对于数据表尽心查询的
DCL:用于数据库权限,创建用户名的(目前没有接触到)

SQL语句:(重点)
插入语句:
//插入表的所有数据,对应关系和表中的数据一一对应(包含类型,列名)
Insert into 表名 values(列1,列2…列n)
//插入数据到指定的列,值要对应表名后面的列,不要和表中的顺序对应
Insert into 表名(列1,列2…列n) values(列1,列2…列n)

修改语句:
//修改所有列的数据–修改所有列的值,该列的值都改变
Update 表名 set 列1=值1,列2=值2…
//修改指定行查询语句
Update 表名 set 列1=值1 ,列2 =值2 where 列=值
注:where表示条件,后边接对于前面修改语句的条件,where后面的列一般为主键列,where后面的值表示要修改的值内容

删除语句:
    //删除表
     Drop table 表名
    //删除整个表数据,不删除表
     Delete  from  表名
     Truncate  table  表名
    注:如果该列是自增列 ,delete删除整个表数据之后再次插入之后会继承上一次的序号,truncate不会继承序号,而是从头开始
   //删除指定行数据
   Delete from 表名 where 列=值

查询语句:
   //查询全部语句, ‘*’表示所有的列
    Select *  from 表名
   //查询指定列的所有数据,在select后添加列名,表示指定列的数据
    Select 列1,列2,列3 from 表名
   //查询指定条件语句,判断符号在数据库查询中可用(>  <  =  !=  >=  <=)
    Select * from 表名 where 列1=值1
   //查询指定范围的数据,该句查询年龄大于40小于20的人的所有信息
    Select * from 表名 where 年龄>40 and 年龄<20
     注: and表示并且  or 表示或者
   //查询指定范围的数据,该句查询的是年龄在20到40之间的数据,包含20和40
     Select * from 表名  where  年龄  between 20 and 40
   // 查询姓名为‘张三’或‘李四’的人,
     Select * from 表名 where  姓名 in(‘张三’,’李四’)
     注:IN后面可以接很多值,相当于多个or 上面的可以写做:

select * from where 姓名=张三 or 姓名=李四
//查询空值
Select * from 表名 where 列名 is null
//查询指定的行数-返回最大行数,Top指定最大显示行数
Select top 2 * from 表名

分组查询:
//查询每个职业的人数 count()表示求该列的个数
select work,count() from 表名 group by work
//多列分组查询–查询每个职业不同性别的人的个数
Select work,sex,count(
) from 表名 group by work,sex

HAVING:表示条件语句,在where后面再进行条件筛选
//查询该数据库中每个职业人数大于10的数据
Select work,count() from 表名 group by work having count()>10
注:查询语句中,where,Group by, Having,聚合函数执行如下:
1,where从数据源中去掉不符合条件的搜索
2, Group by手机数据到各个组中
3,HAVING去掉不符合搜索条件的组数据

模糊查询:
//查询姓王的,名字后面带一个字的人名
Select * from 表名 where name like ‘王_’
//查询姓王的,名字后面可以带任意字符的
Select * from 表名 where name like ‘王%’
注: ‘_’表示一个字符,‘%’表示任意个字符,如果需要查询名字中在任意位置出现的关键字,写成’%任意字%’

查询排序:
//从小到大排列
Select * from 表名 order by 要排序的列名 [ASC]
//从大到小
select * from 表名 order by 要排序的列名 desc

聚合函数:
Sum()求和 avg()平均数 max()最大值 min()最小值 count()个数

多表查询:(注意需要两表关联,没有关系的两张表一般我们不进行查询)
内连接查询:
Select * from 表1 t,表2 s where s.id=t.id
还可以写作:
Select * from 表1 as t inner join 表2 as s on(t.id=s.id)
注:’表1 t’表示给表1取了一个别名为t,也就是说可以在我们这个查询语句中使用t替代表1的名字,这个中间省略了as ,原语句应该写作 表1 as t,表2同理
select t.Title,c.CategoryName,t.Author,t.PublishDate,t.UnitPrice from Books t,Categories c where t.categoryId=c.id;

外链接查询:
左外链接:
Select * from 表1 as t left outer join 表2 as s on s.id=t.id
右外链接:
Select * from 表1 as t right outer join 表2 as s on s.id=t.id

注:外链接分为左外和右外,左外是以左表为基准,如果左表中有多余数据,那么会在右表中补充null,如果左表中少了数据,那么会在右表中删掉没有显示在左表中的数据。有链接相反
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值