数据库知识整理<二>
又继续写的博客,希望自己能坚持每天写博客。分享自己的点滴,对自己成长有帮助。今天下午高强度打了三个小时篮球,小腿都抽筋了。很爽,失落的心情似乎变得开明了一些。想到了一句话:“像SB式的坚持总会有好的收获”,因为坚定了目标,不达目标不罢休。其他的就没什么了。好吧,不多说这些了。继续数据库知识总结吧。
二,管理数据库和表:
2.1管理数据库:
- 创建和使用数据库:
- 创建数据库的SQL语句:create database 数据库名;
- 需要注意的是:数据库名在服务器中必须是唯一的并且遵循合法的标识符规则:
- 第一个字符必须是:a-z和A-Z;下划线(_)、at符号(@)、数字符号(#)。
- 后面的字符可以是:字母、十进制数字、@、$、#、_。不能是RDBMS的保留字、不允许空格或其他特殊字符。
- 链接到数据库:
- 使用那个数据库即用SQL语句:use 数据库名;
- 删除数据库:
- 删除数据库的SQL语句:drop database 数据库名;
2.2数据类型:
- 整数数据类型:
- TINYINT:存储范围0-255,此类型数据占用1个字节的存储空间。
- SMALLINT:2个字节。
- INT:4个字节。
- BIGINT:8个字节。
- 浮点型数据类型:
- REAL型
- FLOAT型
- DECIMAL型
- NUMERIC型:与上者完全相同。
- 字符串类型:char、vchar、text
- 二进制数据类型:BINARY、VARBINARY。(使用时必须在前面加上OX标识才能是二进制数据类型)
- 逻辑数据类型:BIT-0或1。如果输入0或1以外的值,统一将被视为1。且不能为空为空毫无意义。
- 图形数据类型:IMAGE
- 日期时间数据类型:DATETIME、SMALLDATETIME。
- 货币数据类型:MONEY、SMALLMONEY。使用货币数据类型必须在数据前面加上货币符号,系统才能辨识是哪国的货币。如果不加没认为¥。
- 特殊数据类型:TIMESTAMP、UNIQUEIDENTIFIER。
2.3管理表:
- 创建表的SQL语句:create table<表名>(<列名><列的数据类型>[<列的约束>]);
- 删除表的SQL语句:drop table<表名>;(注意:在删除表时要注意是否有外键关联,如果有外键关联的就先删除外键关联表在删除本表,还要看是否有权限删除此表)
- 创建临时表:所谓临时表是指在有限的时间内存在的表,创建临时表的方法与普通表一样只是需要在表名前面加上#和##。本地表加#,全局的表加##。
- 复制表:在数据库中创建一个新的表的方法仅是复制一个已经存在的表。SQL语句如:select * into My_Friends from Friends;复制表的同时表的约定并不能复制过来,所以还是推荐使用creat的方式创建表和数据。复制表过来的时候可以通过alter的方式手动改变表的约束。如果我们只是想复制表的结构而不是数据的话我们可以这样使用SQL语句:select * into My_Friends from Friends where 1=0;让后面的条件永远为false。
- 修改表,alter table语句同其他选项一起可以更改表的数据结构:
- 添加一个表中没有的字段Address:alter table Friend add Address varchar(50);
- 如果要添加多个列的话:alter table Friend add Address varchar(50),Email varchar(30);
- 如果要更改列定义,可以使用SQL语句,比如给Phone列添加一个默认值约束,默认为‘不知道电话号码’:alter table Friend modify Phone default('不知道电话号码');
- 要删除表中的PhoneNo列:alter table Friend drop column PhoneNo;
2.4管理索引(非常重要,经常会被面试官问到):
索引的意义:索引是一个设计用来提供整个数据库操作速度的数据库对象,它通过创建一个内部的索引表来达到快速搜索的目的。索引是依赖于表建立的,在一个表上创建索引可以提高在该表上执行select语句的速度,因为索引被用于快速找到想要的记录而不是执行一个全表扫描,但是会降低delete、update、insert语句的执行速度,因为每次执行这些操作时内部索引结构需要被更新,大多数情况下带来的好处远大于坏处。
注意的是:索引可以是唯一的和非唯一的。唯一索引不允许在索引列上出现重复值。唯一索引通常创建在有主键或唯一约束的列上。由设置主键或唯一约束而自动创建的索引在约束被删除后,会自动删除,并且不能单独被删除。
- 创建索引:SQL语句—create index <索引名> on <表名>(<列名一>,[<列名二>],...);
- 删除索引:SQL语句—drop index。例如:drop index Friend.PhoneIndexNo;
总结:
- 数据库表的建立索引是非常重要的,会被大多面试官青睐。
- 记得上次面试时,面试官就问了我一个关于查询的知识,他说:我们查询10条数据很快加入只需要0.03秒,照此速度成上千万的数据我们那不得查到猴年马月了,问我怎样提高查询速度??其实这个问题真TM问的直白了,就别怪面试官故意刁难我了。这不就是把索引的功能赤裸裸的告诉我了,就差没给我明说了。所以我活该被刷下来啊。打死我我也不会忘了它—索引。有了它妈妈再也不担心我查大量数据了。接下来我就得再去感受感受它的魅力了。
数据库知识整理<二>的更多相关文章
- 数据库知识整理<六>
聚合函数与分组 6.1使用聚合函数进行数据统计: 聚合函数常见的有以下几种: count:返回该结果集中行的数目. sum:返回结果集中所有值的总和. avg:返回结果集中所有值的平均值. max:返 ...
- 数据库知识整理<一>
关系型数据库知识整理: 一,关系型数据库管理系统简介: 1.1使用数据库的原因: 降低存储数据的冗余度 提高数据的一致性 可以建立数据库所遵循的标准 储存数据可以共享 便于维护数据的完整性 能够实现数 ...
- 数据库知识整理<八>
联接: 8.1理解简单的单联接: 基本上联接的结果是每个集合的笛卡尔积.例如:两个集合{a,b,c}和{a,b}的笛卡尔积是如下的成对集合:{(a,a),(a,b),(b,a),(b,b),(c,a) ...
- 数据库知识整理<五>
简单的数据查询: 5.1查询的基本结构: Sql语句:select [distinct] (* | column [alias],...) from table [where condition] [ ...
- 数据库知识整理<三>
保证数据的完整性: 3.1数据完整性概述: 数据完整性的意义:我们知道数据库能防止储存垃圾数据,RDBMS实现该功能主要是通过维护数据完整性来实现的.根据数据完整性实施方法我们将其分为四类:实体完整性 ...
- 数据库知识整理<四>
使用DML语句更改数据: 所谓DML语句是指数据库操作语句,其中包括的是对数据库数据的修改.删除.插入. 4.1添加新数据: 插入单行的记录:基本的SQL语句为-insert into <表明& ...
- 数据库知识整理<七>
组合查询: 7.1使用子查询: 嵌套在其他查询中的查询,我们称之为子查询.子查询本身也可能包含一个子查询.子查询也称为内部查询,而包含子查询的语句也称为外部查询. 所有的子查询可以被分为两个类别:子查 ...
- 【OGG】OGG基础知识整理
[OGG]OGG基础知识整理 一.GoldenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件.GoldenGate 能够实现大量交易数据的实时捕捉.变换和投递,实现源数据库与 ...
- MySQL 索引知识整理(创建高性能的索引)
前言: 索引优化应该是对查询性能优化的最有效的手段了.索引能够轻易将查询性能提高几个数量级. // 固态硬盘驱动器有和机械硬盘启动器,有着完全不同的性能特性: 然而即使是固态硬盘,索引的原则依然成立, ...
随机推荐
- 深入理解JS异步编程(一)
js事件概念 异步回调 首先了讲讲js中 两个方法 setTimeout()和 setInterval() 定义和用法: setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. 语法 ...
- python学习笔记:文件操作和集合(转)
转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...
- Python2和Python3在windows下共存
Python2.7 和 Python3不兼容,两种环境可能都会用到.ubuntu14.04中已经默认安装了这两个版本,在shell中输入python会自动进入Python2.7的交互环境,输入Pyth ...
- 第23章 排序算法(包括merge等)
第23章 排序算法 Sorting:1 sort Sort elements in range (function template)2 stable_sort Sort elements pr ...
- 7.29 H5学习笔记
常用实体字符小于号 < 大于号 > 和号 & 引号 " 撇号 ' 分 ¢ 镑 £ 日元 ¥ 欧元 € 小节 § 版权 © 注册 ...
- css 透明(transparent)
opacity : .75; //standard css3 style for transparency -moz-opacity : .75; // transparenc ...
- jqGrid学习笔记(一)
3.2.body中的代码 <!-- jqGrid table list4 --> <table id="list4"></table> < ...
- js 获取 通过 ”?“ 或者 ”&“ url 传过来参数值
请先 引用 jQuery的js <script> String.prototype.GetValue=function(para) { var reg = new RegExp(" ...
- JSF2 下 taglib 的问题
在jsf1使用 taglib 定义 标签出现 The absolute uri: http://java.sun.com/jsf/core cannot be resolved in either w ...
- jQuery设置和获取以及修改class name值操作
在Web程序开发中.很多时候会用需要修改Html标签的class名称.来达到修改标签样式的效果.那么在代码中一般是怎么操作的呢.本文将为你详细讲解一下class的使用.在jQuery中可以使用attr ...