【读书笔记】--SQL基础概念复习
2016-03-13 20:24
253 查看
[b]主键:每个表,只能有一个主键,主键不能为NULL,且必须是唯一的。主键最好是由单个列组成,但这不是必须的,主键也可以是由多个列组成,[/b]如果表的两个列组合在一起能唯一标识一个行,而单个列不能,则可以将这两个列组合在一起作为主键。
[b]列:在定义表的列时,至少需要定义下列三项:1.列的名称,2.列的数据类型,3.列是否允许为空(NULL)。[/b]
[b]列名:列名要简单直观,例如:LastName或者EmployeeID,而不应该使用比较繁琐的名字,例如:EmployeeLastName.[/b]
[b]数据类型:选择数据类型的一般规则是,尽量使用最小的数据类型,因为这可以节省内存与磁盘空间。还要注意的是,SQL Server处理数字的效率,比字符高得多,所以应该尽量使用数字。除了数学运算之外,在排序与比较时,也应该优先选择数字,而不是字符。在设计表,为每个列选择数据类型的时,宜保守一些,尽可能使用小而高效的数据类型。与此同时,还应该考虑一些不常见的例外情况,确保所选择的类型,能满足所有这些要求。[/b]
char类型:是固定长度的数据类型,用于保存字符数据,可保存的字符数量为1~8000个。
varchar类型:除了长度可变,数据类型和char是相同的,假如定义了一个类型为char(8)的列,那么这个列将占用8个字节,即使该列只包含了3个字符,varchar类型的列,则只占用它需要的空间。通常来讲,char数据类型适合用于数据处理,而varchar类型适合于数据存储。一般的规则是,如果数据都接近所定义的长度,就使用char类型,如果数据差别很大,就使用varchar类型,比如可以使用varchar(167)来保存世界上最长的城市名称。
nchar也是固定长度的数据类型,nvarchar也是长度可变的数据类型。
[b]列:在定义表的列时,至少需要定义下列三项:1.列的名称,2.列的数据类型,3.列是否允许为空(NULL)。[/b]
[b]列名:列名要简单直观,例如:LastName或者EmployeeID,而不应该使用比较繁琐的名字,例如:EmployeeLastName.[/b]
[b]数据类型:选择数据类型的一般规则是,尽量使用最小的数据类型,因为这可以节省内存与磁盘空间。还要注意的是,SQL Server处理数字的效率,比字符高得多,所以应该尽量使用数字。除了数学运算之外,在排序与比较时,也应该优先选择数字,而不是字符。在设计表,为每个列选择数据类型的时,宜保守一些,尽可能使用小而高效的数据类型。与此同时,还应该考虑一些不常见的例外情况,确保所选择的类型,能满足所有这些要求。[/b]
char类型:是固定长度的数据类型,用于保存字符数据,可保存的字符数量为1~8000个。
varchar类型:除了长度可变,数据类型和char是相同的,假如定义了一个类型为char(8)的列,那么这个列将占用8个字节,即使该列只包含了3个字符,varchar类型的列,则只占用它需要的空间。通常来讲,char数据类型适合用于数据处理,而varchar类型适合于数据存储。一般的规则是,如果数据都接近所定义的长度,就使用char类型,如果数据差别很大,就使用varchar类型,比如可以使用varchar(167)来保存世界上最长的城市名称。
nchar也是固定长度的数据类型,nvarchar也是长度可变的数据类型。
相关文章推荐
- 经典SQL语句大全
- 在redis-cli中使用中文
- 使用JDBC进行数据库的事务操作(2)
- Redis内存管理(二)
- 解决mysql的1045错误,让别人可以远程自己的数据库
- 使用JDBC进行数据库的事务操作(1)
- nodejs使用mysql例子
- mysql urlencode 支持中文
- 安装SQL08时,出现[错误消息] 为 SQL Server 代理服务提供的凭据无效。若要继续操作,请为 SQL Serve
- 使用JDBC调用数据库的存储过程
- SqlServer数据库升级及常用配置
- [mysqldumpslow 报错] Died at /usr/local/mysql/bin/mysqldumpslow line 161, <> chunk 236.
- 机房收费系统重构之SQLhelper的理解
- redis使用例子和net模块
- 使用JDBC对数据库实现批处理操作
- MySql 探索
- 使用JDBC处理数据库大容量数据类型
- JDBC使用数据库来完成分页功能
- ORACLE体系结构
- MongoDb gridfs-ngnix文件存储方案 - 图片