T-SQL笔记总结(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
--tTId、tTName、tTGender、tTSalary、tTBirthday
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表名,都能把表中的数据删除==============
--区别:
--1、delete语句删除数据的时候,自动编号没有恢复到默认值。但是truncate语句重新设置了自动编号
--2、通过truncate语句删除表中的数据的时候,只能一次性清空,不能根据条件来删除,而delete可以根据条件来删除
--3、通过truncate语句清空表中的数据时,速度(性能)比delete语句快的多得多得多。
--4、truncate语句不触发delete触发器
T-SQL笔记总结(1)的更多相关文章
- SQL 笔记 By 华仔
-------------------------------------读书笔记------------------------------- 笔记1-徐 最常用的几种备份方法 笔记2-徐 收缩数据 ...
- SQL笔记 --- 数据库设计步骤(转)
SQL笔记 --- 数据库设计步骤 目录 总体设计过程需求分析概念结构设计逻辑结构设计数据库物理设计数据库实施数据库运行和维护 总体设计过程 0 » 下一篇:vim 命令集 posted @ 2012 ...
- SQL笔记1:SELECT及SELECT高级应用
T-SQL笔记1:SELECT及SELECT高级应用 本章摘要 1:安装AdventureWorks 2:基本运算符和表达式 3:between 4:like 5:escape 6:TOP 7:G ...
- pl/sql 笔记之基础(上)
由于公司中使用 oracle,而本人对存储过程一直也懵懵懂懂,故一周时间学习了一遍 pl/sql,在此记下笔记!!! 一.前提,pl/sql 是啥? 1.PL/SQL是一种高级数据库程序设计语言,该语 ...
- (2.2)【转】mysql的SQL笔记
一千行 MySQL 详细学习笔记 IT技术思维 4月1日 ↑↑↑点上方蓝字关注并星标⭐「IT技术思维」 一起培养顶尖技术思维 作者:格物 原文链接:https://shockerli.net/post ...
- sql 笔记(mysql)
Windows 安装mysql(zip包) 1,zip包解压到要安装目录 2,配置环境变量,Path后加mysql路径\bin 3,修改配置文件,mysql目录下my-default.ini base ...
- 深入浅出SQL笔记1–数据和表
1.数据库的概念及组成 数据库是保存表和其他相关SQL结构的容器. 数据库是由各种各样的表构成的,一个数据库里面的表总是存在相互联系的关系. 数据库内的信息组成了表,表示由行和列构成的,行是一组能够描 ...
- SQL 笔记
--查询某一列在哪个表里 SELECT name , object_id , type , type_desc FROM sys.objects WHERE object_id IN ( SELECT ...
- SQL笔记 - 解决CTE定位点类型和递归部分的类型不匹配
在CTE递归测试,也就是部门名称拼接的时候,遇到了小问题: 登时就迷糊了:不都是取的是Unit表中的同一个列,相加之后类型就变了么? 难道是因为,系统知道这是在进行递归运算,但又不确定递归的层次,以及 ...
- SQL笔记----在一个关系表中操作列
使用alter关键字,可以为一个表添加新的列. 比如: 给Persons的表中添加一列,名字为Birthday,类型是date. ALTER TABLE Persons ADD Birthday da ...
随机推荐
- PHP设计模式:工厂方法
示例代码详见https://github.com/52fhy/design_patterns 工厂方法 工厂方法是针对每一种产品提供一个工厂类.通过不同的工厂实例来创建不同的产品实例. 相比简单工厂, ...
- 理解容器之间的连通性 - 每天5分钟玩转 Docker 容器技术(34)
通过前面小节的实践,当前 docker host 的网络拓扑结构如下图所示,今天我们将讨论这几个容器之间的连通性. 两个 busybox 容器都挂在 my_net2 上,应该能够互通,我们验证一下: ...
- [leetcode-583-Delete Operation for Two Strings]
Given two words word1 and word2, find the minimum number of steps required to make word1 and word2 t ...
- 【Android Developers Training】 29. 从Activity获得结果
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 微信小程序的开发环境搭建(Windows版本)
前言: 小程序是指微信公众平台小程序,小程序可以帮助开发者快速的开发小程序,小程序可以在微信内被便捷地获取和传播:是一种不需要下载安装即可使用的应用小程序,和原有的三种公众号是并行的体系.2017年1 ...
- java的多线程初体验
这里以车站售票作为模拟场景,多个票务人员同时出售某一列高铁(G250?)的车票,售票的基本保证有2点: 1.不能售出多于预定限额的车票. 2.不能售出具有相同座位的车票. 初学java,有不当的地方各 ...
- 网络流入门—用于最大流的Dinic算法
"网络流博大精深"-sideman语 一个基本的网络流问题 最早知道网络流的内容便是最大流问题,最大流问题很好理解: 解释一定要通俗! 如右图所示,有一个管道系统,节点{1,2,3 ...
- Spring MVC 基本注解
1. Spring MVC 常用到的注解: @Controller @RequestMapping @RequestParam @RequestHeader @ModelAttribute @Path ...
- 剖析touch事件在View中的传递
话不多说,直奔主题,先来看一张图 版权申明:这是csdn上别人的图,我觉得有用,就拿过来了, 然后简单说明下: 总的来说,触摸事件是从最外层的ViewGroup,一级一级传递进来的 和这相关的每个Vi ...
- 玩玩微信公众号Java版之五:获取关注用户信息
在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同).公众号可通过本接口来根据Op ...