首页 > 代码库 > 1月11日 数据库及表的操作

1月11日 数据库及表的操作

一、数据类型

1、二进制类型:(有长度限制,可放800个0、1)

格式:

binary[(n)]                 --固定长度的n个字节二进制数据

varbinary[(n)]             --n个字节变长的二进制数据

2、字符数据

格式:

char[(n)]   --固定长度为n的字符型数据

varchar[(n)]   --最大长度为n的变长字符型数据

相同点:两者最多存8kb,相当于8000个英文字母或数字,也相当于4000个汉字,超过4000字的一般用text文本类型存储

区分char和varchar:

   用 char(20)和 varchar(20)两个定义一个长度为10的量,char(20)会用null自动补全空余的10个位置,不用的10个空间不会释放。

  而varchar(20)在现在就相当于char(10),剩余10个空间会自动释放,节省空间。  所以,一般选用varchar

3、日期时间数据

格式:

datetime          范围为1753.1.1-1999.12.31

smalldatetime          范围为1900.1.1-2079.6.6

注意:

(1)、日期时间有范围,定义时不要超出其范围

(2)、定义时间时用日期时间数据,尽量别用varchar()

(3)、日期时间类型长度固定

4、实型数据

(1)、定点型数据

格式:

decimal[(p[,s])]   --其中p为总数,s为小数位数

numeric[(p[,s])]     若s缺省,则无小数部分

注意:

p包含小数点位数,小数点算一位

例:

若小数点前2为,小数点后4为,则p=7,s=4

(2)、浮点型数据

格式:

float(real)[(n)]     --n用于记float尾数的位数

5、货币类型

6、特殊数据类型

bit     只包含0或1,可用于代表true,false

7、文本和图像数据类型

文本(text):用来处理可变长的大文本数据,可存储2GB

图像(image):用来处理图像数据,可存储2GB

 

 

二、数据库的创建和管理

SQL语言有3种:DDL(数据定义语言)、DML(数据操纵语言)、DCL(数据控制语言)

1、数据库的创建:

格式:

CREATE DATABASE  数据库文件名                       --数据库起名   CREATE是创建的意思

ON [PRIMARY]                                                 --指定数据主文件名    若不加PRIMARY时,为次文件名

( NAME = logical_file_name,

   FILENAME = ‘os_file_name‘,

   SIZE=size,                                                 --初始化文件大小

   MAXSIZE=maxsize,                                  --指定文件的最大值

   FILEGROWTH=growth_increment )            --指定文件增长的增量

LOG ON                                                     --日志文件

(

 NAME = logical_file_name,

   FILENAME = ‘os_file_name‘,

   SIZE=size,                                                 

   MAXSIZE=maxsize,                                  

   FILEGROWTH=growth_increment 

)

2、修改数据库

ALTER DATABASE database

3、删除数据库

DROP DATABASE

注意:所删除的数据库一定不能处于使用状态

 

三、表的创建和管理

1、创建表

CREATE TABLE [[数据库名.]表所有者.]表名

(  { 列名   数据类型}

       [NULL | NOT NULL]

       {列名 AS 列表达式}             --可以通过其他表计算出来的列用列表达式表示

  [,........]  )

[ON {文件组名 | DEFAULT}]

2、指定默认值

格式:

[DEFAULT  常量表达式]

例:CREATE TABLE STUDENT

(

   NAME CHAR(8),

   COLLECE CHAR(20)  DEFAULT ‘黑龙江八一农垦大学‘          --如果没填默认为  黑龙江八一农垦大学

)

3、标识列(自增长列)

格式

CREATE TABLE [[数据库名.]表所有者.]表名

(  { 列名   数据类型}

      [IDENTITY (种子值,增长值) NOT NULL]           --种子值(意思是从几开始增)  增长值是(一次增长几个)

    [.............,]

 )

注意:

(1)、一个表只能有一列定义为IDENTITY 属性。该列必须以 decimal、int、numeric、smallint、bigint、tinyint数据定义。

(2)、若不定义种子值和增长值,二者默认为1

(3)、标识符列不允许为空值,也不能包含DEFAULT

*(4)、insert into 输入时,若有标识列,可自动省略。

     例:表student有两 ID列、NAME列 两列 ,其中ID列为标识符列,

则输入时   insert into student values(‘刘明‘)    --只需要输入一个数,到表内标识符列自动生成

*(5)、标识列用一个废一个,一旦用了就不能再用了   

例:若一个三行的student表,ID列为标识列,NAME列为姓名列,删除第二行姓名,再添加一个是,ID列自动变为4。

    如果发现ID4的名字填错了,改过来之后,ID会自动变为5

(6)若想从头开始填标识符列,  truncate 表名     --truncate 是截断、清空的意思

4、CHECK检查约束

目的:主要是防止出现一模一样的数值,可作为区分。

操作:找到要操作的表——>右键——>设计——>找到想设CHECK约束的列名——>右键——>CHECK约束

5、定义主关键字

主键的特征:

(1)、唯一性。一个表只有一个主键

(2)、不为空。不能在主键列中输入NULL值

(3)、每一个表都应设主键

(4)、主键会自动排序

主键的类型:

(1)、一般设置一个主键

(2)、有时也会设置2个主键,也就是组合主键。组合主键的意思是唯一不重复的组合,其中一个每一个都可能重复,但组合起来就不可能重复了。

操作:找到要操作的表——>右键——>设计——>找到想设置的列名——>右键——>设置主键  //或者直接点击想设置的列,然后点击左上方的钥匙标记

6、定义外关键字

(1)、外键一般涉及两个表:主表和从表

主表:用来约束的表

从表:被约束的表         --外键一般建在从表上

(2)、找到要操作的表——>右键——>设计——>点击左上角与主键挨着的那个关系键——>添加——>然后在右边的栏里选择需要设置的项          --第一种

          数据关系图——>右键——>新建关系图——>选择有关系的图——>钥匙指向的一方为主表          (可以在里面直接设置主键,有关系的直接连接起来即可)

 

注意:

INSERT 和UPDATE规范中有更新规则和删除规则:

(1)、删除规则的:   不执行任何操作     --从表已经使用的项主表不能删除、修改

                              级联                   --主表删除,从表跟着删。

                              设置NULL            --主表删除,从表变为NULL。

          更新规则的:   不执行任何操作     --从表已经使用的项主表不能更新

                              级联                   --主表更新,从表跟着更新。

                              设置NULL            --主表更新,从表变为NULL。

7、候选键(主键以外的唯一不重复键)

UNIQUE 约束

特征:

(1)、不重复                    

(2)、可有多个                 --UNIQUE 约束可以有多个

(3)、可为空                    --UNIQUE 约束可以为空

(4)、不具备自动排序功能

操作:

找到要操作的表——>右键——>设计——>找到要约束的列——>添加——>类型  唯一键

8、添加列

ALTER TABLE  表名    --修改表

9、删除表

DROP TABLE  表名

1月11日 数据库及表的操作