全部章节 >>>>
01. 输出
单列输出:select 数据1
多列输出:select 数据1,数据n
查询约束:select * from SYS.OBJECTS
- 查询约束名称:SELECT NAME from SYS.OBJECTS WHERE TYPE_DESC =‘PRIMARY_KEY_CONSTRAINT’ AND
PARENT_OBJECT_ID = (SELECT OBJECT_ID
FROM SYS.OBJECTS WITH(NOLOCK) WHERE NAME = ‘表名’)
02. 数据库语句
创建数据库:create database 数据库名
选择数据库:use 数据库名
用来表示事物结束,提交并确认结果:go
- 批处理语句是自上一GO命令后输入的所有语句
- 若是第一条GO命令,则是从开始到这条GO命令之间的所有语句
查看所有数据库:show databases
查看数据库中所有表:show tables
03. 表语句
创建新表:create table 表名(列名1 类型1,列名n 类型n,[constraint 约束名] 约束(列名) )
- 主键:primary key
- 非空:not null
- 唯一索引:unique
- 自定义约束:check
- 关联:references
- 自动计算字段:as
sp语句
- 查看表结构:sp_help 表名
- 修改列名:EXEC sp_rename ‘表名.原列名’, ‘新列名’, ‘column’
alter语句
- 添加列:alter table 表名 add 列名 类型 约束
- 添加列并赋默认值:添加列语句 default 值 with values
- 删除列:alter table 表名 drop column 列名
- 修改字段类型:alter table 表名 alter column 列名 类型 约束
- 添加约束:alter table 表名 [add constraint 约束名] 约束(列名)
- 删除约束:alter table 表名 drop constraint 约束名
04. 子查询:也叫嵌套查询,外部的叫外围查询,内部的叫子查询
注意:
- 可以嵌套
- 不能使用 image, text, ntext数据类型、不能使用order by 子句
- 返回结果的数据类型必须与外围查询where语句的数据类型匹配
exists - not exists用法
- exists:非空时,返回true;空时返回false
- not exists:取exists的反
05. 连接查询:实现多个表查询操作
概念
- 根据两个表或多个表的列之间的关系,从这些表中查询数据
连接格式
- select * from 连接表名 连接类型 连接表名 ON 连接条件
内连接inner join
- 等值连接=:列出被连接表中的所有列,包括其中的重复列
- 不等连接、除=外的运算符:列出符合运算符的连接,重复列出
外连接:如没匹配行,则返回空值
- 左外连接left outer join:返回左表中的所有行,和右表中的匹配行
- 右外连接right outer join:返回右表中的所有行,和左表中的匹配行
- 全外连接full outer join:返回左右表中的所有行,和左右表中的匹配行
交叉连接cross join:也称笛卡尔积、后面加条件只能用where,不能用on
- 不带where:将会返回两个表的笛卡尔积,行数为两个表行数的乘积
- 带where:往往会先生成笛卡尔积,再根据where条件选择