博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql server学习小结
阅读量:6710 次
发布时间:2019-06-25

本文共 4365 字,大约阅读时间需要 14 分钟。

hot3.png

SQL Server 数据类型  ()

String 类型:

数据类型 描述 存储

char(n) 固定长度的字符串。最多 8,000 个字符。 Defined width
varchar(n) 可变长度的字符串。最多 8,000 个字符。 2 bytes + number of chars
varchar(max) 可变长度的字符串。最多 1,073,741,824 个字符。 2 bytes + number of chars
text 可变长度的字符串。最多 2GB 文本数据。 4 bytes + number of chars
nchar 固定长度的 Unicode 字符串。最多 4,000 个字符。 Defined width x 2
nvarchar 可变长度的 Unicode 字符串。最多 4,000 个字符。 
nvarchar(max) 可变长度的 Unicode 字符串。最多 536,870,912 个字符。 
ntext 可变长度的 Unicode 字符串。最多 2GB 文本数据。 
bit 允许 0、1 或 NULL 
binary(n) 固定长度的二进制字符串。最多 8,000 字节。 
varbinary 可变长度的二进制字符串。最多 8,000 字节。 
varbinary(max) 可变长度的二进制字符串。最多 2GB。 
image 可变长度的二进制字符串。最多 2GB。 

Number 类型:

数据类型 描述 存储
tinyint 允许从 0 到 255 的所有数字。 1 字节
smallint 允许介于 -32,768 与 32,767 的所有数字。 2 字节
int (integer)允许介于 -2,147,483,648 与 2,147,483,647 的所有数字。 4 字节
bigint 允许介于 -9,223,372,036,854,775,808 与 9,223,372,036,854,775,807 之间的所有数字。 8 字节
decimal(p,s) 固定精度和比例的数字。
允许从 -10^38 +1 到 10^38 -1 之间的数字。

p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是 1 到 38 之间的值。默认是 18。

s 参数指示小数点右侧存储的最大位数。s 必须是 0 到 p 之间的值。默认是 0。

 5-17 字节
numeric(p,s) 固定精度和比例的数字。
允许从 -10^38 +1 到 10^38 -1 之间的数字。

p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是 1 到 38 之间的值。默认是 18。

s 参数指示小数点右侧存储的最大位数。s 必须是 0 到 p 之间的值。默认是 0。

 5-17 字节
smallmoney 介于 -214,748.3648 与 214,748.3647 之间的货币数据。 4 字节
money 介于 -922,337,203,685,477.5808 与 922,337,203,685,477.5807 之间的货币数据。 8 字节
float(n) 从 -1.79E + 308 到 1.79E + 308 的浮动精度数字数据。
n 参数指示该字段保存 4 字节还是 8 字节。float(24) 保存 4 字节,而 float(53) 保存 8 字节。n 的默认值是 53。
 4 或 8 字节
real 从 -3.40E + 38 到 3.40E + 38 的浮动精度数字数据。 4 字节

 

1.行注释  --
2.块注释 /*  */
3.删除数据库 drop database school
4.创建数据库和日志并保存
CREATE DATABASE school
ON
( NAME = school_dat,
   FILENAME = 'd:\school1.mdf',
   SIZE = 3,
   MAXSIZE = 4,
   FILEGROWTH = 1 )
LOG ON
( NAME =school_log,
   FILENAME = 'd:\school1.ldf',
   SIZE = 2MB,
   MAXSIZE = 3MB,
   FILEGROWTH = 1MB )
5.go
GO 表示一批 T-SQL 语句结束,GO 之后的 T-SQL 语句属于另一个批处理的范围

6.一些最重要的 SQL 命令

SELECT - 从数据库中提取数据
UPDATE - 更新数据库中的数据
DELETE - 从数据库中删除数据
INSERT INTO - 向数据库中插入新数据
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引

