T-SQL笔记总结(1)

--1、创建一个数据库

createdatabase School;

--删除数据库

dropdatabase School;

--创建一个数据库的时候,指定一些数据库的相关参数,比如大小,增长方式,文件保存的路径

createdatabase School

onprimary --主数据文件*.mdf

(

  --数据库的逻辑名称

  name='school',

  size=10Mb,

  filename='c:\school.mdf',

  filegrowth=10%,

  maxsize=100mb

)

log on--日志文件*.ldf

(

  name='School_log',

  filename='c:\school.ldf',

  size=5mb,

  filegrowth=2mb,

  maxsize=50mb

) 

--切换数据库

useSchool --点击F5执行SQL语句,先选中再执行

 

--====================为数据库创建表================

--1、创建一个班级表

createtable TblClass

(

  --创建好了一列

  --列名,数据类型,约束(自动编号)identity

  ClsId intidentity(1,1)primary key,

  ClsName varchar(50)not null,

  ClsDesc varchar(500)

)

 

--删除TblClass

droptable TblClass;

 

 

--创建一个TblStudent

createtable TblSudent

(

  stuId intidentity(1,1)primary key,

  stuName nvarchar(50)not null,

  stuGender bitnot null,

  stuAddress varchar(200),

  stuPhone varchar(50),

  stuAge int,

  stuBirthday datetime,

  stuIdNumber varchar(20),--身份证号码

  stuClsId int

) 

--通过sql语句向TblClass表中插入数据

insertinto TblClass(ClsName,ClsDesc)

values('黑马三期','没有二期牛B')

--通过select语句来查询表中的数据

selectClsName,ClsDesc,ClsIdfrom TblClass

select*fromTblClass

--控制窗口的显示与隐藏

--ctrl+R 

--=======================================

createdatabase TestSchool

onprimary

(

  name='TestSchool',

  filename='c:\练习存放路径\db\TestSchool.mdf',

  size= 10mb,

  maxsize=100mb,

  filegrowth=10%

) 

log on

(

  name='TestSchool_log',

  filename='c:\练习存放路径\db\TestSchool.ldf',

  size=5mb,

  maxsize=50mb,

  filegrowth=1mb

)

GO

--创建学生成绩表TblScore

--tScoreId(成绩id,主键,自动编号)tSId(学生编号)tEnglish(英语成绩)

createtable TblScore

(

  tScoreId intidentity(1,1)primary key,

  tsid intnot null,

  tEnglish float,

)

Go

 

--创建老师表TblTeacher

--tTIdtTNametTGendertTSalarytTBirthday 

createtable TblTeather

(

  tTId intidentity (1,1) primarykey,

tTName varchar (50),

tTGender bit default(1),

tage int ,

tTSalary money,

tTBirthday datetime

)

Go

 

useTestSchool

 

--跨数据库访问:数据库..表名

select* intomyteacher from School..TblTeather

 

 

--2013/8/4

useSchool

 

--

select*fromTblTeather

--1、最基本的插入

insertinto Tblteather(ttname,ttgender,tage,ttsalary,ttbirthday)

values('小明',1,18,10000,'2010-09-9')

 

--2、只向某列插入数据,这时的前提是其他列可以为空(null)或有默认值,否则报错

insertinto TblTeather(ttname,ttsalary)

values('张三',50000)

 

insertinto Tblteather(ttname,ttgender,tage,ttsalary,ttbirthday)

values(N'王五',1,18,100020,2011-09-9)

 

insertinto Tblteather(ttname,ttgender,tage,ttsalary,ttbirthday)

values(N'李四',1,18,11111100,'2010-09-9') --(非英语字符前加N是为了防止乱码)

 

--当向表中的出除自动编号外的所有其他列都插入数据的时候,这时可以省略列名

insertinto Tblteather

values('李四',1,18,11111100,'2010-09-9')

 

--3.为自动编号插入值

setIDENTITY_INSERT TblTeatheron --打开

insertinto TblTeather(ttid,ttname,ttsalary)

values(100,'bob',34549084)

