--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)的更多相关文章

  1. SQL 笔记 By 华仔

    -------------------------------------读书笔记------------------------------- 笔记1-徐 最常用的几种备份方法 笔记2-徐 收缩数据 ...

  2. SQL笔记 --- 数据库设计步骤(转)

    SQL笔记 --- 数据库设计步骤 目录 总体设计过程需求分析概念结构设计逻辑结构设计数据库物理设计数据库实施数据库运行和维护 总体设计过程 0 » 下一篇:vim 命令集 posted @ 2012 ...

  3. SQL笔记1:SELECT及SELECT高级应用

      T-SQL笔记1:SELECT及SELECT高级应用 本章摘要 1:安装AdventureWorks 2:基本运算符和表达式 3:between 4:like 5:escape 6:TOP 7:G ...

  4. pl/sql 笔记之基础(上)

    由于公司中使用 oracle,而本人对存储过程一直也懵懵懂懂,故一周时间学习了一遍 pl/sql,在此记下笔记!!! 一.前提,pl/sql 是啥? 1.PL/SQL是一种高级数据库程序设计语言,该语 ...

  5. (2.2)【转】mysql的SQL笔记

    一千行 MySQL 详细学习笔记 IT技术思维 4月1日 ↑↑↑点上方蓝字关注并星标⭐「IT技术思维」 一起培养顶尖技术思维 作者:格物 原文链接:https://shockerli.net/post ...

  6. sql 笔记(mysql)

    Windows 安装mysql(zip包) 1,zip包解压到要安装目录 2,配置环境变量,Path后加mysql路径\bin 3,修改配置文件,mysql目录下my-default.ini base ...

  7. 深入浅出SQL笔记1–数据和表

    1.数据库的概念及组成 数据库是保存表和其他相关SQL结构的容器. 数据库是由各种各样的表构成的,一个数据库里面的表总是存在相互联系的关系. 数据库内的信息组成了表,表示由行和列构成的,行是一组能够描 ...

  8. SQL 笔记

    --查询某一列在哪个表里 SELECT name , object_id , type , type_desc FROM sys.objects WHERE object_id IN ( SELECT ...

  9. SQL笔记 - 解决CTE定位点类型和递归部分的类型不匹配

    在CTE递归测试,也就是部门名称拼接的时候,遇到了小问题: 登时就迷糊了:不都是取的是Unit表中的同一个列,相加之后类型就变了么? 难道是因为,系统知道这是在进行递归运算,但又不确定递归的层次,以及 ...

  10. SQL笔记----在一个关系表中操作列

    使用alter关键字,可以为一个表添加新的列. 比如: 给Persons的表中添加一列,名字为Birthday,类型是date. ALTER TABLE Persons ADD Birthday da ...

随机推荐

  1. [leetcode-496-Next Greater Element I]

    You are given two arrays (without duplicates) nums1 and nums2 where nums1's elements are subset of n ...

  2. python实现希尔排序(已编程实现)

    希尔排序: 观察一下”插入排序“:其实不难发现她有个缺点: 如果当数据是”5, 4, 3, 2, 1“的时候,此时我们将“无序块”中的记录插入到“有序块”时,估计俺们要崩盘, 每次插入都要移动位置,此 ...

  3. winform利用委托delegate进行窗体间通信,相同标题已经存在??

    前段时间学习委托,感觉很模糊的样子,也做过许多实例,但是项目中一直没有用到,今天在项目中遇到一个很简单的例子,现在拿出来,做一个简单的记录. 要求:将弹出框里勾选的内容返回到主面板上. 工具:委托. ...

  4. TCP长连接与短连接的原理及区别

    一.当网络通信时采用TCP协议时:  1.过程: 第一步:(在真正的读写操作之前)Server 和Client 之间必须建立一个连接,连接的建立需要三次握手 经典的三次握手示意图: 第二步:进行读写操 ...

  5. 移动端Touch事件基础

    1.三个常用的移动端事件 ontouchstart 手指按下时触发 ontouchmove 手指移动时触发 ontouchend 手动抬起时触发 注意:这些事件当作事件属性使用时,不兼容谷歌浏览器. ...

  6. VB6之截图

    今天先把主要逻辑写出来,如果有时间就实现一个真正的截图工具. Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC ...

  7. 浅谈Ajax 异步的几点细节

    1.浏览器执行到Ajax代码的这行语句的时候,发出了一个HTTP请求,欲想请求服务器上的数据.服务器此时开始I/O,所谓的I/O就是磁盘的读写,需要花费一些时间,所以不会立即产生下行的HTTP报文: ...

  8. Java之初识

    今天开始学习Java 1.什么是Java? Java是1995年由sun公司推出的一门极富创造力的面向对象编程语言,是由Java之父詹姆斯格斯林博士设计的. Java名字的由来:据说,java刚刚设计 ...

  9. Python: Pandas运算的效率探讨以及如何选择高效的运算方式

    本文就Pandas的运行效率作一个对比的测试,来探讨用哪些方式,会使得运行效率较好. 测试环境如下: windows 7, 64位 python 3.5 pandas 0.19.2 numpy 1.1 ...

  10. Execution failed for task':app;clean'

    Execution failed for task':app;clean' >Unable to delete directory:f:xxxxxbuild\output\apk当程序出先这个错 ...