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 ...
随机推荐
- RabbitMQ~开篇与环境部署
想写这篇文章很久了,今天终于有时间总结一下,一个大型的系统里,消息中间件是必不可少的,它将并发环境处理的数据异步进行处理,有效的提高了系统的并发能力,有很多系统的瓶颈点都在于此,而消息中间件在这个时候 ...
- Builder模式详解及其在Android开发中的应用
一.引言 在Android开发中,采用Builder模式的代码随处可见,比如说Android系统对话框AlertDialog的使用或者是Android中的通知栏(Notification)的使用,又比 ...
- 大话Python正则表达式
python的正则表达式模块re import re match_object=re.compile(r"") result=re.match(match_object," ...
- 长沙JavaEE培训机构哪家比较靠谱?Java培训的职业前景
长沙JavaEE培训机构哪家比较靠谱?可信度高? 全球信息化的时代已经到来,IT行业越来越受大众的欢迎,所以越来越多的人把注意力集中到IT职业教育培训.在软件开发领域,Java培训已经成为人们的首选, ...
- Matlab: 作图
控制图的大小 figure('position',[x0,y0,dx,dy]); figure(fig number); 显示图例 legend('leg1','leg2') depend on ho ...
- 浅谈WEB编辑器——HBuilder
我自己用过的WEB编辑器有两种:HBuilder和Dreamweaver.这两种编辑器各有各的特点,但是相对来说,我倾向于前者:后者给我的感觉就是功能繁杂,运行起来慢,而且编码的便捷度不高,时不时需要 ...
- 禁用自动映射的 Exchange 邮箱
客户最近询问他们无法从用户的Outlook配置文件中删除邮箱.在这种情况下,它们是共享邮箱,并出现在Outlook的左窗格中.但原因和解决方法同样适用于用户邮箱.并且 无论用户邮箱在本地 Exchan ...
- div自身高度、屏幕高度
获取元素高度 scrollWidth //显示当前元素的宽度 scrollHeight //显示当前元素的高度 scrollLeft //显示当前元素的左边距左侧的距离 scroll ...
- mybatis学习笔记(四)-- 为实体类定义别名两种方法(基于xml映射)
下面示例在mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现 Demo的基础上进行优化 以新增一个用户为例子,原UserMapper.xml配置如下: < ...
- vijos1062题解
题目: 交谊舞是2个人跳的,而且一男一女 -____-||||. 由于交谊舞之前的节目安排,所有的表演者都站成了一排.这一排人的顺序满足2点: ①对于一对舞伴男生站在女生的左边. ②任何一对舞伴之间, ...