一、表的操作
表:创建、修改、删除
通过select * from sysobjects where xtype='U'可以查看所有存在的表
多个列间使用逗号分隔
主键:primary key
非空:not null
惟一:unique
默认:default()
检查:check()
外键:foreign key(列名) references 表名(列名)
例如:--创建表
use practiceDB create table ClassInfo ( CId int not null primary key identity(1,1), CTitle nvarchar ) create table StudentInfo ( sId int not null primary key identity(1,1), sName nvarchar(10) not null, sGender bit default(0), sBirthday date, sPhone char(11), sEMail varchar(20), cid int not null, foreign key(cid) references ClassInfo(cid) )
二、表数据的操作
-》简单查询:select * from 表名
-》增加数据:insert into 表名(列名) values(值)
说明1:要求值的列名与值要位置对应
说明2:如果所有更都插入值,可以省略列名部分
扩展:一次性增加多行,可以直接在values后面拼接多个数据,之间用逗号分隔
-》修改数据:update 表名 set 列名1=值1,列名2=值2... where ...
-》删除数据:delete from 表名 where ...
清空:truncate table 表名
说明:from关键字可以省略不写
通常实现:逻辑删除,物理删除
where是进行 行筛选 的方式
举例:
在PracticeDB数据库中创造表UserInfo,并在表中进行插入数据,修改数据、删除数据操作。
use practiceDB create table UserInfo --创建UserInfo表 ( UserId int not null primary key identity(1,1), UserName nvarchar(10), UserPwd varchar(50) ) --------------------------------(1)插入数据------------------------ select * from UserInfo --注意自动增长得列不用赋值 insert UserInfo(UserName,UserPwd) values('鲁班','123') --为所有的列,按照默认顺序赋值,可以使用如下简写 insert UserInfo values('韩信','123') --为某些列赋值,而不是全部列 insert UserInfo(UserName) values('赵云') --------------------------------(2)修改数据------------------------ select * from UserInfo --为所有行的指定列进行修改 update UserInfo set UserPwd='admin' --为指定行进行修改列 update UserInfo set UserPwd='123' where UserId>1 update UserInfo set UserPwd=null --------------------------------(3)删除数据------------------------ delete UserInfo where UserId>4
truncate table userInfo---请空表中的所有数据
===========================================
truncate table student 的作用与delete from student一样,都是删除student表中的全部数据,
区别在于:
1.truncate语句非常高效。由于truncate操作采用按最小方式来记录日志,所以效率非常高。对于数百万条数据使用truncate删除只要几秒钟,而使用delete则可能耗费几小时。
2.truncate语句会把表中的自动编号重置为默认值。
3.truncate语句不触发delete触发器。
三、常用辅助命令及快捷键
set statistics time on/off:在消息栏显示详细执行时间
ctrl+e执行
ctrl+r隐藏消息栏
ctrl+l计划任务,对sql语句进行分析