第三章 TSQL入门
一、创建数据库
1、新建一个数据库
语法:CREATE DATABASE 数据库名(注意命名规范
如:SellDB)
还可以用 CREATE DATABASE 数据库名
ON PRIMARY 注:主数据文件必要,且只能有一个
(
主文件的名字,
主文件的物理名,
初始大小,
最大的尺寸,
增长量(超果超过超始尺寸,每次重新增长的尺寸)
注意:增长量可以写尺寸,也可以写百分比)
, 注:次要文件可以没有,也可以有多个
(
次要文件的名字,
次要文件的物理名,
初始大小,
最大的尺寸,
增长量(超果超过超始尺寸,每次重新
增长的尺寸)
注意:增长量可以写尺寸,也可以写百
分比
)
LOG ON
(
日志文件的名字,
日志文件的物理名,
初始大小,
增长量(超果超过超始尺寸,每次重新
增长的尺寸)
注意:增长量可以写尺寸,也可以写百
分比
)
2、删除一个已经存在的数据库
语法: DROP DATABASE 数据库名(注意:在master数
据库下进行,数据库一定要存在)
3.判断:
IF EXISTS(SELECT * FROM sysdatabases WHERE name='库名' )
BEGIN
DROP DATABASE 库名
END
IF EXISTS(SELECT * FROM sysobjects WHERE name='表名|存储
过程名|视图名')
DROP TABLE|procedure|view 表名|存储过程名|视图名
GO
二、创建表
CREATE TABLE 表名
(
字段名 数据类型 [约束],
..........
)
三、创建约束
两种方式
1、在建表的同时创建约束
2、先创建表,完成后再创建约束
ALTER TABLE 表名
ADD CONSTRAINT 约束名
约束类型(列名)
主键约束
ALTER TABLE 表名
ADD CONSTRAINT PK_表名_列名
PRIMARY KEY(列名)
检查约束
ALTER TABLE 表名
ADD CONSTRAINT CK_表名_列名
CHECK(表达式)
默认值
ALTER TABLE 表名
ADD CONSTRAINT DF_表名_列名
DEFAULT(值) FOR 列名
外键约束
ALTER TABLE 表名
ADD CONSTRAINT FK_表名_列名
FOREIGN KEY(列名) REFERENCES 主表(列名)
四:插入修改查询删除数据
1.插入
INSERT [INTO] 表名 [(列名)] VALUES(值)
插入多条数据:
将表2中的条件的信息插入到表1,表1必须是原数据库中不存在的新
表:
SELECT * INTO 表1 FROM 表2 [WHERE 条件表达式]
完成一次插入多行:这个表必须是原数据库已经存在的表
INSERT INTO 表名[列名列表] SELECT 语句
例:INSERT INTO 表2(列名) SELECT 列名 FROM 表1 --将表1中
的所有数据一次性的添加到表2
INSERT INTO (列名) select 值 union select 值 union select
值 union ....select 值 --union 表示联合查询
2.修改
UPDATE 表名 SET 列名=新值 [WHERE 条件表达式]
3.查询
SELECT 列名或* FROM 表名[WHERE 条件表达式]
关联查询:
内连接:连接两个表中只要数据存在不匹配就都不显示
示例1:SELECT 字段.... FROM 表1 JOIN 表2 ON 表1.字段0 = 表2.字段0 ORDER BY 字段0
示例2:SELECT 字段.... FROM 表1 INNER JOIN 表2 ON 表1.字段0 = 表2.字段0 ORDER BY 字段0
示例3:SELECT 字段.... FROM 表1,表2 WHERE 表1.字段0 = 表2.字段0 ORDER BY 字段0
外连接:在两个表连接查询时,两个表中都存在空匹配的记录,这些记录都显示出 来,空匹配的字段用Null表示。
示例1:SELECT 字段.... FROM 表1 FULL OUTER JOIN 表2 ON 表1.字段0 = 表2.字段0
示例2:SELECT 字段.... FROM 表1 FULL JOIN 表2 ON 表1.字段0 = 表2.字段0
左连接:连接两个表的左表为主显示表,空匹配用Null
示例1:SELECT 字段 FROM 表1 LEFT JOIN 表2 ON 表1.字段0 = 表2.字段0
示例2:SELECT 字段 FROM 表1 LEFT OUTER JOIN 表2 ON 表1.字段0 = 表2.字段0
示例3:SELECT 字段 FROM 表1 , 表2 WHERE 表1.字段0 = 表2.字段0(+)
右连接:类似于左连接,但是以右表为基表
示例1:SELECT 字段 FROM 表1 RIGHT JOIN 表2 ON 表1.字段0 = 表2.字段0
示例2:SELECT 字段 FROM 表1 RIGHT OUTER JOIN 表2 ON 表1.字段0 = 表2.字段0
示例3:SELECT 字段 FROM 表1 , 表2 WHERE 表1.字段0(+) = 表2.字段0
4.删除
DELECT FROM 表名 [WHERE 条件表达式]
删除所有记录:TRUNCATE TABLE 表名
5.回忆:
Group by 和having
Select后的 非计算列 一定要出现在group by 的后面
过程:Where 是挑选行然后分组,在然后having挑选组
有having 就一定有group by
Order by: 排序
五、ddl 和 dml
DML:数据操作语言,对表中的数据进行增加删除修改操作 insert update delete
DDL:数据定义语言,对数据库对象的定义,包括删除.新建.修改create alter drop