1 -- 创建一个数据库 2 create database DATA; 3 -- 删除数据库 4 Drop database DATA; 5 6 -- 创建数据库的时候,指定一些数据库的相关的参数,比如大小增长当时,文件保存路径 7 create database DATA 8 on primary --主数据文件* .mdf 9 ( 10 -- 数据库的逻辑名称 11 name= ' DATA ' , 12 filename= ' E:\DATA.mdf ' , 13 filegrowth= 10 %,-- 增长值 14 maxsize= 100mb 15 ) 16 log on 17 ( 18 name= ' DATA_log ' , 19 filename= ' E:\DATA.ldf ' , 20 size= 5mb, 21 filegrowth= 10 % , 22 maxsize= 50mb 23 ) 24 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 -- 删除一个表 37 drop table TblClass 38 39 -- 创建一个学生表 40 create table TblStudent 41 ( 42 stuId int identity( 1 , 1 ) primary key, 43 stuName nvarchar( 50 ) not null , 44 stuGender bit not null , 45 stuAddress varchar( 200 ), 46 stuPhone varchar( 50 ), 47 stuAge int , 48 stuBirthday datetime, 49 stuIdNumber varchar( 20 ), 50 stuClsId int 51 ) 52 53 --注意:bit类型,在写代码中用1或0来表示,不要用’ false ’,会进行类型转换的 54 -- 向TbleClass表插入单条数据 55 insert into TblClass(ClsName,ClsDesc) values( ' 高三一班 ' , ' 无此班 ' ) 56 57 -- 通过select语句来查询表中的所有数据 58 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 75 76 -- 如果我们只要表的结构,不需要表数据 77 select Top 0 * into NewTblClass from TblClass 78 79 80 -- 向一个已经存在的表中插入数据,数据的来源是另外的一张表 81 insert into NewTblClass(Clsname,ClsDesc) 82 select Clsname,ClsDesc from TblClass 83 84 85 -- 删除一条数据 86 delete from TblClass where ClsId= 4 87 88 -- 删除所有数据 89 90 delete from TblClass --此删除可用日记恢复! 后续在插入数据时主键Id续之前的。比如之前到10,删完之后在插一条主键Id是11 91 92 truncate table TblClass -- 此删除不可恢复,慎用!数据非常快,效果:如同新建一个表 93 94 -- 区别: 95 -- 1 .delete 语句删除数据的时候,自动编号没有恢复到默认值。但是truancate语句重新设置了自动编号 96 -- 2 .通过truncate语句删除表中的数据的时候,只能一次性都清空,不能根据条件来删除,而delete可以根据条件来删除。 97 -- 3 .truncate语句清空表中的数据时,速度(性能)比delete语句快的多的多的多。 98 -- 4 ..truncate语句不触发delete触发器。 99 100 -- 修改数据 101 update TblClass set ClsName= ' 三年二班 ' ,ClsDesc= ' 刚开班 ' where ClsId= 1 102 103 -- 注意在操作数据库之前一定要做备份 104 105 --逻辑运算符的优先级问题: not > and > or 106 107 delete from TblTeacher where tage= 19 or tage is null 108 109 110 111 -- 手动添加约束 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