|
1 --创建一个数据库
create database DATA;
2 --删除数据库
Drop database DATA;
6 --创建数据库的时候,指定一些数据库的相关的参数,比如大小增长当时,文件保存路径
create database DATA
on primary --主数据文件*.mdf
9 ( --数据库的逻辑名称
name='DATA',
filename='E:\DATA.mdf',
filegrowth=10%,--增长值
maxsize=100mb )
16 log on
17 ( name='DATA_log',
filename='E:\DATA.ldf',
size=5mb,
filegrowth=10%,
maxsize=50mb )
25 --切换数据库
26 use DATA
27 go
28 --创建一个班级表
29 create table TblClass
30
( 31 --列名,数据类型、约束(自动编号、主键、外键、默认值等等)
32 ClsId int identity(1,1) primary key,
33 ClsName nvarchar(50) not null,
34 ClsDesc nvarchar(100)
35 )
36 --删除一个表
drop table TblClass
39 --创建一个学生表
create table TblStudent
41 ( stuId int identity(1,1) primary key,
stuName nvarchar(50) not null,
stuGender bit not null,
stuAddress varchar(200),
stuPhone varchar(50),
stuAge int,
stuBirthday datetime,
stuIdNumber varchar(20),
stuClsId int )
53 --注意:bit类型,在写代码中用1或0来表示,不要用’false’,会进行类型转换的
54 --向TbleClass表插入单条数据
insert into TblClass(ClsName,ClsDesc) values('高三一班','无此班')
56
57 --通过select语句来查询表中的所有数据
select * from TblClass
59
60 --向TbleClass表插入多条数据
61 insert into TblClass(ClsName,ClsDesc)
62 select '高三二班','一般般' union all
63 select '高三四班','死一般' union all
64 select '高三五班','未开班'
65
66 --将一个表中的数据备份到另一个表中
67
68 --将TblClass表中的数据备份到newTblClass中
69 --这种写法会将TblClass表中的所有数据都插入到newTblClass表中
70 --前提是newTbleClass表不存在,如果存在则报错
71 select * into NewTblClass from TblClass
72
73 --将另一个数据库中的表备份到TblTeacher中
74 select * into TblTeacher from ItCastCn.dbo.TblTeacher
76 --如果我们只要表的结构,不需要表数据
77 select Top 0 * into NewTblClass from TblClass
78
79
80 --向一个已经存在的表中插入数据,数据的来源是另外的一张表
81 insert into NewTblClass(Clsname,ClsDesc)
82 select Clsname,ClsDesc from TblClass
85 --删除一条数据
86 delete from TblClass where ClsId=4
88 --删除所有数据
90 delete from TblClass --此删除可用日记恢复!后续在插入数据时主键Id续之前的。比如之前到10,删完之后在插一条主键Id是11
92 truncate table TblClass --此删除不可恢复,慎用!数据非常快,效果如同新建一个表
94 --区别:
95 --1.delete 语句删除数据的时候,自动编号没有恢复到默认值。但是truancate语句重新设置了自动编号
96 --2.通过truncate语句删除表中的数据的时候,只能一次性都清空,不能根据条件来删除,而delete可以根据条件来删除。 97 --3.truncate语句清空表中的数据时,速度(性能)比delete语句快的多的多的多。
98 --4..truncate语句不触发delete触发器
100 --修改数据
101 update TblClass set ClsName='三年二班',ClsDesc='刚开班' where ClsId=1
103 --注意在操作数据库之前一定要做备份
105 --逻辑运算符的优先级问题:not > and > or
107 delete from TblTeacher where tage=19 or tage is null
108 --手动添加约束
112 select * from Tblclass
113 --手动添加一列
114 alter table TblClass add ClsAge int
115 116 --删除一列
117 alter table TblClass drop Column ClsAge
118 119 --修改数据类型
120 alter table TblClass alter column ClsAge varchar(10)
121
122 --为一个表增加主键
123 alter table NewTblClass
124 add constraint PK_NewTblClass_ClsId primary key(ClsId)
125
126 --增加一个非空约束--其实就是修改列(要在该列不为空的情况下修改)
127 alter table TblClass
128 alter Column ClsAge varchar(10) not null
129
130 --增加一个唯一的约束
131 alter table TblClass
132 add constraint UQ_tblClass_ClsName unique(ClsName)
133
134 --添加一个默认约束
135 alter table TblClass
136 add constraint DF_TblClass_ClsAge default('18') for ClsAge
137
138 --添加一个检查约束;年龄在0-120之间
139 alter table TblClass
140 add constraint CK_TblClass_ClsAge check(ClsAge>=0 and ClsAge<=120)
141
142 --添加外键约束,
143 alter table TblStudent add ClsId int not null
144 alter table TblClass
145 add constraint PK_TblStudent_ClsId primary key(ClsId)
146
147 alter table TblStudent
148 add constraint FK_TblStudent_TblClass foreign key(ClsId)
149 references TblClass(ClsId) on delete cascade
150
151 --删除约束
152 alter table TblClass drop constraint FK_TblStudent_TblClass
153 --删除多条约束,约束名用逗号隔开
154 alter table TblClass drop constraint
155 FK_TblStudent_TblClass,
156 PK_TblStudent_ClsId,
157 CK_TblClass_ClsAge |
|