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 ...
随机推荐
- Web直接导入导出SHP/CAD实现探讨。
1.导入SHP/CAD文件 WEB具有直接美观展现功能,功能实现到可视化最好不要超过3S,那么就要限制导入文件的大小和优化算法了. 1.1.SHP导入实现思路 SHP格式开源,Git上随便可以找到读取 ...
- 遇到android.os等系统sdk包没有自动导入的情况
采取手动导入,build path,然后add external jar,找到sdk的安装目录,导入android 的jar包即可
- isNAN()的使用
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- php7.0版本不再以类名命名构造函数
<?php class Car { var $color = "add"; function Car($color="green") { $this-&g ...
- windows 10 下使用 binwalk
刚接触CTF没什么经验,菜鸟一只很多题不会做,就在网上看大佬写的Write up.发现经常会用到一个小工具--binwalk.binwalk在kali系统里是一个自带的工具,但windows可没有.之 ...
- Unity3D拖尾组件在Ui界面下正常显示
在项目中Canvas下UI添加拖尾效果,会发现Ui完全遮挡住了拖尾. 如果要正常显示通常需要对Canvas进行设置,Render Mode 我这里用的是-Camera模式 其次要对Material 下 ...
- OpenStack(企业私有云)万里长征第五步——虚拟机Migrate&Resize
一.前言 上一篇文章讲了OpenStack的部署和简单操作,今天介绍一下如何实现虚拟机的Migrate以及Resize.Migrate操作和Resize操作基本上属于同一种操作,Migrate操作只是 ...
- 【干货】JS相关知识点总结
一.获取元素方法 可以使用内置对象document上的getElementById方法来获取页面上设置了id属性的元素,获取到的是一个html对象,然后将它赋值给一个变量.如下: 上面的语句,如果把j ...
- Python爬虫从入门到放弃(十七)之 Scrapy框架中Download Middleware用法
这篇文章中写了常用的下载中间件的用法和例子.Downloader Middleware处理的过程主要在调度器发送requests请求的时候以及网页将response结果返回给spiders的时候,所以 ...
- Java 9 揭秘(12. Process API 更新)
Tips 做一个终身学习的人. 在本章中,主要介绍以下内容: Process API是什么 如何创建本地进程 如何获取新进程的信息 如何获取当前进程的信息 如何获取所有系统进程的信息 如何设置创建,查 ...