什么是sql?
sql能做什么?
rdbms
sql常见数据类型
sql语法
结构化查询语言(structured query language)简称sql。
结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。
结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
sql 面向数据库执行查询
sql 可从数据库取回数据
sql 可在数据库中插入新的记录
sql 可更新数据库中的数据
sql 可从数据库删除记录
sql 可创建新数据库
sql 可在数据库中创建新表
sql 可在数据库中创建存储过程
sql 可在数据库中创建视图
sql 可以设置表、存储过程和视图的权限
rdbms 指的是关系型数据库管理系统。
rdbms 是 sql 的基础,同样也是所有现代数据库系统的基础,比如 ms sql server, ibm db2, oracle, mysql 以及 microsoft access。
rdbms 中的数据存储在被称为表(tables)的数据库对象中。
表是相关的数据项的集合,它由列和行组成。
分类
备注和说明
类型
说明
二进制数据类型
存储非子符和文本的数据
image
可用来存储图像
文本数据类型
字符数据包括任意字母、符号或数字字符的组合
char,8000
固定长度的非 unicode 字符数据。固定长度的字符串相对于可变长度的字符串来说效率要高一些,在数据长度固定的情况下优先选用固定长度,省去了计算长度的过程,提高效率
varchar,8000
可变长度非 unicode 数据
nchar,4000
固定长度的 unicode 数据
nvarchar,4000
可变长度 unicode 数据
text
varchar(max)
存储长文本信息(指针,2g)
varchar(max),大字符串类型可以保存非常多的字符,但是对于这种类型的数据dbms经常将它们保存到单独的空间中,这就导致了数据的保存和加载速度比较慢,因此除非必要,否则不要使用。
ntext
nvarchar(max)
nvarchar(max)代替
日期和时间
日期和时间在单引号内输入
datetime
数字数据
该数据仅包含数字,包括正数、负数以及分数
int
smallint
整数
float
real
数字
货币数据类型
用于十进制货币值,money 和 smallmoney 数据类型精确到它们所代表的货币单位的万分之一。
money(c#:double)
bit数据类型
表示是/否的数据
bit
存储布尔数据类型(1-true 0-false)
sql主要分为:ddl(数据定义语言,建表、建库等语句。)、dml(数据操作语言)和dcl (数据库控制语言) 。create table、drop table、alter table等属于ddl,select、insert、update、delete等属于dml, grant 授权、revoke 取消授权属于dcl。
t-sql创建数据库的语法:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
实例:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
t-sql创建数据表的语法:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
实例:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
其中id为主键,并且自增。
主键:就是数据行的唯一标识。不会出现重复数据的列才能当主键。一个表可以没有主键,但是会非常难以处理,因此没有特殊理由表都要设定主键。
主键有两种选用策略:业务主键和逻辑主键。业务主键是使用有业务意义的字段做主键,比如身份证号,银行帐号等。逻辑主键是使用没有任何业务意义的字段做主键,完全是给程序看的,业务人员不会看的数据。因为很难保证 业务主键不会重复(身份证重复)、不会变化(帐号升级),因此推荐使用逻辑主键。
主键的作用:唯一标识表中的一条记录。
选择多列同时作为一个主键->组合主键(复合主键)。(一般不建议采用)
尽量选择单列作为主键:
1、必须唯一(不能重复)
2、该列不能为null
3、比较稳定的列(不经常更新,最好是建好以后再也不更新。)
4、选择主键的列的时候,推荐使用“逻辑主键”(例如:自动编号,guid等。)不推荐“业务主键”(选择有实际意义的列作为主键(例如:身份证号,工号,学号等))
go语句的作用: 向 sql server 实用工具发出一批 transact-sql 语句结束的信号。 将sql语句分段执行。 go 不是 transact-sql 语句;它是 sqlcmd 和 osql 实用工具以及 sql server management studio 代码编辑器识别的命令。 sql server 实用工具将 go 解释为应该向 sql server 实例发送当前批 transact-sql 语句的信号。当前批语句由上一 go 命令后输入的所有语句组成,如果是第一条 go 命令,则由即席会话或脚本开始后输入的所有语句组成。 go 命令和 transact-sql 语句不能在同一行中。但在 go 命令行中可包含注释。 用户必须遵照使用批处理的规则。例如,在批处理中的第一条语句后执行任何存储过程必须包含 execute 关键字。局部(用户定义)变量的作用域限制在一个批处理中,不可在 go 命令后引用。
删除数据库,数据表:
数据库约束是为了保证数据的完整性(正确性)而实现的一套机制。
约束类型:
主键约束(pk)primary key constraint 唯一且不为空
唯一约束(uq)unique constraint唯一,允许为空,但只能出现一次。
默认约束(df)default constraint默认值
检查约束(ck)check constraint范围以及格式限制
外键约束(fk)foreign key constraint表关系保证外键值来源于主键表。(增加外键约束时,设置级联更新,级联删除)
当创建了主外键关系后,如果在外键表中有任何记录引用了主键表中的某条记录,则在主键表中不能删除该记录。同时主键表也不能删除。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
这里总结了,sql的基础内容,隔了很久了,有写东西有点模糊了。
参考资料:
<a href="http://www.w3school.com.cn/sql/">http://www.w3school.com.cn/sql/</a>
黑马培训班ppt(网上搜集的)
博客地址:
<a href="http://www.cnblogs.com/wolf-sun">http://www.cnblogs.com/wolf-sun/</a>
博客版权:
本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。
如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步!
再次感谢您耐心的读完本篇文章。
转载:http://www.cnblogs.com/wolf-sun/p/3561730.html