SQL基础1 Carl

  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
原文地址:https://www.cnblogs.com/sc0791/p/2653063.html