SQL命令的问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 01:59:26
CREATE TABLE [dbo].[emp] (
[emp_id] [int] IDENTITY (1, 1) NOT NULL ,
[emp_login] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[password] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[duty] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[email] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[mobile_tell] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[work_tell] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[jb] [int] NOT NULL
[photo] [image] NOT NULL
) ON [PRIMARY]
GO
看见一本书这样写的命令,本人对上面的有点不懂啊,请问高手,为什么用[]我记得以前我创建表的时候不用这个,这个可以不用吧,有什么意义呢,[dbo].[emp]这里的dbo是代表数据名吗?还是别的呢假如数据库名是student难道这样写吗[student].[emp],,.IDENTITY (1, 1)这个是什么意思啊,有什么意义吗?COLLATE Chinese_PRC_CI_AS 这个又是什么意思呢,有什么意义?
ON [PRIMARY]这个怎么放在外面呢,针对是什么呢,事实上是指id的主键,放外面能起到作用吗?
请高手指点,狂感谢!~

为什么,查询分析器中的 表名前加一个dbo 前缀答:是你的用户权限所致。如果你用SA登录,查询本服务器里的数据库是不用加DBO的。 另 如果你做跨服务器查询时就要用到DBO。 如 select * from sf11.rayben.dbo.table1 两个特殊数据库用户: dbo,数据库的拥有者,在安装sqlserver时,被设置到model数据库中,不能被删除,所以dbo在每个数据库中都存在。dbo是数据库的最高权力者,对应于创建该数据库的登陆用户,即所有的数据库的dbo都对应于sa帐户; guest,这个用户可以使任何已经登陆到sqlserver服务器的用户都可以访问数据库,即使它还没有成为本数据库的用户。所有的系统数据库除model以外都有guest用户。所有新建的数据库都没有这个用户,如果有必要添加guest用户,请用sp_grantdbaccess来明确建立这个用户。

至于你说的[]是为了区别表和字段与关键字重名。比如name 你就用[name]
便不会与sql的关键字重名了。

至于IDENTITY (1, 1)是自动增长列 数据加一条 该字段加1

Chinese_PRC_CS_AI_WS
前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。
排序规则的后半部份即后缀 含义:
_BIN 二进制排序
_CI(CS) 是否区分大小写,CI不区分,CS区分
_AI(AS) 是否区分重音,AI不区分,AS区分
_KI(KS) 是否区分假名类型,KI不区分,KS区分
_WI(WS) 是否区分宽度 WI不区分,WS区分

区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。
区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,
比较还将重音不同的字母视为不等。
区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。
区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项