金典 SQL笔记(6)

page223-索引

--利用SQL 语句创建索引

--CREATE INDEX 索引名称on 表名(字段 ,字段, 字段字段n)

--索引名称必须为唯一的,字段 ,字段, 同意一个到多个

--范例为T_person 表中给FName创建索引索引名为 idx_person_name

CREATE INDEX idx_person_name ON T_Person (FName)

--删除索引

--drop index 表名索引名

DROP INDEX T_person.idx_person_name

--非空约束

--在定义数据库的时候 ,默认情况下全部字段都是同意为空值的 ,

--假设须要在创建表的时候显示指定禁止一个字段为空的方式就是

--在字段定义后添加 not
null, 范比例如以下

--CREATE TABLE T_notNull(Fnumber
VARCHAR(20) NOT NULL,FName VARCHAR(20),FAge INT)

--唯一约束

--唯一约束又称为unique约束 ,它用于防止一个特定的列中俩个记录具有相同的值

--设置方式就是在字段定义后添加 unique

--CREATE TABLE T_UniqueTest(Fnumber VARCHAR(20) UNIQUE,FName VARCHAR(20),Fage INT)

--check约束

--check约束会检查输入到记录中的值是否满足一个条件 ,假设不满足这个条件则

--对数据库的改动不会成功

--比方一个人年龄不可能是负数 ,一个人的入学日期不可能早于出身日期 ,出厂月份

--不可能大于月能够在check条件中使用随意有效的 SQL表达式,check 约束对于插入 ,

--更新等随意对数据改动的操作都进行检查

--详细需求的check约束 ,依据需求百度,我开发至今都不怎么去使用 check,一方面客户

--不停的变更会不停的挑战 check,导致改动频繁,不有用測试数据插入变得麻烦

--check约束范例

CREATE TABLE CHECKTABLE(Fid INT,Fname VARCHAR(20 ),

Fage VARCHAR( 20) CHECK(Fage >0),

FWorkYear INT CHECK ( FWorkYear>0 ))

--主键约束

--因为每张表都要有主键,因此主键约束是很重要的 ,并且主键约束是外键关联的基础

--主键约束为表之间的关联提供了链接点

--主键必须可以唯一标识一条记录 ,也就是主键字段中的值必须是唯一的 ,并且不能包括

--NULL值从这样的意义来说,主键约束是 unique约束和非空约束的组合尽管一张表中能够

--有多个unique 约束和非空约束可是每一个表却仅仅能有一个主键约束

--字段后面添加primary
key

--主键约束范例:

CREATE TABLE PrimaryTable(Fid INT PRIMARY KEY, Fname VARCHAR( 20))

--外键约束

--当一些信息在表中反复出现的时候 ,我们就要考虑将他们提取到另外一张表中 ,

--然后在源表中引用新创建的表中的数据比方非常多作者都有不止一本著作 ,所以

--在保存书籍信息的时候,应该把作者信息放到单独的一张表 (然后把作者ID放到书籍表中 )

--范例格式: 
foreign key 外键字段references 外键表名 (外键表的主键字段)

--比方以下的SQL语句就是加入了外键约束 T_Author 表和T_Book 表的创建语句

CREATE TABLE T_AUTHOR(Fid VARCHAR(20 ) PRIMARY KEY, FName VARCHAR( 100)

,Fage INT ,FEmail VARCHAR (20));

CREATE TABLE T_BOOK(Fid VARCHAR(20 ) PRIMARY KEY, FName VARCHAR( 20)

,FPageCount INT ,FAuthorId VARCHAR (20)

,FOREIGN KEY ( FAuthorId) REFERENCES T_AUTHOR( Fid))

时间: 2024-10-14 04:39:59

金典 SQL笔记(6)的相关文章

金典 SQL笔记(3)

由于在本地笔记上写的.CSDN markdown编辑器仅仅支持.md格式导入, 图片没办法直接导进去.写的多了懒的一张一张图片切图上传; 直接整个文章切成图片上传上去了.

金典 SQL笔记(8)

------------------------文本方便拷贝------------------------ page269-301子查询 --子查询 --SQL允许将一个查询语句作为一个结果集供其他 SQL语句使用, 就像使用 --普通的表一样,被当做结果集的查询语句被称为子查询 --所有可以使用表的地方都可以使用子查询 ,比如select * from T --上面的T 就可以用子查询来代替 select * from (select * from T2 where --age >= 30)

金典 SQL笔记(1)

page(1-75) 主键最好是无意义的字段便于以后扩展. PS:假设以标书编码为主键,以后标书编码填错需要改的时候,关联表都需要跟着改.如果是一个无意义的自增字段是主键就无此原因. 主键最好不要设置为联合主键,否则降低效率,不利于扩展 PS:原文[联合主键可以解决表中没有唯一主键的问题,不过联合主键有如下缺点:] 1.效率低.在进行数据的添加.删除.查找及更新的时候,数据库系统必须处理俩个字段,这样大大降低了数据的处理速度. 2.使数据库的结构设计变得槽糕.组成联合主键的字段通常都是有业务含义

金典 SQL笔记(9)

page301-354其它解决方式 ---开窗函数 --測试数据及表 USE [NB] GO /****** 对象: Table [dbo].[T_Person2] 脚本日期: 08/14/2015 11:24:46 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[T_Person3] ( [FName] [varchar] (20) NULL,

金典 SQL笔记 SQL语句汇总

SELECT * FROM (SELECT ROW_NUMBER() OVER ( ORDER BY id) AS rowN,FNumber, FName,FSalary ,Fage FROM dbo. T_Employee) AS a WHERE a. rowN >=3 AND a. rowN <=5 SELECT distinct CREATEDate,state FROM dbo .TwodimensionalcodeHistory SELECT * FROM Twodimensiona

金典 SQL笔记(2)

因为在本地笔记上写的.CSDN markdown编辑器只支持.md格式导入, 图片没办法直接导进去.写的多了懒的一张一张图片切图上传; 直接整个文章切成图片上传上去了. 版权声明:本文为博主原创文章,未经博主允许不得转载.

金典 SQL笔记(4)

因为在本地笔记上写的.CSDN markdown编辑器只支持.md格式导入, 图片没办法直接导进去.写的多了懒的一张一张图片切图上传; 直接整个文章切成图片上传上去了. 版权声明:本文为博主原创文章,未经博主允许不得转载.

金典 SQL笔记(7)

附上文本方便拷贝 page247-表连接269 --表连接 --建表及测试数据 --T_Customer 客户信息表 --T_OrderType 订单类型 --T_Order 订单信息 CREATE TABLE T_Customer(Fid INT NOT NULL,FName VARCHAR(20 ) NOT NULL, Fage INT, PRIMARY KEY (Fid)) CREATE TABLE T_Order(Fid INT NOT NULL,FNumber VARCHAR(20 )

金典 SQL笔记(5)

版权声明:本文为博主原创文章,未经博主允许不得转载.