又继续写的博客,希望自己能坚持每天写博客。分享自己的点滴,对自己成长有帮助。今天下午高强度打了三个小时篮球,小腿都抽筋了。很爽,失落的心情似乎变得开明了一些。想到了一句话:“像SB式的坚持总会有好的收获”,因为坚定了目标,不达目标不罢休。其他的就没什么了。好吧,不多说这些了。继续数据库知识总结吧。

二,管理数据库和表:

2.1管理数据库:

  • 创建和使用数据库:
  1. 创建数据库的SQL语句:create database 数据库名;
  2. 需要注意的是:数据库名在服务器中必须是唯一的并且遵循合法的标识符规则:
  3. 第一个字符必须是:a-z和A-Z;下划线(_)、at符号(@)、数字符号(#)。
  4. 后面的字符可以是:字母、十进制数字、@、$、#、_。不能是RDBMS的保留字、不允许空格或其他特殊字符。
  • 链接到数据库:
  1. 使用那个数据库即用SQL语句:use 数据库名;
  • 删除数据库:
  1. 删除数据库的SQL语句:drop database 数据库名;

2.2数据类型:

  • 整数数据类型:
  1. TINYINT:存储范围0-255,此类型数据占用1个字节的存储空间。
  2. SMALLINT:2个字节。
  3. INT:4个字节。
  4. BIGINT:8个字节。
  • 浮点型数据类型:
  1. REAL型
  2. FLOAT型
  3. DECIMAL型
  4. 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语句同其他选项一起可以更改表的数据结构:
  1. 添加一个表中没有的字段Address:alter table Friend add Address varchar(50);
  2. 如果要添加多个列的话:alter table Friend add Address varchar(50),Email varchar(30);
  3. 如果要更改列定义,可以使用SQL语句,比如给Phone列添加一个默认值约束,默认为‘不知道电话号码’:alter table Friend modify Phone default('不知道电话号码');
  4. 要删除表中的PhoneNo列:alter table Friend drop column PhoneNo;

2.4管理索引(非常重要,经常会被面试官问到):

  索引的意义:索引是一个设计用来提供整个数据库操作速度的数据库对象,它通过创建一个内部的索引表来达到快速搜索的目的。索引是依赖于表建立的,在一个表上创建索引可以提高在该表上执行select语句的速度,因为索引被用于快速找到想要的记录而不是执行一个全表扫描,但是会降低delete、update、insert语句的执行速度,因为每次执行这些操作时内部索引结构需要被更新,大多数情况下带来的好处远大于坏处。

  注意的是:索引可以是唯一的和非唯一的。唯一索引不允许在索引列上出现重复值。唯一索引通常创建在有主键或唯一约束的列上。由设置主键或唯一约束而自动创建的索引在约束被删除后,会自动删除,并且不能单独被删除。

  1. 创建索引:SQL语句—create index <索引名> on <表名>(<列名一>,[<列名二>],...);  
  2. 删除索引:SQL语句—drop index。例如:drop index Friend.PhoneIndexNo;

  

总结:

  1. 数据库表的建立索引是非常重要的,会被大多面试官青睐。
  2. 记得上次面试时,面试官就问了我一个关于查询的知识,他说:我们查询10条数据很快加入只需要0.03秒,照此速度成上千万的数据我们那不得查到猴年马月了,问我怎样提高查询速度??其实这个问题真TM问的直白了,就别怪面试官故意刁难我了。这不就是把索引的功能赤裸裸的告诉我了,就差没给我明说了。所以我活该被刷下来啊。打死我我也不会忘了它—索引。有了它妈妈再也不担心我查大量数据了。接下来我就得再去感受感受它的魅力了。

数据库知识整理<二>的更多相关文章

  1. 数据库知识整理<六>

    聚合函数与分组 6.1使用聚合函数进行数据统计: 聚合函数常见的有以下几种: count:返回该结果集中行的数目. sum:返回结果集中所有值的总和. avg:返回结果集中所有值的平均值. max:返 ...

  2. 数据库知识整理<一>

    关系型数据库知识整理: 一,关系型数据库管理系统简介: 1.1使用数据库的原因: 降低存储数据的冗余度 提高数据的一致性 可以建立数据库所遵循的标准 储存数据可以共享 便于维护数据的完整性 能够实现数 ...

  3. 数据库知识整理<八>

    联接: 8.1理解简单的单联接: 基本上联接的结果是每个集合的笛卡尔积.例如:两个集合{a,b,c}和{a,b}的笛卡尔积是如下的成对集合:{(a,a),(a,b),(b,a),(b,b),(c,a) ...

  4. 数据库知识整理<五>

    简单的数据查询: 5.1查询的基本结构: Sql语句:select [distinct] (* | column [alias],...) from table [where condition] [ ...

  5. 数据库知识整理<三>

    保证数据的完整性: 3.1数据完整性概述: 数据完整性的意义:我们知道数据库能防止储存垃圾数据,RDBMS实现该功能主要是通过维护数据完整性来实现的.根据数据完整性实施方法我们将其分为四类:实体完整性 ...

  6. 数据库知识整理<四>

    使用DML语句更改数据: 所谓DML语句是指数据库操作语句,其中包括的是对数据库数据的修改.删除.插入. 4.1添加新数据: 插入单行的记录:基本的SQL语句为-insert into <表明& ...

  7. 数据库知识整理<七>

    组合查询: 7.1使用子查询: 嵌套在其他查询中的查询,我们称之为子查询.子查询本身也可能包含一个子查询.子查询也称为内部查询,而包含子查询的语句也称为外部查询. 所有的子查询可以被分为两个类别:子查 ...

  8. 【OGG】OGG基础知识整理

    [OGG]OGG基础知识整理 一.GoldenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件.GoldenGate 能够实现大量交易数据的实时捕捉.变换和投递,实现源数据库与 ...

  9. MySQL 索引知识整理(创建高性能的索引)

    前言: 索引优化应该是对查询性能优化的最有效的手段了.索引能够轻易将查询性能提高几个数量级. // 固态硬盘驱动器有和机械硬盘启动器,有着完全不同的性能特性: 然而即使是固态硬盘,索引的原则依然成立, ...

随机推荐

  1. LINUX下查看负载

    1,查看磁盘 df -h 2,查看内存大小 free free [-m|g]按MB,GB显示内存 vmstat 3,查看cpu cat /proc/cpuinfo 只看cpu数量grep " ...

  2. 移动手机专题rem布局实践+主要代码

    HTML开头部分 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" / ...

  3. js节点属性

    在文档对象模型 (DOM) 中,每个节点都是一个对象.DOM 节点有三个重要的属性 : 1. nodeName : 节点的名称 2. nodeValue :节点的值 3. nodeType :节点的类 ...

  4. a标签鼠标经过,字颜色和下划线的颜色都变红

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  5. centos6.5环境源码编译安装mysql5.6.34

    centos6.5环境源码编译安装mysql5.6.34 源码下载地址http://dev.mysql.com/downloads/mysql/5.6.html#downloads 选择Generic ...

  6. 在linux上使用交换文件扩展交换空间

    想像一种情景,当我们的Linux系统用尽交换空间时,在这种情况下,我们想要使用swap分区扩展交换空间,但在某些情况下磁盘上已经没有可用的空闲分区了,致使我们不能把它扩大. 因此,在这种情况下,我们可 ...

  7. {Reship}{ListView}C# ListView用法详解

    ======================================================================== This aritcle came from http ...

  8. VC++ 浅谈VS2010中CMFCToolBar的用法

    本文将给大家介绍Visual Studio 2010中CMFCToolBar的用法,CMFCToolBar可以让用户自定义工具栏图标,使用静态成员函数SetUserImages()将一个CMFCToo ...

  9. 【软件工程】电梯调度的初步实现 李亚文&&郭莉莉

    一.开门见山,代码粘 using System; using System.Collections.Generic; using System.Data; using System.Drawing; ...

  10. Installshield 打包安装包心得

     制作简单的安装软件 声明:下面的教程,是把读者当做完全没接触过IS的角度来制作的. 1. 启动InstallShield 12.建立一个InstallShield MSI Project,如图: 2 ...