SQL server入门

简介

关系型数据库
基于E-R模型,使用sql语言进行操作

window安装驱动

navicat自带安装插件
SQL server入门_第1张图片
傻瓜式安装

字段类型

  • char/varchar :
    非unicode编码 英文占一个字节,中文占两个字节
  • varchar : 可变长度
  • char : 数据长度不可变
  • nvarchar/nchar : unicode编码 中文英文都占一个字
  • decimal(n1,n2) : n1个数字,n2个小数位 一般用于设置带有小数位的数据
  • bit : 只能存储 0 和 1 一般用于一个数据只能有两个值的时候

功能分类

  • DDL:数据定义语言
    各种数据库对象的创建
  • DML : 数据管理语言
    对表数据的增删改查 create | alter | drop
  • DCL : 数据控制语言
    进行权限分配 insert | update | delete | select

基本命令

查询

为列和表取别名

SELECT * FROM 表名 AS A
-- 		为表取别名为A AS可以省略

select查询

类似与mysql
查询前n条数据

  • top n 列名 : 表示查询前n行
  • top n percent 列名 : 表示查看前百分之N的数据
select top n * from 表名

排序查询

  • 语法: order by 列名 asc|desc
select * from StudentInfoorder by cId desc,sId asc
-- 先按cId排序,cId相同则按sId排序

分页查询
SQL server不支持limit,所以分页查询一直是其短板

SELECT
	* 
FROM
	ARTICLE w1,
	(
	SELECT TOP
		30 ID 
	FROM
		( SELECT TOP 50030 ID, YEAR FROM ARTICLE ORDER BY YEAR DESC, ID DESC ) w 
	ORDER BY
		w.YEAR ASC,
		w.ID ASC 
	) w2 
WHERE
	w1.ID = w2.ID 
ORDER BY
	w1.YEAR DESC,
	w1.ID DESC

条件查询

  • 语法: where
  • 添加细节 :
    between … and … : 区间之间
    in(n1,n2) : 符合n1或者n2条件,非连续
    逻辑运算符 : and | or | not
select * from user 
-- id 在1-5之间的
where id between 1 ans 5
-- id不在1或者3, 使用 not 和 in
where id  not in(1,3)
-- 逻辑运算符条件
where id=1 or id-3
-- 查找编号在3-5的1班学生
where id between 3 and 5 and cId=1

模糊查询

  • 语法 :like % _ [] ^
  • % : 表示零到多个任意字符
  • _ : 表示一个任意字符
  • [] : 表示范围内的一个字符
  • ^ : 非,写在[]之前表示不在范围内
select * from ClassInfo
where sName like '张%'
-- 电话号码第二位为0-4
where sPhone like '1[^579]'

连接查询
SQL server入门_第2张图片

insert插入

  • 按照默认顺序插入
INSERT User (1,1 )
VALUES
	(1,2 )
  • 对单列赋值
INSERT User (1 )
VALUES
   (1 )
  • 一次性插入多条数据
INSERT User 
VALUES
  (1)(2)(3 )

update修改

语法

update 表名
set 列名1=1,列名2=2...
where ...

delete删除

语法

delete from 表名
--其中from写不写都可以。当删除一个列的数据,如果设置了~Id为唯一标识,则Id的计数器会在删除的最后一条数据的Id的基础上,继续自增,即如果删到了第15条,则此时insert插入后,这条数据的Id将从16开始计数。
where ...
  • 清空
truncate table 表名
  • 消除重复行distinct
select  distinct cId from StudentInfo

你可能感兴趣的:(SQL,server,sql,java)