SQL基础1
<div id="cnblogs_post_body"><div class="cnblogs_code">1 --创建一个数据库2 create database DATA;3 --删除数据库4 Drop database DATA;5 6 --创建数据库的时候,指定一些数据库的相关的参数,比如大小增长当时,文件保存路径7 create database DATA8 on primary --主数据文件*.mdf9 ( 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 ( 42stuId int identity(1,1) primary key, 43stuName nvarchar(50) not null, 44stuGender bit not null, 45stuAddress varchar(200), 46stuPhone varchar(50), 47stuAge int, 48 stuBirthday datetime, 49stuIdNumber varchar(20), 50stuClsId int 51 ) 52 53 --注意:bit类型,在写代码中用1或0来表示,不要用&rsquo;false&rsquo;,会进行类型转换的 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 --删除一条数据 86delete from TblClass where ClsId=4 87 88--删除所有数据 89 90delete from TblClass--此删除可用日记恢复!后续在插入数据时主键Id续之前的。比如之前到10,删完之后在插一条主键Id是11 91 92truncate table TblClass--此删除不可恢复,慎用!数据非常快,效果:如同新建一个表 93 94--区别: 95 --1.delete 语句删除数据的时候,自动编号没有恢复到默认值。但是truancate语句重新设置了自动编号 96 --2.通过truncate语句删除表中的数据的时候,只能一次性都清空,不能根据条件来删除,而delete可以根据条件来删除。 97 --3.truncate语句清空表中的数据时,速度(性能)比delete语句快的多的多的多。 98 --4..truncate语句不触发delete触发器。 99100--修改数据101update TblClass set ClsName='三年二班',ClsDesc='刚开班' where ClsId=1102103 --注意在操作数据库之前一定要做备份104 105 --逻辑运算符的优先级问题:not > and > or106 107 delete from TblTeacher wheretage=19 or tage is null108 109 110 111 --手动添加约束112 select * from Tblclass113 --手动添加一列114 alter table TblClass add ClsAge int115 116 --删除一列117 alter table TblClass drop Column ClsAge118 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 TblClass128 alter Column ClsAge varchar(10) not null129 130 --增加一个唯一的约束131 alter table TblClass132 add constraint UQ_tblClass_ClsName unique(ClsName)133 134 --添加一个默认约束135 alter table TblClass 136 add constraint DF_TblClass_ClsAge default('18') for ClsAge137 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 null144 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 cascade150 151 --删除约束152 alter table TblClass drop constraint FK_TblStudent_TblClass153 --删除多条约束,约束名用逗号隔开154 alter table TblClass drop constraint 155 FK_TblStudent_TblClass,156 PK_TblStudent_ClsId,157 CK_TblClass_ClsAge
页:
[1]