数据库管理之数据表管理(2)

约束

1 增加约束

ALTER  TABLE  表名
ADD  CONSTRAINT  约束名  约束类型  具体的约束说明

--添加主键约束(将AuthorID作为主键)
alter table Authors
add constraint pk_AuthorID primary key(AuthorID)

--添加默认约束(性别默认值为1)
alter table Authors
add constraint DF_Sex DEFAULT(1) for Sex

--添加检查约束(电子邮箱必须包含@)
alter table Authors
add constraint CK_Emial Check(Email like ‘%@%‘)

2 删除约束

ALTER TABLE 表名 DROP  CONSTRAINT  约束名

--删除约束DF_Sex
alter table Authors drop constraint DF_Sex

3 使用NOCHECK CONSTRAINT

子句使约束无效

ALTER TABLE 表名

    NOCHECK CONSTRAINT 约束名 |

    CHECK CONSTRAINT约束名

注意:该子句只对外键约束和检查约束起作用

添加列

ALTER TABLE 表名 ADD 列名 数据类型[(长度)] [NULL | NOT NULL]

若向已存在记录的表中添加列,新添加的列可以设置允许为空;若不允许为空,则需指定默认值

删除列

ALTER TABLE 表名 DROP COLUMN 字段名 [, ……]

在删除列时,必须先删除基于该列的索引和约束后,才能删除该列

修改列

ALTER TABLE 表名 ALTER COLUMN 列名 数据类型[(长度)] [NULL | NOT NULL]

在默认状态下,列可以被设置为空值,将一个原来允许为空值的列改为不允许为空值时,必须满足列中没有存放空值的记录以及在列上没有创建索引

注意:数据类型的范围设置可以比原来大,也可以比原来小,但是如果里面有数据存在,则对应的数据类型范围必须比原来大

创建索引

1 语法

CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED]  INDEX   index_name

ON table_name (column_name…)

[WITH FILLFACTOR=x]

UNIQUE 表示唯一索引,可选

CLUSTERED NONCLUSTERED 表示聚集索引还是非聚集索引,可选

FILLFACTOR 表示填充因子,指定一个0到100之间的值,该值指示索引页填满的空间所占的百分比

2 示例

在工资表的jbgz列创建索引

USE booksmanager
GO
IF EXISTS (SELECT name FROM sysindexes WHERE name = ‘IX_jbgz‘)
   DROP INDEX IX_jbgz
/*--创建非聚集索引:填充因子为30%--*/
CREATE NONCLUSTERED INDEX IX_jbgz
ON 工资表(jbgz)
WITH FILLFACTOR= 30
GO
/*-----指定按索引 IX_jbgz 查询----*/
SELECT * FROM 工资表  with (INDEX=IX_jbgz)
WHERE jbgz BETWEEN 2000 AND 3000

删除索引

USE booksmanager
GO
IF EXISTS (SELECT name FROM sysindexes WHERE name = ‘IX_jbgz‘)
   DROP INDEX IX_jbgz
时间: 2024-11-08 03:22:20

数据库管理之数据表管理(2)的相关文章

数据库管理之数据表管理(1)

数据类型 创建数据表 语法 CREATE TABLE 表名 ( 字段名1 数据类型 列的属性 列约束, 字段名2 数据类型 列的属性 列约束, 字段名3 数据类型 列的属性 列约束, - ) 列属性的格式: [NULL|NOT NULL] [IDENTITY(标识种子, 标识增量)] 列约束的格式: [CONSTRAINT 约束名] PRIMARY KEY[(列名)] [CONSTRAINT 约束名] UNIQUE [(列名)] [CONSTRAINT 约束名] [FOREIGEN KEY[(外

SqlCollections - 数据表管理

1 --==============================数据表管理=============================== 2 --特殊字符的输入 3 --Tab: char(9) 4 --换行: char(10) 5 --回车: char(13) 6 7 --varchar(n):1个字符占1个字节:nvarchar(n):1个字符占2个字节 8 --'我是Sky'存在varchar字段中,占7个字节:存在nvarchar中,占10个字节 9 10 --创建新表,并指定主键.

mysql 超大数据/表管理技巧

如果你对长篇大论没有兴趣,也可以直接看看结果,或许你对结果感兴趣.在实际应用中经过存储.优化可以做到在超过9千万数据中的查询响应速度控制在1到20毫秒.看上去是个不错的成绩,不过优化这条路没有终点,当我们的系统有超过几百人.上千人同时使用时,仍然会显的力不从心. 目录: 分区存储 优化查询 改进分区 模糊搜索 持续改进的方案 正文: 分区存储 对于超大的数据来说,分区存储是一个不错的选择,或者说这是一个必选项.对于本例来说,数据记录来源不同,首先可以根据来源来划分这些数据.但是仅仅这样还不够,因

数据表管理admin

知识预览 admin组件使用 admin源码解析 回到顶部 admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTALLED_APPS 看到它: # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.c

数据库系列学习(二)-数据表的创建和管理

1.数据类型 A:整数类型 bit,int,smallint,tinyint [与操作系统位数有关] B:数值类型 decimal,numeric,money,smallmoney,float,real [可存小数] C:字符相关类型 char,varchar,text,nchar,nvarchar,ntext D:日期时间类型 datetime(精确到0.01秒),smalldatetime(精确到分钟),timestamp E:二进制类型 image [经图片,视频转为二进制,保存到数据库]

数据表的创建与管理

在数据库中通过数据表来存放记录,在数据表中经常会碰到主外键,索引,约束等条件,下面就详细一下. 主键 一张数据表中唯一的标识,确保一张数据表中不会出现两个完全相同的数据记录. 主键可以定义在多个列上,也就是说在定义数据库的时候可以将数据表中的多个列合并在一起作为该表的主键 外键 用来表与表之间关系的.如果字段F是表B中的字段,而且是表A的主键的话,那么列F就是表B的外键.用来执行增 删改查的时候,两张表一致性. 外键删除时,对应的表中的记录也应该做出相应的调整,分为三种方式 1.CASCADE:

SQL笔记-第二章,数据表的创建和管理

数据类型 分5类:整数.数值.字符相关.日期时间以及二进制 1.整数 数据库系统 类型 说明 MYSQL tinyint [unsigned] 一个很小的整数.有符号的范围是-128 到127,无符号的范围是0 到255. smallint [unsigned] 一个小整数.有符号的范围是-32768到32767,无符号的范围是0 到65535. mediumint [unsigned] 一个中等大小整数.有符号的范围是-8388608到8388607,无符号的范围是0到16777215. in

MySQL之终端(Terminal)管理数据库、数据表、数据的基本操作

sudo /Applications/XAMPP/xamppfiles/bin/mysql.server start /Applications/XAMPP/xamppfiles/bin/mysql -h localhost -u root -p; http://www.cnblogs.com/GarveyCalvin/p/4297282.html#createDatabase 1. mysql> select version(); +-----------+ | version() | +--

权限管理数据表设计说明

权限管理数据表设计说明 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个"非法用户"很可能就能通过浏览器轻易访问到B/S系统中的所有功能.因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的"非法用户"将会将他们彻底