setIDENTITY_INSERT TblTeatheroff --关闭

 

insertinto TblTeather(ttname,ttsalary)

values('bob',34549084)

 

--insert into...vlaues 这种写法每次只能插入一条数据

 

insertinto TblTeather

select'Chris',1,20,2334244,'1988-9-9' union

select'James',1,20,2334244,'1990-9-9' union

select'Tom',1,20,2334244,'1998-9-9'

Go

 

--union关键字本身就具有去掉重复的意思。

--union\union all

insertinto TblTeather

select'Chris',1,20,2334244,'1988-9-9' union all

select'James',1,20,2334244,'1990-9-9' union all

select'Tom',1,20,2334244,'1998-9-9'  unionall

select'Chris',1,20,2334244,'1988-9-9' union all

select'James',1,20,2334244,'1990-9-9' union all

select'Tom',1,20,2334244,'1998-9-9' union all

select'Chris',1,20,2334244,'1988-9-9' union all

select'James',1,20,2334244,'1990-9-9' union all

select'Tom',1,20,2334244,'1998-9-9'

 

 

--将一个表中的数据备份到另一个表中

select* fromTblTeather

 

--TblTeather表中的数据备份到NewTblTeather

--这种写法会将TblTeather表中的所有数据偶读插入到NewTblTeather表中

--前提是NewTblTeather表不存在,如果这个表存在则报错

select*intoNewTblTeather from TblTeather

 

select*fromNewTblTeather

 

--向一个已经存在的表重插入数据,数据来源是另一张表。

 

insertinto NewTblTeather(ttname,tage)

selectttname,tage fromTblTeather

 

 

createtable t3 --只能create(创建)一次

(

  autoId intidentity(1,1),

  uname varchar(30)

)

 

--修改表中的列语法

altertable T3 alter columnuname nvarchar(50)

 

--drop table t3

 

--==========================更新语句================================

select*fromTblTeather

--将所有年龄小于岁的年龄都改成

updateTblTeather set tage=19 wheretage<20

 

--将年龄为岁的人的年龄+1

updateTblTeather set tage=tage+1where tage=20

 

--把所有人的工资都改成 (注意:记得写where条件!!!)

updateTblTeather set ttsalary=2000

 

--1、对数据操作前,一定要做备份

--2、要细心

 

--把表中所有的年龄为19岁的同学的姓名两边加个,性别=女,工资都+500

--SQL 2008 可以写成ttsalary+=500,2005不行,所以应尽量使用通用的语法ttsalary=ttsalary+500

updateTblTeather set ttname=''+ttname+'',ttgender=0,ttsalary=ttsalary+500

  wheretage=19

 

--将年龄为岁的,并且性别为的,人的姓名两边在加两个

updateTblTeather set ttname=''+ttname+'' wheretage =19 andttgender=0

 

--将年龄为岁的,并且性别为的,人的姓名两边的替换成

updateTblTeather set ttname=replace(ttname,'','')where tage =19 andttgender=0

 

--REPLACE(string_expression,string_pattern,string_replacement)

 

--逻辑运算符

--not

--and

--or

--逻辑运算符的优先级问题:not>and>or

tsage>10 andtsage<50 or ttname = 'zs'and (not(ttbirthday>'2000-10-10'))

 

select*fromTblTeather

 

--

deletefrom TblTeather where tage=19or tage is null

 

--删除所有数据

deletefrom TblTeather

 

insertinto TblTeather values('张三',1,20,10000,'2000-10-10')

 

truncatetable TblTeather

 

--=====使用delete from表名与truncate table表名,都能把表中的数据删除==============

--区别:

--1delete语句删除数据的时候,自动编号没有恢复到默认值。但是truncate语句重新设置了自动编号

--2、通过truncate语句删除表中的数据的时候,只能一次性清空,不能根据条件来删除,而delete可以根据条件来删除

--3、通过truncate语句清空表中的数据时,速度(性能)比delete语句快的多得多得多。

--4truncate语句不触发delete触发器

posted @ 2014-03-18 10:00  Coder^_^  阅读(246)  评论(0编辑  收藏  举报