7.--创建索引
create index ix_student_sname ON student(sname)
本例会创建一个简单的索引,名为 ix_student_sname 在 student表的 (sname)列:
降序:create index ix_student_sname ON student(sname DESC)
希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:
create index ix_student_sname ON student(sname,sage)

8.--创建表

create table Student (
   Sno ud_sno ,
   Sname char(10) not null unique ,
   Ssex char(2) check (ssex='男' or ssex='女') ,
   Sage smallint check(sage>16) ,
   Sdept char(10)  not null default 'JSJ' ,
  
   primary key (sno)  //主键
 )

9.--设置键(在create table语句内)
主键: primary key (cno)

在已经设置该主键的表里面设置与其他表相关联的外键

外键:

primary key(Cno,Sno),

foreign key (Sno) references student(Sno) ,   //关联其他表中主键的外键
foreign key (Cno) references Course(Cno) ,

10.--添加数据到表
insert into student (sno,sname,ssex,sage,sdept) values('003','tony','男',20,'sx')

11.--设置默认值

  Sdept char(10)  not null default 'JSJ'设置该字段不为空且默认值为'JSJ'

12.如何在sql server里面写语句(其实至今没有弄明白)

首先手动新建数据库,然后点击新建查询,就可以到一个可以写sql 语句的地方

13.在数据表中增加删除某列

alter table table_name add  reserve char(50)
alter table table_name drop COLUMN reserve

删除普通列时要在列名前面加 column

 

14.查询
select branch_name from table_name (默认不去重)
select distinct branch_name from table_name (去重)
select all branch_name from table_name

(1)将查询结果某一列计算后作为新的一列显示出来

select loan_number, branch_name, amount*10  as lal
from table_name

(2)查询条件限制

select loan_number
from loan
where branch_name ='Perryridge' and amount <1200
 之间:where amount between 900 and 1300

(3)没有插入数据查询(is null)

select Sno from  Selected_Course  where  Cno='7'   and   Grade is null

 

(4)and && or

where Cno='7' and (Grade >90 or Grade <60)

(5)like

A:%包含零个或多个字符的任意字符串

1、LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如
McBadden)。
2、LIKE'%inger' 将搜索以字母 inger 结尾的所有字符串(如
Ringer、Stringer)。
3、LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如
Bennet、Green、McBadden)。
B:_(下划线)任何单个字符:LIKE'_heryl'
将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
C:[]指定范围([a-f])或集合([abcdef])中的任何单个字符:
1,LIKE'[CK]ars[eo]n'
将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
2、LIKE'[M-Z]inger' 将搜索以字符串
inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。
D:[^]不属于指定范围([a-f])或集合([abcdef])的任何单个字符:LIKE'M[^c]%'
将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如MacFeather)。

 


约束

1,在alter table 时的约束设置

alter table Student

add check (Sname is not null and Sdept is not null and (Ssex='男' or Ssex='女')and Ssex is not null)

 

 

 

问题:group by

选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中无法理解

 

 

 

 

 

转载于:https://my.oschina.net/u/2493156/blog/666179

你可能感兴趣的文章
jquery函数
查看>>
《游戏引擎架构》笔记三
查看>>
[LeetCode]Palindrome
查看>>
Lua学习笔记(3):运算符
查看>>
POJ 3259 Wormholes
查看>>
SQL*Loader使用详解(一)
查看>>
hdu 5012(bfs)
查看>>
hdu2795 线段树 贴广告
查看>>
如何快速带领实习生进入角色
查看>>
用ListView实现对数据库的内容显示
查看>>
用Codis实现Redis分布式集群
查看>>
时间、时间戳相关小结 - iOS
查看>>
uvm_factory——我们的工厂(一)
查看>>
amfphp中文乱码解决方法
查看>>
LDAP学习笔记
查看>>
Mysql增加、删除和修改列属性和约束,和一些有用的查询语句
查看>>
discuz@功能的代码
查看>>
Java日志记录--log4j and logback
查看>>
【angularjs】使用angular搭建项目,获取dom元素
查看>>
leetcode1034
查看>>