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