首页 > 开发 > 综合 > 正文

数据库常识

2024-07-21 02:49:39
字体:
来源:转载
供稿:网友
数据库常识

1.数据库名(database_name)与主文件逻辑名(logical_file_name),逻辑文件名(logical_file_name)与物理文件名(os_file_name)的区别:

(database_name)是数据库名,一个数据库可以对应多个物理文件,每个物理文件名和所在磁盘可以不同(通过文件组实现),logical_file_name 是在所有 Transact-SQL 语句中引用物理文件时所使用的名称。逻辑文件名必须符合 SQL Server 标识符规则,而且在数据库中的逻辑文件名中必须是唯一的。os_file_name 是包括目录路径的物理文件名。它必须符合操作系统文件命名规则。

1.2创建数据库

USE master ;GOCREATE DATABASE SalesON ( NAME = Sales_dat,    FILENAME = 'C:/PRogram Files/Microsoft SQL Server/MSSQL12.MSSQLSERVER/MSSQL/DATA/saledat.mdf',    SIZE = 10,    MAXSIZE = 50,    FILEGROWTH = 5 )LOG ON( NAME = Sales_log,    FILENAME = 'C:/Program Files/Microsoft SQL Server/MSSQL12.MSSQLSERVER/MSSQL/DATA/salelog.ldf',    SIZE = 5MB,    MAXSIZE = 25MB,    FILEGROWTH = 5MB ) ;GO

1.3创建数据表

2.SqlServer修改表结构总结增加字段,删除字段,增加约束,删除约束,修改缺省值,修改字段数据类型,重命名字段,重命名表。所有这些动作都是用 ALTER TABLE 命令执行的。增加字段要增加一个字段,使用下面这样的命令:ALTER TABLE products ADD COLUMN description text;新增的字段对于表中已经存在的行而言最初将先填充所给出的缺省值 (如果你没有声明DEFAULT子句,那么缺省是空值)。你也可以同时在该字段上定义约束,使用通常的语法:ALTER TABLE products ADD COLUMN description text CHECK (description <> '');实际上,所有在 CREATE TABLE 里描述的可以应用于字段之选项都可以在这里使用。 不过,我们要注意的是缺省值必须满足给出的约束,否则 ADD 将会失败。 另外,你可以在你正确填充了新字段的数值之后再增加约束.删除字段要删除一个字段,使用下面这样的命令:ALTER TABLE products DROP COLUMN description;不管字段里有啥数据,都会消失。和这个字段相关的约束也会被删除。 不过,如果这个字段被另外一个表的外键所引用,PostgreSQL 则不会隐含地删除该约束。你可以通过使用 CASCADE 来授权删除任何依赖该字段的东西:ALTER TABLE products DROP COLUMN description CASCADE;增加约束要增加一个约束,使用表约束语法。比如:ALTER TABLE products ADD CHECK (name <> '');ALTER TABLE products ADD CONSTRAINT some_name UNIQUE (product_no);ALTER TABLE products ADD FOREIGN KEY (product_group_id) REFERENCES product_groups;要增加一个不能写成表约束的非空约束,使用下面语法:ALTER TABLE products ALTER COLUMN product_no SET NOT NULL;这个约束将立即进行检查,所以表在添加约束之前必须符合约束条件。删除约束要删除一个约束,你需要知道它的名字。否则系统会分配一个生成的名字,这样你就需要 把它找出来了。psql 的命令 /d tablename 在这儿可以帮忙; 其它接口可能也提供了检查表的细节的方法。然后就是这条命令:ALTER TABLE products DROP CONSTRAINT some_name;(如果你在处理一个生成的约束名,比如 $2,别忘了你需要给它 添加双引号,让它成为一个有效的标识符。)和删除字段一样,如果你想删除有着被依赖关系地约束,你需要用 CASCADE。 一个例子是某个外键约束依赖被引用字段上的唯一约束或者主键约束。除了非空约束外,所有约束类型都这么用。要删除非空类型,用ALTER TABLE products ALTER COLUMN product_no DROP NOT NULL;(要记得非空约束没有名字。)设置一个字段的缺省值要给一个字段设置缺省值,使用一个象下面这样的命令:ALTER TABLE products ALTER COLUMN price SET DEFAULT 7.77;请注意这么做不会影响任何表中现有的数据行, 它只是为将来 INSERT 命令改变缺省值。要删除缺省值:ALTER TABLE products ALTER COLUMN price DROP DEFAULT;这样实际上相当于把缺省设置为空。 结果是,如果我们删除一个还没有定义的缺省值不算错误,因为缺省隐含就是空值。修改一个字段的数据类型把一个字段转换成另外一种数据类型,使用下面的命令:ALTER TABLE products ALTER COLUMN price TYPE numeric(10,2);只有在字段里现有的每个项都可以用一个隐含的类型转换转换城新的类型时才可能成功。 如果需要更复杂的转换,你可以增加一个 USING 子句,它声明如何从旧值里计算新值。PostgreSQL 将试图把字段的缺省值(如果存在)转换成新的类型, 还有涉及该字段的任何约束。但是这些转换可能失败,或者可能生成奇怪的结果。 在修改某字段类型之前,最好删除那些约束,然后再把手工修改过的添加上去。给字段改名字重命名一个字段:ALTER TABLE products RENAME COLUMN product_no TO product_number;给字段改名字给一个字段重命名:ALTER TABLE products RENAME COLUMN product_no TO product_number;给表改名字给一个表重命名:ALTER TABLE products RENAME TO items;连接数据库

1、SQL Server的连接方式

以本地服务器(LocalHost),数据库(Northwind)为例,可以有以下一些连接方式
SqlConnection conn=new SqlConnection( "Server=LocalHost;Integrated Security=SSPI;Database=Northwind");SqlConnection conn = new SqlConnection("Data Source=LocalHost;Integrated Security=SSPI;Initial Catalog=Northwind;");SqlConnection conn = new SqlConnection(" Data Source=LocalHost;Initial Catalog=Northwind;Integrated Security=SSPI;Persist Security Info=False;Workstation Id=XURUI;Packet Size=4096; ");SqlConnection myConn  = new SqlConnection("Persist Security Info=False;Integrated Security=SSPI;Database=northwind;Server=LocalHost");SqlConnection conn = new SqlConnection(" Uid=sa;Pwd=***;Initial Catalog=Northwind;Data Source=LocalHost;Connect Timeout=900");
a.Server和Database,Data Source和Initial Catalog配对使用的,可以互相替换b.Integrated Security默认值是False,此时需要提供Uid和Pwd,即将以Sql Server 用户身份登陆数据库;如果设置为True,Yes 或 SSPI,这不能出现Uid和Pwd,将以Windows用户省份登陆数据库。强烈推荐用后一种形式,安全性更高。c.Integrated Security和Persist Security Info同时出现,后者设置为False,可保证信息安全。

更多字符串连接说明请看MSDN:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDataSqlClientSqlConnectionClassConnectionStringTopic.asp


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表