SQL语言概述

1、九个动词完成核心功能

         SQL功能

                   动词

数据查询select
数据定义creat、drop、alter
数据操纵insert、update、alter
数据控制grant、revoke

 

 

 

 

 

2、关系数据库三级模式结构 

外模式对应视图和部分基本表模式对应基本表内模式对应存储文件

基本表:独立存在的表,在SQL中一个关系对应一个基本表。

视图:从一个或几个基本表导出来的表。本身不独立存储在数据库中,即数据库中只存放视图的定义而不存在存放视图对应的数据。这些数据仍然存放在导出视图的基本表中。故视图是一个虚表。视图在概念上与基本表等同,可在视图上再定义视图。

用户可用SQL对基本表和视图进行查询或其他操作,基本表和视图一样,都是关系。一个(或多个)基本表对应一个存储文件,一个表可以带若干索引,索引也存放在存储文件中。

3、数据定义

模式、外模式和内模式中包含的基本对象有表、视图和索引。

操作对象操作方式
创建删除修改
模式creat schemadrop schema 
creat tabledrop tablealter table
视图create viewdrop view 
索引creat indexdrop index 

 

 

 

 

 

 

 SQL通常不提供修改模式定义、修改视图定义和修改索引定义的操作/用户如果想修改这些文件,只能删除重建。

3.1模式定义

在SQL中,定义模式实际上就是定义一个数据库的命名空间,用这个命名存储空间存放该数据库中所有的基本表、视图和索引等对象的名称。模式定义有三种形式

(1) creat  schema  <模式名> authorizatidn   <用户名>      解释:模式名与用户名不同

(2) creat  schema  authorizatidn   <用户名>                      解释:模式名为用户名

(1) creat  schema  <模式名> authorizatidn   <用户名> [<表定义语句>|<视图定义语句>|<索引定义语句>]       解释:定义模式的同时定义其下的基本表、视图、索引。

其中,符号“<>”表示内容有用户自定义,“[]”表示内容为可选项,“|”代表两边的参数选其一。

只有拥有DBA权限或获得DBA授予的创建模式命令权限的用户才能调用创建模式命令。

3.1.1 删除模式

drop schema <模式名>  <cascade|restrict>     解释:命令中必选cascade(级联)和restrict(限制)其一

模式中定义了表或视图等数据对象时,只能选择cascade,即删除模式的同时删除所有模式下的数据对象,并且拒绝执行drop schema <模式名>  <restrict>。只有模式中不包含任何对象时,才能执行drop schema <模式名>  <restrict>

3.2 基本表的定义、删除与修改

3.2.1表的定义

  creat table  <表名> (<属性1> <数据类型> [列级别完整约束条件]

                                   [,<属性2> <数据类型> [列级别完整约束条件]]

                                                ...............................

                                   [ ,<属性n> <数据类型> [列级别完整约束条件]]);

表的完整约束条件被存入系统的数据字典中,当用户操作表中的数据时,由RDBMS自动检查该操作是否违背完整性约束条件。

由于每一个基本表必须属于某个关系模式,因此在定义基本表的同时必须定义所属的关系模式。分三种

(1)定义模式的时候定义基本表,见模式定义第三种形式;

(2) creat table <已经存在的模式名>.<表名>  (.........);  注意用的'.'连接两个名字

(3)系统根据搜索路径确定模式,即搜索路径中中包含一组模式列表,会选择列表中第一个模式。若搜索路径中不存在模式名,则报错。

3.2.2 表的修改

alter  table <表名> [add <属性名> <数据类型> [完整约束条件]] 增加新属性

                  [drop <完整性约束名>]   删除指定的完整性约束条件

                  [alter column <属性名> <数据类型>] 修改原有属性的定义,包括修改属性名与数据类型

3.2.3 基本表的删除

drop table <表名> [restrict|cascade];

(1)使用cascade,直接删除表,并同时删除此表上建立的索引、视图、触发器等有关对象;

(2)若该表上建立有索引、视图、触发器等有关对象视,使用restrict无法删除,将报错,默认是restrict;

3.3 索引的建立与删除

(1)建立:creat [unique] [cluster] index <索引名> on <表名>(<属性名>[次序选择][,<属性2> [次序选择]]...);

其中unique代表唯一索引,表名此索引的每一个索引值只对应唯一的数据记录。cluster代表聚簇索引,是指索引项的顺序与表中记录的物理顺序一致的索引组织。次序选择中ASC(升序,默认)、DESC(降序)。如

creat unique index stusno on student (Sno);

creat unique index Coucon on Course (Cno);

creat unique index Scno on SC (Sno ASC,Cno DESC);

(2)删除索引:drop index (索引名);

mySQL优化

----------------------------------

其中一种归类

MYSQL优化主要分为以下四大方面:

设计:存储引擎,字段类型,范式与逆范式

功能:索引,缓存,分区分表。

架构:主从复制,读写分离,负载均衡。

合理SQL:测试,经验。

---------------------------------

另一种阐述

1、数据库级别:使数据库应用程序快速运行的最重要因素是其基本设计

(1)表结构是否正确?特别是是否具有正确的数据类型,并且每个表都具有适合于该工作类型的列吗?例如,执行频繁更新的应用程序通常具有许多表而具有很少的列,而分析大量数据的应用程序通常具有很少的表而具有很多列

(2)索引是否正确?

(3)您是否为每个表使用了适当的存储引擎,并利用了所使用的每个存储引擎的优势和功能?

(4)每个表都使用适当的行格式吗?该选择还取决于表使用的存储引擎。特别是,压缩表使用较少的磁盘空间,因此需要较少的磁盘I / O来读取和写入数据。压缩适用于带有InnoDB表的所有工作负载 以及只读 MyISAM表。

(5)应用程序是否使用适当的 锁定策略例如,通过在可能的情况下允许共享访问,以便数据库操作可以同时运行,并在适当的时候请求独占访问,以便关键操作获得最高优先级。同样,存储引擎的选择很重要。该InnoDB存储引擎处理大部分锁定问题,而不需要您的参与,允许在数据库更好的并发。

(6)SQL语句的优化,索引的正确使用

(6)用于缓存的 所有内存区域大小是否正确?也就是说,足够大以容纳经常访问的数据,但又不能太大以至于它们会使物理内存过载并导致分页。要配置的主要内存区域是InnoDB缓冲池和MyISAM密钥缓存。

2、硬件级别:随着数据库变得越来越繁忙,任何数据库应用程序最终都会达到硬件极限。DBA必须评估是否有可能调整应用程序或重新配置服务器以避免这些 瓶颈,或者是否需要更多的硬件资源。系统瓶颈通常来自以下来源:

  • 磁盘搜寻。磁盘查找数据需要花费时间。对于现代磁盘,此操作的平均时间通常小于10毫秒,因此理论上我们可以执行100次搜索。这段时间随着新磁盘的使用而缓慢改善,并且很难为单个表进行优化。优化寻道时间的方法是将数据分发到多个磁盘上。

  • 磁盘读写。当磁盘位于正确的位置时,我们需要读取或写入数据。对于现代磁盘,一个磁盘至少可提供10–20MB / s的吞吐量。与查找相比,优化起来更容易,因为您可以从多个磁盘并行读取。

  • CPU周期。当数据位于主存储器中时,我们必须对其进行处理以获得结果。与内存量相比,拥有较大的表是最常见的限制因素。但是对于小的表,速度通常不是问题

  • 内存带宽。当CPU需要的数据超出CPU缓存的容量时,主内存带宽将成为瓶颈。对于大多数系统来说,这是一个不常见的瓶颈,但是要意识到这一点。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值