1. 写一下简单sql语句 见补充 快 在线
--1
CREATE TABLE [dbo].[学生情况表](
[学号] [char](7) COLLATE Chinese_PRC_CI_AS NOT NULL,
[姓名] [char](8) COLLATE Chinese_PRC_CI_AS NOT NULL,
[性别] [char](4) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_学生情况表_性别] DEFAULT ('男'),
[出生日期] [smalldatetime] NOT NULL,
[班级] [char](5) COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_学生情况表_班级] DEFAULT ((1)),
[总学分] [tinyint] NULL CONSTRAINT [DF_学生情况表_总学分] DEFAULT ((0)),
[备注] [text] COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_学生情况表] PRIMARY KEY CLUSTERED
(
[学号] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
--2
CREATE TABLE [dbo].[课程表](
[课程号] [char](3) COLLATE Chinese_PRC_CI_AS NOT NULL,
[课程名] [char](20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[开课学期] [tinyint] NOT NULL CONSTRAINT [DF_课程表_开课学期] DEFAULT ((1)),
[学时] [tinyint] NOT NULL,
[学分] [tinyint] NOT NULL CONSTRAINT [DF_课程表_学分] DEFAULT ((0)),
CONSTRAINT [PK_课程表] PRIMARY KEY CLUSTERED
(
[课程号] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
--3
CREATE TABLE [dbo].[学生与课程表](
[学号] [char](7) COLLATE Chinese_PRC_CI_AS NOT NULL,
[课程号] [char](3) COLLATE Chinese_PRC_CI_AS NOT NULL,
[成绩] [tinyint] NULL CONSTRAINT [DF_学生与课程表_成绩] DEFAULT ((0)),
[学分] [tinyint] NULL CONSTRAINT [DF_学生与课程表_学分] DEFAULT ((0)),
CONSTRAINT [PK_学生与课程表] PRIMARY KEY CLUSTERED
(
[学号] ASC,
[课程号] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[课程表] WITH CHECK ADD CONSTRAINT [check_kkxq] CHECK (([开课学期]>=(1) AND [开课学期]<=(8)))
GO
ALTER TABLE [dbo].[课程表] CHECK CONSTRAINT [check_kkxq]
GO
ALTER TABLE [dbo].[学生与课程表] WITH CHECK ADD CONSTRAINT [FK_学生与课程表_课程表] FOREIGN KEY([课程号])
REFERENCES [dbo].[课程表] ([课程号])
GO
ALTER TABLE [dbo].[学生与课程表] CHECK CONSTRAINT [FK_学生与课程表_课程表]
GO
ALTER TABLE [dbo].[学生与课程表] WITH CHECK ADD CONSTRAINT [FK_学生与课程表_学生情况表] FOREIGN KEY([学号])
REFERENCES [dbo].[学生情况表] ([学号])
GO
ALTER TABLE [dbo].[学生与课程表] CHECK CONSTRAINT [FK_学生与课程表_学生情况表]
GO
ALTER TABLE [dbo].[学生与课程表] WITH CHECK ADD CONSTRAINT [check_score] CHECK (([成绩]>=(0) AND [成绩]<=(100)))
GO
ALTER TABLE [dbo].[学生与课程表] CHECK CONSTRAINT [check_score]
2. sql语句解释
SET ANSI_NULLS ON--文字编码ANSI_NULLS开
GO --执行
SET QUOTED_IDENTIFIER ON--文字必须由单引号分隔 开
GO--执行
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[messages]') AND type in (N'U'))--假如在系统目标表里没有一个用户表叫做messages就做
BEGIN--if模块开始
CREATE TABLE [dbo].[messages](--创建表messages
[id] [int] IDENTITY(1,1) NOT NULL, --列id,数字类型,从1开始,每次张一个,不能空着,自己长
[name] [varchar](20) NOT NULL,-- 列name,字符串20个,不能空着
[emails] [nchar](50) NOT NULL,--列emails,变换字符串50个,不能空着
[contents] [text] NOT NULL,--列contents,文本类型,不能空着
[datatimes] [datetime] NOT NULL CONSTRAINT [DF__mes__time__7D78A4E7] DEFAULT (getdate()),--列datatimes,不能空着,约束规则 [DF__mes__time__7D78A4E7] 默认日期为当天
CONSTRAINT [PK__mes__7C8480AE] PRIMARY KEY CLUSTERED --主键约束类型 [PK__mes__7C8480AE]
(
[id] ASC--列id升序排列
)WITH (PAD_INDEX = OFF, --指定索引填充关
STATISTICS_NORECOMPUTE = OFF,--指定是否重新计算分发统计信息关
IGNORE_DUP_KEY = OFF, --指定在插入操作尝试向唯一索引插入重复键值时的错误响应关
ALLOW_ROW_LOCKS = ON, --指定是否允许行锁开,就是允许行锁
ALLOW_PAGE_LOCKS = ON --指定是否允许使用页锁开。
) ON [PRIMARY]--with里的重点完了
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]--允许一些超大值的东西放在文件组里。
END--if模块结束
这是谁写的啊!!写那么多开关!!!!!
我要是记错了,或者写错了,别喷我。
3. 数据库中常用的sql语句有哪些
1.检索数据
SELECT prod_nameFROM Procts;
#检索单列
SELECT prod_id, prod_name, prod_priceFROMProcts;
#检索多列
SELECT * FROM Procts;
#检索所有列
SELECT DISTINCTvend_id FROMProcts;
#检索不同的值
SELECTprod_name FROM Procts LIMIT 5;
#返回不超过5行数据
SELECTprod_name FROM Procts LIMIT 5 OFFSET 5;
#返回从第5行起的5行数据。LIMIT指定返回的行数,LIMIT带的OFFSET指定从哪儿开始。
2.排序检索数据
SELECTprod_name
FROMProcts
ORDER BYprod_name;
#排序数据
SELECT prod_id, prod_price, prod_name
FROMProcts
ORDER BY prod_price, prod_name;
#按多个列排序
SELECT prod_id, prod_price, prod_name
FROMProcts
ORDER BY 2, 3;
#按列位置排序,第三行表示先按prod_price, 再按prod_name进行排序
SELECT prod_id, prod_price, prod_name
FROMProcts
ORDER BY prod_priceDESC, prod_name;
#prod_price列以降序排序,而prod_name列(在每个价格内)仍然按标准的升序排序
3.过滤数据
SELECT prod_name, prod_price
FROMProcts
WHERE prod_price< 10;
#检查单个值
SELECT prod_name, prod_price
FROMProcts
WHERE vend_id <> ‘DLL01’;
#不匹配检查
SELECT prod_name, prod_price
FROMProcts
WHERE prod_priceBETWEEN 5 AND 10;
#范围值检查
SELECT cust_name
FROMCUSTOMERS
WHERE cust_emailIS NULL;
#空值检查
4.高级数据过滤
SELECTprod_id, prod_price, prod_name
FROMProcts
WHERE vend_id = ‘DLL01’ANDprod_price <= 4;
#AND操作符
SELECTprod_name, prod_price
FROMProcts
WHEREvend_id=’DLL01’ OR vend_id=’BRS01’;
#OR操作符
SELECTprod_name, prod_price
FROMProcts
WHERE (vend_id = ’DLL01’ORvend_id=’BRS01’)
ANDprod_price >= 10;
#求值顺序 AND的优先级高于OR
SELECTprod_name, prod_price
FROMProcts
WHERE vend_idIN (‘DLL01’,’BRS01’)
ORDER BY prod_name;
#IN操作符
SELECT prod_name
FROMProcts
WHERE NOTvend_id = ‘DLL01’
ORDER BY prod_name;
#NOT 操作符
SELECT prod_name
FROMProcts
WHEREvend_id <> ‘DLL01’
ORDER BY prod_name;
#NOT 操作符
4. SQL 数据库中常用的一些语句。。。归类下
一、基础
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:备份sql server
--- 创建 备份数据的 device
USE master
EXEC sp_admpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 开始 备份
BACKUP DATABASE pubs TO testBack
4、说明:创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2... from tab_old definition only
5、说明:删除新表
drop table tabname
6、说明:增加一个列
Alter table tabname add column col type
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:添加主键: Alter table tabname add primary key(col)
说明:删除主键: Alter table tabname drop primary key(col)
8、说明:创建索引:create [unique] index idxname on tabname(col....)
删除索引:drop index idxname
注:索引是不可更改的,想更改必须删除重新建。
9、说明:创建视图:create view viewname as select statement
删除视图:drop view viewname
10、说明:几个简单的基本的sql语句
选择:select * from table1 where 范围
插入:insert into table1(field1,field2) values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like '%value1%' ---like的语法很精妙,查资料!
排序:select * from table1 order by field1,field2 [desc]
总数:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
11、说明:几个高级查询运算词
A: UNION 运算符
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
B: EXCEPT 运算符
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
C: INTERSECT 运算符
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
12、说明:使用外连接
A、left outer join:
左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
B:right outer join:
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:full outer join:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
二、提升
1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
法一:select * into b from a where 1<>1
法二:select top 0 * into b from a
2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)
insert into b(a, b, c) select d,e,f from b;
3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)
insert into b(a, b, c) select d,e,f from b in '具体数据库' where 条件
例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..
4、说明:子查询(表名1:a 表名2:b)
select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)
5、说明:显示文章、提交人和最后回复时间
select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
6、说明:外连接查询(表名1:a 表名2:b)
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
7、说明:在线视图查询(表名1:a )
select * from (SELECT a,b,c FROM a) T where t.a > 1;
8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 数值1 and 数值2
9、说明:in 的使用方法
select * from table1 where a [not] in ('值1','值2','值4','值6')
10、说明:两张关联表,删除主表中已经在副表中没有的信息
delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )
11、说明:四表联查问题:
select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....
12、说明:日程安排提前五分钟提醒
SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())>5
13、说明:一条sql 语句搞定数据库分页
select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段
14、说明:前10条记录
select top 10 * form table1 where 范围
15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表
(select a from tableA ) except (select a from tableB) except (select a from tableC)
17、说明:随机取出10条数据
select top 10 * from tablename order by newid()
19、说明:删除重复记录
Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)
20、说明:列出数据库里所有的表名
select name from sysobjects where type='U'
23、说明:初始化表table1
TRUNCATE TABLE table1
24、说明:选择从10到15的记录
select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc
5. 请问谁知道SQL语句有哪些、数据库表及索引具体是什么
嗯,我以前学习的时候做了些笔记,希望对你有帮助。
1、使用create database 命令建立简单的数据库:
Eg:create database 学生管理
On primary
(name=学生管理_data1,
Filename=’H:\SQL\学生管理_data1.mdf’,
Size=2MB,
Maxsize=10MB,
Filegrowth=2%),
Filegroup p1
(name=学生管理_data2,
Filename=’H:\SQL\学生管理_data2.ndf’,
Size=1MB,
Maxsize=9MB,
Filegrowth=2MB),
(name=学生管理_data3,
Filename=’H:\SQL\学生管理_data3.ndf’,
Size=5MB,
Maxsize=49MB,
Filegrowth=12MB),
Filegroup p2
(name=学生管理_data4,
Filename=’H:\SQL\学生管理_data4.ndf’,
Size=5MB,
Maxsize=49MB,
Filegrowth=12MB)
Log on
(name=学生管理_log1,
Filename=’H:\SQL\学生管理_log1.ldf’,
Size=5MB,
Maxsize=49MB,
Filegrowth=12MB),
(name=学生管理_log2,
Filename=’H:\SQL\学生管理_log2.ldf’,
Size=2MB,
Maxsize=32MB,
Filegrowth=1%)
——所有符号必须在英文状态下输入
2、更改数据库名称:
Execute sp_renamedb ‘old_name’,’new_name’
Eg: execute sp_renamedb '学生管理','students'
execute sp_rename 'students','学生管理','database'
3、更改数据库所有者:
Execute sp_changedbowner ‘用户名’
4、删除数据库:
Drop database 数据库名
Eg: drop database 学生管理
5、分离数据库:
Execute sp_detach_db ‘dbname‘,’逻辑值’—— ‘dbname‘为数据库名,’逻辑值’为“true”时表示执行updata statistics;’逻辑值’为“false”时表示不执行updata statistics
Eg: execute sp_detach_db '学生管理'
6、附加数据库:
Execute sp_attach_db ‘dbname‘ ,’filename1’,’filename2’....——filename为数据文件与日志文件的物理文件名
Eg: execute sp_attach_db '学生管理',--附加数据库
'H:\SQL\学生管理_data1.mdf',
'H:\SQL\学生管理_data2.ndf',
'H:\SQL\学生管理_log1.ldf'
7、数据类型:
(1)字符数据:char(n) varchar(n) text
(2)整数数据:bigint 8字节;int 4字节;
smallint 2字节;tinyint 1字节
(3)精确数字:decimal(p,s) numeric(p,s)
P代表精度=整数部分的长度+小数部分的长度;s代表小数位数
(4)货币数据:money 8字节 大约表示900万亿;
smallmoney 4字节 大约表示21万
(5)日期和时间数据:datatime 8字节 1753/01/01—9999/12/31;
smalldatatime 4字节 1900/01/01—2079/01/06
8、创建表:
Create table table_name
(columu_name datatype [null/not null] [identity(种子,递增量)], columu_name datatype [null/not null].....)—自动编号的类型必须是int/bigint/smallint/tingint或decimal/numeric
Eg: create table 学生
(学号 char(11) not null ,
编号 int not null identity(1,1),
姓名 varchar(8) ,性别 char(2) default '男',
院系 char(20), 电话 char(11), 照片 image ,
备注 text) on filegroup1--(指定所保存的文件组)
Textimage_on filegroup2--(指定文本文件所保存的地方)
9、使用alter table命令修改表结构:
(1)、更改现有列的类型(更改现有字段的特性)
Alter table tabble_name
Alter column column_name new_datatype[p,s][null/not null]
Eg: alter table 学生
alter column 电话 varchar(20) not null
(2)、更改数据库名、表名、列名:
更改数据库名:execute sp_rename ‘old_name’,’new_name’, ‘database’
更改表名: execute sp_rename ‘old_name’,’new_name’, ‘object’
更改列名: execute sp_rename ‘old_name’,’new_name’, ‘column’
更改索引名: execute sp_rename ‘old_name’,’new_name’, ‘index’
(3)、向表中添加新列(一次可以向表中添加多个列)
Alter table table_name
Add column_name data_type identity(种子,增量)
Eg:alter table 学生
add 住址 varchar
(4)、删除现有的列:(一次可以删除多个)
Alter table table_name
Drop column column_name, column_name, column_name...
Eg: alter table 学生
drop column 班级,住址
10、使用drop table 命令删除表:(一次可以删除多个表)
Drop table table_name, table_name, table_name...
11、创建和维护check约束(用户定义完整性):
(1)、创建check约束:
Eg:create table 员工(列级约束,可以直接放列后面,也可放最后)
(职工编号 int identity(1000,1) not null , 姓名 varchar(16) not null, 基本工资 money not null constraint ck_基本工资 check(基本工资>500), 津贴 money not null,
住房补贴 money not null constraint ck_住房补贴 check(津贴+住房补贴>300))
Eg:(表级约束):alter table 职工
Add
constraint ck_住房补贴 check(津贴+住房补贴>300)
(2)、删除check约束:
Alter table table_name
Drop constraint 约束名1,约束名2,约束名3。。
12、创建和维护primary key(实体完整型/主码) 约束:(同check约束用法一样)
Eg:create table 系
(系名 varchar(11), 系编号 char(2) constraint pk_系primary key)
或:create table 成绩
(学号 char(11),课程编号 char(3),
分数 tinyint ,primary key(学号,课程编号))
添加:alter table 学生
add constraint pk_学生 primary key (学号)
13、创建和维护foreign key(参照完整型/建立各表之间的连接)约束:
(1)、创建foreign key约束:
Eg:create table table_name
(。。。constraint FK_子表_父表 foreign key reference 表(列))
14. 创建和维护index索引
(1)、创建约束 :
create [unique|nonunique][clustered|non clustered]
index 索引名(ix_表名) on table_name(列1,列2。。。)
[with][ pad_index][,fillfactor=N(填充值)][,ignore_p_key][,drop_exsiting][on 文件组名]
Eg; create index ix_学生 on 学生(学号)
[with pad_index ,fillfactor=40]
(2)、删除约束:
Drop index 表名.索引名1,表名.索引名2。。。
Eg: drop index 学生.ix_学生
(3)、修改已存在索引的相关设置:
create [unique|nonunique][clustered|non clustered]
index 索引名(ix_表名) on table_name(列1,列2。。。)
[with][ pad_index][,fillfactor=N(填充值)][,ignore_p_key] drop_exsiting [on 文件组名]
Eg:create unique index ix_学生 on 学生(学号)
[with pad_index ,fillfactor=50,]
drop_existing
15.数据记录的添加、修改、和删除
(1)、删除记录:
Delete 表名[where条件]
Eg:delete 学生 where 姓名 = '王平'
(2)、添加记录:
insert [into] 表名 (列名1,列名2,列名3。。。)
values(表达式1,表达式2,表达式3。。。)
Eg: insert into 学生
values('20090223001','张三','男','营销093','团员','班长')
insert into 学生
values('20090223003','王平','女','营销093','团员','同学')
(3)、修改记录:
Update 表名
Set列名=表达式 [where 条件]
Eg: update 学生
set 奖学金=奖学金+200
16、连接查询:
(1)、inner join 连接
Eg:select 学生.学号,姓名,课程.课程号,成绩
From 学生 inner join 选课 inner join 课程(一对多联系)
On选课.课程编号=课程.课程编号
On学生.学号=选课.学号
——(on后的顺序刚好与inner join的顺序相反)
(2)、from连接
Eg:select 学生.学号,姓名,课程.课程号,成绩
From 学生,选课,课程
Where 选课.课程编号=课程.课程编号
And 学生.学号=选课.学号
(3)group by ,having(一般一起用)
Eg:Select学号,姓名
From 学生, 成绩
Where学生.学号=成绩.学号
Group by 学号,姓名
Having count(*)>10
(4)、order by,top(一般一起用)
Top n[percent][with ties]
Order by [asc\desc] 默认为asc
Eg:select top 10 percent with ties 学号,姓名,年龄
From 学生
Order by 年龄
6. 几条SQL的语句,求解释。具体见问题补充
根据楼主的判断 估计前面的都没有问题了 我主要解释下后面的部分
从倒数第5行,是建立一个默认约束 约束名是[DF_Student_login_sl_ifclass] 默认值是0
倒数第4行 ,把[s_id] 设为主键 并在此主键上建立聚集索引 索引名是[PK_Student_login]
后面就是一些补充 我们写脚本的时候 都不写这个 这个是生成脚本时 有的
pad_index:指定索引中间级中每个页(节点)上保持开放的空间
ALLOW_ROW_LOCKS:允许行锁
ALLOW_PAGE_LOCKS:允许页锁
这些意义都不大 默认就行了 不用太纠结
希望采纳 祝楼主学习进步
7. SQL 语句怎么写
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[表名](
[Id] [int] IDENTITY(1,1) NOT NULL,
[TeaName] [varchar](50) NULL,
[Tel] [varchar](max) NULL,
[UserName] [varchar] NULL,
[UserPwd] [int] NULL,
[UserType] [varchar](10) NULL,
CONSTRAINT [PK_表名] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
不知道对不对,其他各个表相应的表名、列名、主键自行更改。
8. Sql建表语句中不明的字符串
约束那段是对 主键 属性的 (attendanceid asc)
with(pad_index=off,statistics_norecompute=off,ignore_p_key=off,all_row_locks=on,allow_page_locks=on)on primary
PAD_INDEX
指定填充索引的内部节点的行数,至少应大于等于两行。PAD_INDEX 选项只有在FILLFACTOR 选项指定后才起作用。因为PAD_INDEX 使用与FILLFACTOR 相同的百分比。缺省时,SQL Server 确保每个索引页至少有能容纳一条最大索引行数据的空闲空间。如果FILLFACTOR 指定的百分比不够容纳一行数据S,QL Server 会自动内部更改百分比。
STATISTICS_NORECOMPUTE
指定分布统计不自动更新。需要手动执行不带NORECOMPUTE 子句的UPDATESTATISTICS 命令。
IGNORE_DUP_KEY
此选项控制了当往包含于一个惟一约束中的列中插入重复数据时SQL Server 所作的反应。当选择此选项时,SQL Server 返回一个错误信息,跳过此行数据的插入,继续执行下面的插入数据的操作:当没选择此选项时,SQL Server 不仅会返回一个错误信息,还会回滚(Rolls Back)整个INSERT 语句
all_row_locks
是否允许行锁
allow_page_locks
是否允许页面锁
当然 on 和 off 就是打开 和 关闭了
9. 三、 用SQL的有关语句定义:
仅看三表
主键
Number,
Idno,
身份证号码Idno、航班号Number
外键
身份证号码Idno、航班号Number
索引例子
/*例5-19 为db数据库中的表student创建了一个唯一聚集索引。*/
/*程序清单如下:*/
Use db
CREATE UNIQUE CLUSTERED INDEX [id_index] ON student (id)
with
pad_index,
fillfactor=20,
ignore_p_key,
drop_existing,
statistics_norecompute