有很多软件公司开发了数据库产品,其中微软公司的数据库产品命名为 SQL Server,也称 MS SQL Server。
1989年 Ashton-Tate/Microsoft SQL Server 1.0 for OS/2 正式发布。
1996年,微软发布了 SQL Server 6.5,作为对 SQL Server 6.0 的重要更新。
1998年12月,SQL Server 7.0 正式上市。
2000年8月,SQL Server 2000 发布。
创建
创建数据库
CREATE DATABASE 数据库名;
查询
查看所有的数据库
SELECT Name FROM Master..SysDatabases ORDER BY Name
删除
删除数据库
DROP DATABASE 数据库名;
使用
使用数据库
use 数据库名称;
创建
创建表
CREATE TABLE 表名 (
字段名 1 字段类型 1,
字段名 2 字段类型 2
);
数据库类型分类
分类
数据库中的类型
JAVA中对应类型
整数
bigint
long
整数
bit
boolean
整数
int(integer)
int(integer)
整数
tinyint
short
小数
float
double
小数
decimal
java.math.BigDecimal
小数
money
java.math.BigDecimal
小数
smallmoney
java.math.BigDecimal
日期
smalldatetime
表示时间类型(只精确到分)java.sql.Timestamp
日期
date
表示日期类型java.sql.Date
日期
datetime
同时可以表示日期和时间类型(精确到毫秒)java.sql.Timestamp
字符串
char(m)
String
字符串
varchar(max)
String
字符串
(text)
String
字符串
varbinary(max)
String
查询:
查询某个数据库中所有的表名称
SELECT Name FROM Master..SysDatabases ORDER BY Name
查询表结构
SELECT (case when a.colorder=1 then d.name else null end) 表名, ( d.name) 表名2,
a.colorder 字段序号,a.name 字段名,
(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) 标识,
(case when (SELECT count(*) FROM sysobjects
WHERE (name in (SELECT name FROM sysindexes
WHERE (id = a.id) AND (indid in
(SELECT indid FROM sysindexkeys
WHERE (id = a.id) AND (colid in
(SELECT colid FROM syscolumns WHERE (id = a.id) AND (name = a.name)))))))
AND (xtype = 'PK'))>0 then '√' else '' end) 主键,b.name 类型,a.length 占用字节数,
COLUMNPROPERTY(a.id,a.name,'PRECISION') as 长度,
isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as 小数位数,(case when a.isnullable=1 then '√'else '' end) 允许空,
isnull(e.text,'') 默认值,isnull(g.[value], ' ') AS [说明]
FROM syscolumns a
left join systypes b on a.xtype=b.xusertype
inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join syscomments e on a.cdefault=e.id
left join sys.extended_properties g on a.id=g.major_id AND a.colid=g.minor_id
left join sys.extended_properties f on d.id=f.class and f.minor_id=0
--where b.name is not null
WHERE d.name='YxphoneDeal' --如果只查询指定表,加上此条件 如果去掉则是查询全部的
order by a.id,a.colorder
修改
修改表名
EXEC sp_rename '原有表名', '新表名';
添加一列
alter table 表名 add 列名 数据类型 not null--添加列
修改列名称 类型
exec sp_rename '[表名].[列名]','[新列名]' -- 注意,单引号不可省略。
修改列属性
alter table table_name alter column column_name column_type
删除列
alter table table_name drop column column_name
添加主键
Alter table YXHIS..TBICXXDZ Add Constraint PK_TBICXXDZ Primary Key (CICID,CICKMW) --添加主键约束 PK_TBMZFYHZ 创建新的主键约束名称
删除主键
Alter table YXHIS..TBICXXDZ Drop CONSTRAINT PK_TBICXXDZ --删除表主键约束(已定义主键名) PK_TBMZFYHZ 表创建中查看主键约束名称
添加数据
insert into 表名(列名1,列名2,…列名n) values(值1,值2,…值n);
除了数字类型,其他类型需要使用引号单引起来(SqlServer严格区分单双引号)
删除数据
delete from 表名 [where 条件]
修改数据
update 表名 set 列名1 = 值1, 列名2 = 值2,… [where 条件];
基础字段
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
分页
第一种方式:offset fetch next方式(SQL2012以上的版本才支持:推荐使用 )
**select * from ArtistModels order by ArtistId offset 4 rows fetch next 5 rows only
--order by ArtistId offset 页数 rows fetch next 条数 rows only --**
第二种方式:top not in方式 (适应于数据库2012以下的版本)
**select top 3 * from ArtistModels
where ArtistId not in (select top 15 ArtistId from ArtistModels)
------where Id not in (select top 条数*页数 ArtistId from ArtistModels)**
查询运算符
< 、> 、<= 、>= 、= 、<>、 BETWEEN…AND、 IN、 LIKE、 and 或 &&、or 或 ||、not 或 !
符号
含义
distinct
去掉重复数据
isnull(CBZ3,'')
如果CBZ3为null,结果返回''的值
CASE WHEN ISNULL(CTJYLSH,'')<> '' THEN CTJYLSH ELSE CJYLSH END
如果CTJYLSH不为空,则为CTJYLSH,否则为CJYLSH
isnull(CBZ3,''<>'' cbz3字段不为空
略(和MySql一样)
约束名
约束关键字
主键
primary key
唯一
unique
非空
not null
外键
foreign key
默认值约束
Default
自增约束
AUTO_INCREMENT
检查
CHECK
检查约束
Check约束通过逻辑表达式来判断数据的有效性,用来限制输入一列或多列的值的范围,在列中更新数据时,所要输入的内容必须满足Check约束的条件,否则将无法正确输入。
和MySQL差不太多,都是默认自动提交。
不同点:默认隔离级别:MySql是可重复读,SqlServer是读已提交。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章