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 ...
随机推荐
- 【VC6.0】getline需要输入2次回车才会结束的BUG修复方法
原始日期:2013-09-30 23:22 今天看C++Primer的时候发现一个问题,getline需要输入2次回车才会显示结果,上网找了一下,发现是VC6.0的原因,修复原因如下: (1)建立一个 ...
- Linux编程之有限状态机FSM的理解与实现
有限状态机(finite state machine)简称FSM,表示有限个状态及在这些状态之间的转移和动作等行为的数学模型,在计算机领域有着广泛的应用.FSM是一种逻辑单元内部的一种高效编程方法,在 ...
- 【Android Developers Training】 57. 在UI线程之外处理图像
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 你应该知道的jQuery技巧【收藏】
jQuery的存在,让学习前端开发的人感到前端越来越容易入门了,用简单的几行代码就可以实现需求,但是,你真的会用jQuery么,当代码运行 后无法看到自己预期的效果,是不是觉得jQuery出了问题,其 ...
- WPF WebBrowser Memory Leak 问题及临时解决方法
首先介绍一下内存泄漏(Memory Leak)的概念,内存泄露是指程序中已动态分配的堆内存由于某种原因未释放或者无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果. 最近在使用W ...
- Django学习(一)---基本配置及创建项目、应用
安装:在Django官网下载最新版Django然后通过pip安装即可 一.创建项目 进入文件夹,打开cmd窗口,输入django-admin startproject myblog(项目名) 二.创建 ...
- 【JS小技巧】JavaScript 函数用作对象的隐藏问题
用户反馈 @消失的键盘 在论坛反馈了一个问题,在 AppBoxMvc 中的 Title 模型中,如果将 Name 属性改名为小写的 name 属性,就会报错: 因为这是一个 ASP.NET MVC 的 ...
- SSH连不上虚拟机的问题解决
这几天工作任务不重,今早上班打算在liunx下运行下python脚本.打开VM,SSH突然连不上虚拟机了.网上试了很多方法都不行,最后花费2个小时解决了这一问题. 结合我的实际情况,问题解决如下: 1 ...
- UDP和多线程服务器
UDP: UDP是数据报文传输协议,这个传输协议比较野蛮,发送端不需要理会接收端是否存在,直接就发送数据,不会像TCP协议一样建立连接.如果接收端不存在的话,发送的数据就会丢失,UDP协议不会去理会数 ...
- 小程序开发教程:wx.setTopBarText(OBJECT)
状态信息展示 当小程序被显示在聊天顶部时,开发者可将重要的状态变更信息实时展示出来,便于用户及时获知. 详见文档:小程序文档 小程序更新之后,有个更有用的功能!支持状态栏实时状态更新!! wx.set ...