SQL:Structured Query Language(中文结构化查询语言)是关系数据库管理系统的标准语言
SQL主要分DDL(数据定义语言如建库/表等语句)DML(数据操作语言如增删改查等语句)和DCL(数据库控制语言如登陆的账号,数据库/表的权限等)了解即可
TSQL(Transact-SQL)是Microsoft SQL Server数据库的查询语言,是SQL的增强版,在关系型数据库管理系统(RDBMS)中用于访问和操作数据库中数据的编程语言,可通过编写的TSQL语句实现对具体的数据库中表的增删改查等操作
也是ADO.Net编程的基础,在C#中通过其相关类的方法主要使用DML类型编写的的TSQL语句实现对具体数据的增删改查等同步操作
注意事项:
1)TSQL语句对其关键字大小写不敏感如Select 与 sELecT在TSQL中是一样的
2)TSQL语句中的字符串使用单引号表示,对大小写敏感,如'zs'与'Zs'表示不一样的值
其他的如特殊字符等之后遇到再说
通过TSQL语句创建/删除数据库通过工具栏的"新建查询"按钮,打开下面的编写TSQL语句的窗口
打开TSQL编辑窗口
1 使用DML类型的TSQL语句创建数据库
1.1 使用数据库中默认模板创建数据库即默认的初始大小,增长方式,存储位置等信息
创建数据库语句
--创建一个名为SchoolTest的数据库
create database SchoolTest;
--两个横线相当于C#的//
--用于注释语句
--名称后的分号不是必须的
--但是如果两条编写在一起,推荐加分号
--如create database SchoolTest1 create database SchoolTest2
--两条语句中间有空格还可以,没有空格就会报错
--一般每编写一条语句就会换行
--create 表示创建的意思
--database 表示数据库
--SchoolTest 数据库名称
1.2 创建自定义文件选项的数据库的固定格式
create database 数据库名称
on primary
( --由闭合的小括号包裹
--在这里设置主数据文件mdf的信息
)
log on
(
--在这里设置事务日志文件ldf的信息
)
go --不是必须,看具体需求而定
--go:批处理命令的关键字
--go:表示一批T-SQL语句结束
--go之后的T-SQL语句属于另一个批处理的范围
--在 T-SQL 所有语句的最后都默认有一个go
--但是go不是 T-SQL 语句
--只是一个能被SQL Server 实用工具识别的命令
1.3 创建自定义文件选项数据库的具体TSQL语句
create database SchoolTest
on primary --
(
--在这里设置主数据文件 mdf
name='SchoolTest',--主数据文件的逻辑名称
filename='d:\SchoolTest.mdf',--文件的具体存储路径。
size=3MB,--设置文件的初始大小
maxsize=100MB,--设置文件最大容量
--如果设置为 UNLIMITED 就是不限制大小(谨慎使用)
--当存储的数据达到初始大小时,设置增长方式
--filegrowth=1MB --每次增长1MB(被注释不会执行此语句)
filegrowth=10% --每次增长当前自身大小的10%
)
log on
(
--在这里设置事务日志文件。
name='SchoolTest_log',
filename='d:\SchoolTest.ldf',
size=1MB,
--unlimited与UNLIMITED不区分大小写
maxsize=unlimited,--无限大小
filegrowth=1mb
)
Go
注意事项:每条TSQL语句的后面使用逗号进行分隔,最后一条不用
编写完TSQL语句后选中要执行的语句(推荐使用此方法),单击房间里中的"√"图标检测语句是否有错(一般语句有错误的语句,下一条语句的下面会显示红色的波浪线)会在下方弹出一个"结果"窗口,在里面显示检测信息,语句如无错误,最后单击"执行"图标,就会创建此数据库,在左侧的"对象资源管理器中"查看,如没有单击刷新图标
怎样查找错误语句:查找有红色波浪线语句紧挨着的上方语句即可,这个错误信息窗口比较坑人的是
1)只会显示在哪行,不显示具体的错误信息
2)最坑的是行号并不单指整个编辑窗口左侧显示的行号,有的是选中的行号(如选中5行,第3行错误,显示行号3有误,不再以左侧行号为准)有的是go后面的行号(与前面类似,自行测试)
编辑器中的行号:在菜单栏的"工具"一>选项一>文本编辑器一>所有语言窗口中设置
如果未选中要执行的语句,所有语句没有错误,单击"执行"会将当前编辑窗口中的语句全部执行一遍,此操作非常容易丢失数据,建议暂时不用的语句全部注释掉
执行语句的结果:前提是选中的语句或未选中的语句全部正确,才有执行结果(创建库/表)
2 删除指定数据库
--删除指定名称的数据库
drop database SchoolTest
--DROP DATABASE SchoolTest;
--两者语句作用相同
--但是如果第二句未注释就会报错
--原因:第一句已删除,第二句再删除
--已无此数据库文件,因此报错
说明:有关 SchoolTest 数据库的语句创建后直接使用上面语句删除了,创建数据表时使用之前在设计器模式下创建的School数据库
通过TSQL语句创建/删除数据表1 创建数据表
创建流程:1)指定数据库:创建的表位于哪个数据库中 2)通过TSQL语句创建数据表
1.1 创建数据表的格式
create table 表名
( --由闭合的小括号包裹
--语句之间以空格间隔,每条语句间以逗号间隔
列名1 数据类型 [是否为null等其他信息],
列名2 数据类型 [是否为null等其他信息],
..... ,
--最后一条无需逗号
列名N 数据类型 [是否为null等其他信息]
)
1.2 在School数据库下创建一张名为 Student 的数据表
use School
--use 用于切换到指定数据库
--创建数据表时以当前数据库为表的存储库
--创建Student表
--数据库是 database 数据表是 table
create table Student
(
SId int identity(1,1) primary key,--学生编号
SCId int not null,--班级编号
SName varchar(48) not null,--学生姓名
SAge int DEFAULT 18,--学生年龄
SGender bit DEFAULT 0,--学生性别
SPhone varchar(18) default '18888888888',--手机号
SAddress varchar(256) default '河南省郑州市'--家庭地址
)
go
--identity(1,1) 用于设置自动编号列
--每增加一条数据,编号自动增长
--primary key 设置此列名为主键,之后再说其作用
--编号暂时使用int类型即可,有的以GUID为编号等其他方式为主键唯一标识码
--not null 表示输入数据时此列的数据不允许为空,必须填写对应类型的数据
--如果不写或只写null 表示输入数据时此列数据可以不写
--其值是null值,表示不知道,与空不一样之后再说
--如SAge不写not null 默认为 null值
DEFAULT与default作用一样 表示此列有默认值
如果是文本类型的使用单引号包裹
如果是数字直接写数字,如int ,bit,其他类型几乎都要加单引号
在School数据库中创建数据表
在左侧窗口中查看创建的数据表或右击"Student"表名选择"设计"即可打开设计器窗口,选择"编辑前200行"(版本不同,此命令名称不同,作用一样)打开编辑窗口可以输入对应类型的数据,有默认值的可输可不输,最后单击"执行"的感叹号图标即可插入输入的数据
当前编辑器窗口中的TSQL语句文件可通过工具栏的"保存"图标保存起来(扩展名.sql)
通过设计器方式插入数据
1.3 删除数据表
前提是上图中左上角为指定数据表所在的数据库或使用use指定数据库
use School --指定要删除数据表的数据库
--删除数据表
drop table Student