SQL基础1
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