SQL_Server_Day01_连接数据库及数据库定义语言
来源:互联网 发布:健康网络的宣传语 编辑:程序博客网 时间:2024/04/29 23:01
SQL Server数据库
基本结构
基础篇
SQL Server基本概念与T-SQL基础
ADO.NET: C#与ADO.NET
提高篇
较复杂的T-SQL
1. 连接数据库
实例的概念 开启sa(super administrator)用户
windows身份认证: 要求必须是本机用户
SQL Server身份认证:可以远程登陆此计算机的数据库(这种情况更常见,
一般数据库单独安装在一台服务器上,且此服务器只做此用途)
添加新用户 用户权限
数据库中有一个复杂的内容--角色和权限分配
创建用户数据库
.mdf --master data file
.ldf --log data file
创建架构(架构只属于数据库文件)
表应该放在架构的下面
创建表
添加数据
数据库文件的分离与附加
2. 数据库中的概念
数据库里常用的数据类型
1)数字类型 int bigint float decimal(精度,小数位数) money
2)时间类型 datetime 'yyyy-MM-dd hh:mm:ss:sss'
3)bool类型 bit
4)二进制类型 image 不常有 因为我们不会把图片或者声音存放到数据库里面
5)字符串类型 char(n) nchar(n) varchar(n) nvarchar(n)
不带n --Ascii编码
带n --Unicode编码 支持中文
存身份证号 用varchar 15位或18位
存手机号 用char 11位固定
3. SQL语句
数据库定义语言
数据库操作语言
数据库管理语言(基本上用不到)
1)use 切换数据库上下文 use tempdb;
2)句结束要加分号;SQL语句忽略大小写,推荐关键字用大写
3)注释
/*
跨行注释
*/
-- 行注释
4) 使用select + 表达式或一个值,可以显示这个值得结果 -- 表的形式
使用print + 表达式或一个值,可以显示这个值得结果 -- 消息的形式
5) 数字直接书写
字符串使用单引号括起来
数据库中时间类型比较特殊,以字符串的形式进行书写,
但是只有在赋值时间类型的变量的时候或向数据表中插入数据的时候才会
表现出时间类型 select CAST('2014-5-9' as datetime);
bool类型也是这样,表达方法有两种,可以表示成1或0,
或者表示成 'true' 或 'false'
4. 数据库定义语言
go 并不是sql语句,而是标志将上面这段代码一起执行掉
创建数据库
创建架构
创建表
一般创建表的时候,都会多创建几个列名
--id列名 主键
--isDel列名 是否删除(防止误删) 超过一定时间的数据才可以删除掉
--inputTime列名 用来标记数据加入的时间
表名的引用使用全路径 数据库名.架构名.表名
5. 数据库操作语言
[]表示名字的界定符号
--如果我的成员是关键字,我想创建一个名叫table的表
字符串如果是中文 前面加一个N 表示是unicode编码
增删改查
6. 约束--保证数据完整性的一种操作机制(可以使用鼠标点击 和 SQL语句来添加约束)
数据完整性,表示的是数据的准确性和有效性
主键约束 默认添加聚集索引
唯一约束 UQ... 默认添加非聚集索引
默认约束 字段有默认值
非空约束 isNULL
在SQL Server中,凡是进行null的判断,都用is
update table1 set age = 30 where age is null;
检查约束 gender只能是'm' 'f' age只能是0~150
外键约束
主外键 要两两的看
1)主键表中删除数据必须保证外键表中没有该数据的引用
2)外键表中添加数据,如果引用了主键数据,必须保证主键表中含有该数据
级联查询 级联删除--删除一张表的内容,实际上需要两张表的内容
一般不设置主外键关系
业务逻辑复杂,可能需要数据取消冗余,强调数据之间的关联
索引-- 高级内容 数据库中凡是唯一的,就可以做为索引
类似于字典
拼音检索--聚集索引(存取有顺序--拼音检索的顺序和字典的排列顺序是一致的) 只能有一种
部首检索--非聚集索引 可以有多种
如果你完全没有检索,那么你只能一页一页的翻
7. 用代码添加约束(属于数据库定义语言)
ALTER table testSchema.books
ADD
constraint [PK_testSchema.books_id]
primary key (id) --主键约束
default(getDate()) for inputTime --默认约束
unique(name) --唯一约束
check(age>=0 and age<150) --检查约束
如何用代码实现主键自动增长/非空约束?
方法是删除这个字段,然后再添加一个名字一样的字段
基本结构
基础篇
SQL Server基本概念与T-SQL基础
ADO.NET: C#与ADO.NET
提高篇
较复杂的T-SQL
1. 连接数据库
实例的概念 开启sa(super administrator)用户
windows身份认证: 要求必须是本机用户
SQL Server身份认证:可以远程登陆此计算机的数据库(这种情况更常见,
一般数据库单独安装在一台服务器上,且此服务器只做此用途)
添加新用户 用户权限
数据库中有一个复杂的内容--角色和权限分配
创建用户数据库
.mdf --master data file
.ldf --log data file
创建架构(架构只属于数据库文件)
表应该放在架构的下面
创建表
添加数据
数据库文件的分离与附加
2. 数据库中的概念
数据库里常用的数据类型
1)数字类型 int bigint float decimal(精度,小数位数) money
2)时间类型 datetime 'yyyy-MM-dd hh:mm:ss:sss'
3)bool类型 bit
4)二进制类型 image 不常有 因为我们不会把图片或者声音存放到数据库里面
5)字符串类型 char(n) nchar(n) varchar(n) nvarchar(n)
不带n --Ascii编码
带n --Unicode编码 支持中文
存身份证号 用varchar 15位或18位
存手机号 用char 11位固定
3. SQL语句
数据库定义语言
数据库操作语言
数据库管理语言(基本上用不到)
1)use 切换数据库上下文 use tempdb;
2)句结束要加分号;SQL语句忽略大小写,推荐关键字用大写
3)注释
/*
跨行注释
*/
-- 行注释
4) 使用select + 表达式或一个值,可以显示这个值得结果 -- 表的形式
使用print + 表达式或一个值,可以显示这个值得结果 -- 消息的形式
5) 数字直接书写
字符串使用单引号括起来
数据库中时间类型比较特殊,以字符串的形式进行书写,
但是只有在赋值时间类型的变量的时候或向数据表中插入数据的时候才会
表现出时间类型 select CAST('2014-5-9' as datetime);
bool类型也是这样,表达方法有两种,可以表示成1或0,
或者表示成 'true' 或 'false'
4. 数据库定义语言
go 并不是sql语句,而是标志将上面这段代码一起执行掉
创建数据库
创建架构
创建表
一般创建表的时候,都会多创建几个列名
--id列名 主键
--isDel列名 是否删除(防止误删) 超过一定时间的数据才可以删除掉
--inputTime列名 用来标记数据加入的时间
表名的引用使用全路径 数据库名.架构名.表名
5. 数据库操作语言
[]表示名字的界定符号
--如果我的成员是关键字,我想创建一个名叫table的表
字符串如果是中文 前面加一个N 表示是unicode编码
增删改查
6. 约束--保证数据完整性的一种操作机制(可以使用鼠标点击 和 SQL语句来添加约束)
数据完整性,表示的是数据的准确性和有效性
主键约束 默认添加聚集索引
唯一约束 UQ... 默认添加非聚集索引
默认约束 字段有默认值
非空约束 isNULL
在SQL Server中,凡是进行null的判断,都用is
update table1 set age = 30 where age is null;
检查约束 gender只能是'm' 'f' age只能是0~150
外键约束
主外键 要两两的看
1)主键表中删除数据必须保证外键表中没有该数据的引用
2)外键表中添加数据,如果引用了主键数据,必须保证主键表中含有该数据
级联查询 级联删除--删除一张表的内容,实际上需要两张表的内容
一般不设置主外键关系
业务逻辑复杂,可能需要数据取消冗余,强调数据之间的关联
索引-- 高级内容 数据库中凡是唯一的,就可以做为索引
类似于字典
拼音检索--聚集索引(存取有顺序--拼音检索的顺序和字典的排列顺序是一致的) 只能有一种
部首检索--非聚集索引 可以有多种
如果你完全没有检索,那么你只能一页一页的翻
7. 用代码添加约束(属于数据库定义语言)
ALTER table testSchema.books
ADD
constraint [PK_testSchema.books_id]
primary key (id) --主键约束
default(getDate()) for inputTime --默认约束
unique(name) --唯一约束
check(age>=0 and age<150) --检查约束
如何用代码实现主键自动增长/非空约束?
方法是删除这个字段,然后再添加一个名字一样的字段
0 0
- SQL_Server_Day01_连接数据库及数据库定义语言
- 数据库定义语言DDL
- C语言连接数据库
- C语言连接数据库
- R语言连接数据库
- C语言连接数据库
- C语言连接数据库
- R语言连接数据库
- R语言连接数据库
- R语言连接数据库
- C 语言连接数据库
- mysql数据库 DDL(数据库定义语言)
- 数据库模式定义语言DDL
- 数据库定义语言(DDL)
- 【数据库】数据定义语言DDL
- 连接及关闭数据库
- R语言使用RMySQL连接及读写Mysql数据库
- R语言使用RMySQL连接及读写Mysql数据库
- Frameset使用教程
- 简单的重写控件
- pat 1084. Broken Keyboard (20)
- 正则表达式
- 自己做的一个肤色检测模型
- SQL_Server_Day01_连接数据库及数据库定义语言
- 详解c++指针的指针和指针的引用
- 泛型和增强for循环
- android APP优化知识图谱(草稿)
- C++ 不用临时变量交换两个变量的值——函数对象
- 利用opencv训练分类器
- 安装oracle 10g "程序异常终止,发生内部错误"
- 移动web开发框架研究
- mysql权限和配置主从数据库