SQL Server 2012入门:基础知识与数据完整性

需积分: 14 0 下载量 82 浏览量 更新于2024-09-03 收藏 4KB MD 举报
"SQL server2012基础知识,适合小白入门,讲解了SQL Server 2012中的数据类型和数据完整性概念,虽然已被其他版本取代,但仍是学习SQL基础的良好起点。" 在SQL Server 2012中,了解数据类型是数据库设计的基础。以下是对各类数据类型的详细说明: 1. **数字数据类型**: - **整数类型**:包括`bigint`(大整数,-9,223,372,036,854,775,808到9,223,372,036,854,775,807)、`int`(常规整数,-2,147,483,648到2,147,483,647)、`smallint`(小整数,-32,768到32,767)和`tinyint`(极小整数,0到255)。此外,`bit`类型用于表示布尔值,0或1。 - **小数类型**:包括`decimal`和`numeric`,两者功能相同,提供精确的浮点数存储,通常使用`decimal`,精度和规模可调。 - **货币类型**:`money`和`smallmoney`,前者存储范围更大,用于存储货币值。 2. **字符数据类型**: - **varchar**:可变长度字符串,最多8000个字符,节省存储空间。 - **char**:固定长度字符串,如果实际输入不足,会用空格填充到指定长度。 - **text**:存储大量文本,但在现代SQL版本中,通常使用`nvarchar(max)`替代。 3. **日期和时间数据类型**: - **datetime**:提供最高精度,从1753年1月1日到9999年12月31日,精确到百分之一秒。 - **smalldatetime**:较不精确,从1900年1月1日到2079年12月31日,精确到分钟。在存储需求不高的情况下使用。 4. **二进制数据类型**: - **binary**:固定长度二进制数据,最大长度8000字节。 - **varbinary**:可变长度二进制数据,最大长度也是8000字节,适用于存储图片、文件等二进制数据。 接下来是**数据完整性**的概念,这是确保数据库中数据准确性和可靠性的关键: 1. **实体完整性**: - **主键(primary key)**约束:确保每行都有唯一的标识符,可以由一列或多列组成。 - **自增(identity)**约束:自动递增的列值,常用于主键。 - **唯一(unique)**约束:允许空值,但一旦有值必须唯一。 2. **域完整性**: - **检查(check)**约束:限制列值的范围或表达式。 - **默认(default)**约束:为列提供默认值。 - **非空(not null)**约束:防止列值为NULL。 3. **引用完整性**: - **外键(foreign key)**约束:子表中的外键引用父表的主键,确保引用的合法性。 - 引用完整性的作用包括: - 防止在子表中添加父表中不存在的记录。 - 禁止修改父表中已被子表引用的值。 - 禁止删除子表中仍有对应记录的父表记录。 4. **用户自定义完整性**: - 用户可以根据业务规则定义特定的约束,例如年龄必须在合法范围内,电话号码的格式等。 这些基本概念构成了SQL Server 2012中的核心知识,对于初学者来说,理解和掌握这些内容将有助于进一步深入学习SQL和数据库管理。虽然SQL Server 2012已经不再是最新的版本,但它提供的这些基础教育价值仍然很高,能够帮助学习者建立起对数据库操作和管理的坚实基础。

java.security path: D:\biayu\jdk\jre\lib\security Security providers: [SUN version 1.8, SunRsaSign version 1.8, SunEC version 1.8, SunJSSE version 1.8, SunJCE version 1.8, SunJGSS version 1.8, SunSASL version 1.8, XMLDSig version 1.8, SunPCSC version 1.8, SunMSCAPI version 1.8] SSLContext provider info: Sun JSSE provider(PKCS12, SunX509/PKIX key/trust factories, SSLv3/TLSv1/TLSv1.1/TLSv1.2/TLSv1.3) SSLContext provider services: [SunJSSE: KeyPairGenerator.RSA -> sun.security.rsa.RSAKeyPairGenerator$Legacy aliases: [OID.1.2.840.113549.1.1, 1.2.840.113549.1.1, 1.2.840.113549.1.1.1] , SunJSSE: KeyFactory.RSA -> sun.security.rsa.RSAKeyFactory$Legacy aliases: [OID.1.2.840.113549.1.1, 1.2.840.113549.1.1, 1.2.840.113549.1.1.1] , SunJSSE: Signature.SHA1withRSA -> sun.security.rsa.RSASignature$SHA1withRSA aliases: [OID.1.2.840.113549.1.1.5, 1.2.840.113549.1.1.5, 1.3.14.3.2.29] attributes: {SupportedKeyClasses=java.security.interfaces.RSAPublicKey|java.security.interfaces.RSAPrivateKey} , SunJSSE: SSLContext.TLS -> sun.security.ssl.SSLContextImpl$TLSContext aliases: [SSL] , SunJSSE: SSLContext.TLSv1 -> sun.security.ssl.SSLContextImpl$TLS10Context aliases: [SSLv3] , SunJSSE: Signature.MD2withRSA -> sun.security.rsa.RSASignature$MD2withRSA aliases: [OID.1.2.840.113549.1.1.2, 1.2.840.113549.1.1.2] attributes: {SupportedKeyClasses=java.security.interfaces.RSAPublicKey|java.security.interfaces.RSAPrivateKey} , SunJSSE: Signature.MD5withRSA -> sun.security.rsa.RSASignature$MD5withRSA aliases: [OID.1.2.840.113549.1.1.4, 1.2.840.113549.1.1.4] attributes: {SupportedKeyClasses=java.security.interfaces.RSAPublicKey|java.security.interfaces.RSAPrivateKey} , SunJSSE: KeyStore.PKCS12 -> sun.security.pkcs12.PKCS12KeyStore , SunJSSE: TrustManagerFactory.SunX509 -> sun.security.ssl.TrustManagerFactoryImpl$SimpleFactory , SunJSSE: KeyManagerFactory.SunX509 -> sun.security.ssl.KeyManagerFactoryImpl$SunX509 , SunJSSE: TrustManagerFactory.PKIX -> sun.security.ssl.TrustManagerFactoryImpl$PKIXFactory aliases: [SunPKIX, X509, X.509] , SunJSSE: KeyManagerFactory.NewSunX509 -> sun.security.ssl.KeyManagerFactoryImpl$X509 aliases: [PKIX] , SunJSSE: SSLContext.Default -> sun.security.ssl.SSLContextImpl$DefaultSSLContext , SunJSSE: SSLContext.TLSv1.1 -> sun.security.ssl.SSLContextImpl$TLS11Context , SunJSSE: Signature.MD5andSHA1withRSA -> sun.security.ssl.RSASignature , SunJSSE: SSLContext.TLSv1.3 -> sun.security.ssl.SSLContextImpl$TLS13Context , SunJSSE: SSLContext.TLSv1.2 -> sun.security.ssl.SSLContextImpl$TLS12Context ] java.ext.dirs: D:\biayu\jdk\jre\lib\ext;C:\Windows\Sun\Java\lib\ext 2023-07-14 09:02:08.895 ERROR 6772 --- [ main] com.zaxxer.hikari.pool.HikariPool : master - Exception during pool initialization. com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]”。 ClientConnectionId:275886a9-fcb1-451b-af33-3b3ea3195ee6

2023-07-15 上传