sql server学习小结

SQL Server 数据类型  (http://www.runoob.com/sql/sql-datatypes.html
String 类型:html

数据类型 描述 存储
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。 sql

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 之间的数字。spa

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 字节code

 


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 语句属于另外一个批处理的范围server

6.一些最重要的 SQL 命令
SELECT - 从数据库中提取数据
UPDATE - 更新数据库中的数据
DELETE - 从数据库中删除数据
INSERT INTO - 向数据库中插入新数据
CREATE DATABASE - 建立新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 建立新表
ALTER TABLE - 变动(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 建立索引(搜索键)
DROP INDEX - 删除索引htm


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:%包含零个或多个字符的任意字符串
一、LIKE'Mc%' 将搜索以字母 Mc 开头的全部字符串(如
McBadden)。
二、LIKE'%inger' 将搜索以字母 inger 结尾的全部字符串(如
Ringer、Stringer)。
三、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)。
二、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 子句中没法理解

相关文章
相关标签/搜索