--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. 几种Android数据序列化方案

    一.引言 数据的序列化在Android开发中占据着重要的地位,无论是在进程间通信.本地数据存储又或者是网络数据传输都离不开序列化的支持.而针对不同场景选择合适的序列化方案对于应用的性能有着极大的影响. ...

  2. Masonry 在swift下的使用

    Masonry在oc下使用很方便,但是在swift下,由于oc方法和property都可以使用.fuc的语法,swift下只有属性可以使用.property的语法,方法只能写成.func().因此在s ...

  3. promise(3) '静态'方法

    要是人没有梦想,跟咸鱼又有什么两样了?一直恐惧读源码,哪怕是一个简单的库也是读百来行遇到难点就放弃了.对于新的东西也仅仅是知道它拿来干什么,社区资源在哪里,要用时就突击文档资源使用即可.未有过深入之心 ...

  4. 将逗号分隔 的字符串转化成List

    将逗号分隔 的字符串转化成List List<String> parIdListTmp = new ArrayList<String>(); String parIdArray ...

  5. 无法为具有固定名称“MySql.Data.MySqlClient”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型“MySql.Data.MySqlClient.MySqlProviderServices,MySql.Data.Entity.EF6”

    "System.InvalidOperationException"类型的未经处理的异常在 mscorlib.dll 中发生 其他信息: 无法为具有固定名称"MySql. ...

  6. IOS 关于property的详细解法

    1.格式 @property (参数1,参数2,...) 类型 名字; eg: @property(nonatomic,retain) UIWindow *window; 其中参数主要分为三类: • ...

  7. Java IO学习笔记(三)转换流、数据流、字节数组流

    转换流 1.转换流:将字节流转换成字符流,转换之后就可以一个字符一个字符的往程序写内容了,并且可以调用字符节点流的write(String s)方法,还可以在外面套用BufferedReader()和 ...

  8. springmvc+mybatis 做分页sql 语句

    <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-// ...

  9. 适合初学者的一个分布式环境搭建过程(spring boot + zookeeper + dubbo + mybatis + mysql)

    本人也是才开始接触 阿里巴巴的开源分布式框架 dubbo,因为现在微服务框架 spring boot也非常的火,然后结合dubbo的官网搭建这个开发环境. 一.首先 zookeeper作为集群管理服务 ...

  10. 谈谈ES6箭头操作符

    如果你会C#或者Java,你肯定知道lambda表达式,ES6中新增的箭头操作符=>便有异曲同工之妙.它简化了函数的书写.操作符左边为输入的参数,而右边则是进行的操作以及返回的值Inputs=& ...