1. 数据库对象限定符
一个数据库对象的完整名称由4个标识符组成:
[[[服务器.][数据库].][所有者].]数据库_对象
所有者是创建对象的用户的名称。
2. 字符字符串
CHAR,VARCHAR,VARCHAR2类型的区别与使用
区别:
1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于 CHAR(20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2(20) 则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。
varchar 数据类型占用两个额外的字节,以便记录字符串的长度。
2.CHAR的效率比VARCHAR2的效率稍高。
3.目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是 oracle不这样做,尽管它保留以后这样做的
权利。Oracle自己开发了一个数据类型 VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的
特性改为存储NULL值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。
何时该用CHAR,何时该用varchar2?
CHAR与VARCHAR2是一对矛盾的统一体,两者是互补的关系.
VARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在数据库设计上常说的‘以空间换效率’。
VARCHAR2虽然比CHAR节省空间,但是如果一个VARCHAR2列经常被修改,而且每次被修改的数据的长度不同,这会引起‘行迁移’(Row
Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避免的,在这种情况下用CHAR代替VARCHAR2会更好一些。
text数据类型用于存储大型数据, 一个字段可存储的信息量可多达2GB(2^31 - 1 字节)。这种情况下,表中只存储了一个指向该数据的16字节的指针。
3. Unicode 字符字符串
这些新数据类型和老字符数据类型之间主要区别在于,新数据类型可以保存Unicode字符(每个Unicode字符占用两个字节).因此,它们可以存储的最大字符串长度只是相应老数据类型的一半(对于nchar和nvarchar来说是4000个字符).
4. 全局变量
几个重要的全局变量
@@identity
语法
identity [
(seed , increment) ]
用例:
USE AdventureWorks
IF OBJECT_ID ('dbo.new_employees', 'U') IS NOT NULL
DROP TABLE new_employees
GO
CREATE TABLE new_employees
(
id_num int IDENTITY(1,1),
fname varchar (20),
minit char(1),
lname varchar(30)
)
INSERT new_employees
(fname, minit, lname)
VALUES
('Karin', 'F', 'Josephs')
INSERT new_employees
(fname, minit, lname)
VALUES
('Pirkko', 'O', 'Koskitalo')
@@error
如果前一个 Transact-SQL 语句执行没有错误,则返回 0。
如果前一个语句遇到错误,则返回错误号。
用例:
USE AdventureWorks;
GO
UPDATE HumanResources.EmployeePayHistory
SET PayFrequency = 4
WHERE EmployeeID = 1;
IF @@ERROR = 547
PRINT N'A check constraint violation occurred.';
GO
@@rowcount
Transact-SQL 语句可以通过下列方式设置 @@rowcount 的值:
- 将 @@rowcount
设置为受影响或被读取的行的数目。可以将行发送到客户端,也可以不发送。
- 保留前一个语句执行中的 @@rowcount。
- 将 @@rowcount
重置为 0 但不将该值返回到客户端。
阅读(588) | 评论(0) | 转发(0) |