MYSQL数据库应用从入门到精通 (个人复习时的基础巩固)

第一章  数据库概述
1.数据管理:指对各种数据进行分类、组织、编码、存储、检索和维护。
2.数据库:(DB:DataBase)指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户和应用共享的数据集合。
   数据库管理系统:(DBMS:DataBase Management System)指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性,用户通过DBMS访问数据库中数据。目前较流行的为Oracle、MySQL、SQL Server和DB2。
   数据库系统:(DBS:DataBase System)指在计算机系统中引入数据库后的系统,通常由计算机硬件、软件、数据库管理系统和数据管理员组成。
3.数据库技术经历阶段:
  1.层次数据库和网状数据库技术阶段
      层次:IMS,网状:IDS。
  2.关系数据库技术阶段 
      Oracle、MySQL(Oracle)、SQL Server(Microsoft)、DB2(IBM)、PostgreSQL(SyBase)和InFormix。
  3.后关系数据库技术阶段
      面向对象数据库技术(ORDBMS)和结构化数据库技术(NOSQL)。
4.数据库管理系统提供功能通过SQL实现
  SQL:Structure Query Language,结构化查询语言。
  1.数据定义语言(Data Definition Language,DDL)
  2.数据操作语言(Data Manipulation Language,DML)
  3.数据控制语言(Data Control Language,DCL)
5.关于MySQL
  1.logo:Sakila,海豚。
 
第二章 MySQL安装和配置
1.win + R --cmd -- net start:查看已经启动以下 Windows 服务: net stop/start MySQL将mysql软件服务关闭或开启
2.快捷键,Ctrl+Alt+Delete 任务管理器
 
 
第三章 MySQL数据库基本操作
1.创建数据库  CREATE DATABASE database_name;
2.显示数据库  SHOW DATABASES;
3.选择数据库  USE database_name;
4.删除数据库  DROP DATABASE database_name;
5.MySQL数据库分类:系统数据库和用户数据库;
   1.系统数据库:
       1.information_schema:主要存储系统中的一些数据库对象信息,如用户表信息、列信息、权限信息、字符集信息和分区信息等;
       2.performance_schema:主要存储数据库服务器性能参数;
       3.mysql:主要存储系统的用户权限信息;
   2.用户数据库:用户根据实际需求创建的数据库
  5.1数据库是存储数据库对象的容器,所谓数据库对象是存储、管理和使用数据的不同结构形式,包括表、视图、存储过程、函数、触发器、事件等。
6.使用MySQL Command Line Client 时可以使用如 mysql > #备注操作说
 
 
 
第四章  MySQL数据库中存储引擎和数据库类型
1.存储引擎  指定表的类型,及如何存储和索引数据、是否支持事物等,决定了表在计算机中的存储方式。
2.显示引擎: SHOW ENGINES; 在具体执行SQL语句时,可以用“;”、“\g”、“\G"符号表示结束,
   查看所支持的存储引擎:SHOW VARIABLES LIKE 'hava%';
   查看默认的存储引擎: SHOW VARIABLES LIKE 'storage_engine%';
3.修改存储引擎,在my.ini配置文件中。
4.MyISAM、InnoDB、MEMORY三种存储引擎相比
  
特性 MyISAM InnoDB MEMORY
存储限制 64TB
事物安全 不支持 支持 支持
锁机制 表锁 行锁 表锁
B树索引 支持 支持 支持
哈希索引 不支持 不支持 支持
全文索引 支持 不支持 不支持
集群索引 不支持 不支持 不支持
数据缓存   支持 支持
索引缓存 支持 支持 支持
数据可压缩 支持 不支持 不支持
空间使用 N/A
内存使用 中等
批量插入的速度
支持外键 不支持 支持 不支持
   1.MyISAM存储引擎:因为不支持事务和外键,故访问速度较快,对事务完整性没有要求并以访问为主的应用适合使用。
   2.InnoDB存储引擎:在事务 上具有优势,即支持具有提交、回滚和崩溃恢复能力的事务 安装,比MyISAM占用更多的磁盘空间,因此需要进行频繁的更新、删除操作,同时还对事务的完整性要求较高,需要实现并发控制,因此适合使用该存储引擎。
   3.MEMORY存储引擎:该引擎使用内存来存储数据,因此数据访问速度快,但安全上没有保障,如果应用中涉及数据比较小,需要进行快速访问,则适合使用该引擎。
5.数据类型: MySQL提供整数类型、浮点数类型、定点数类型和位类型、日期和时间类型、字符串类型。
6.关于查询数据类型信息:
  例如:mysql> HELP contents;  mysql>HELP Data Types;  mysql> HELP INT;
 
 
第五章 表的操作
1.创建表的语法形式 
    CREATE TABLE table_name (
               属性名  数据类型,
               属性名  数据类型,
               ..................................
               属性名  数据类型,
     );
2.查看表结构
  DESCRIBE table_name; 查看表定义
  SHOW CREATE TABLE table_name;  查看表详细定义
3.删除表
   DROP TABLE table_name
4.修改表
   1.修改表名  
      ALTER TABLE old_table_name RENAME  [TO] new_table_name;
   2.增加字段
      1.在表的最后一个位置增加字段
         ALTER TABLE table_name  ADD 属性名  属性类型;
      2.在表的第一个位置增加字段
          ALTER TABLE table_name  ADD 属性名  属性类型 FIRST;
      3.在表的制定字段之后增加字段
          ALTER TABLE table_name  ADD 属性名  属性类型  AFTER 属性名 ;
      4.删除字段
          ALTER TABLE table_name DROP 属性名;
      5.修改字段的数据类型   
         ALTER TABLE table_name  MODIFY  属性名  属性类型;  
      6.修改字段的名字
         ALTER TABLE table_name  CHANGE 旧属性名  新属性名  旧属性类型;
      7.同时修改字段的名字和属性
         ALTER TABLE table_name  CHANGE 旧属性名  新属性名  新属性类型;
      8.修改字段的顺序
         ALTER TABLE table_name  MODIFY  属性名1 数据类型  FIRST|AFTER  属性名2;
5.MySQL支持的完整性约束  
  1.NOT NULL:约束字段的值不能为空
     CREATE TABLE table_name (
               属性名  数据类型  NOT NULL,
               属性名  数据类型,
               ..................................
               属性名  数据类型,
     );
   2. DEFAULT:设置字段的默认值  
    CREATE TABLE table_name (
               属性名  数据类型  DEFAULT  默认值,
               属性名  数据类型,
               ..................................
               属性名  数据类型,
     ); 
   3.UNIQUE KEY (UK) :约束字段值是唯一  
    CREATE TABLE table_name (
               属性名  数据类型  UNIQUE,
               属性名  数据类型,
               ..................................
               属性名  数据类型,
     );  
   若想给UK约束设置一个名字,可以使用CONSTRAINT,
    CREATE TABLE table_name (
               属性名1  数据类型,
               属性名2  数据类型,
               ..................................
               属性名n  数据类型,
             CONSTRAINT  uk_属性名1  UNIQUE(属性名1)
     );
   4.PRIMARY KEY (PK) :约束字段为表的主键,可以作为该表记录的唯一标识
      1.单字段主键
         CREATE TABLE table_name (
               属性名  数据类型  PRIMARY  KEY,
               属性名  数据类型,
               ..................................
               属性名  数据类型,
     );
      2.多字段主键
         CREATE TABLE table_name (
               属性名  数据类型,
               属性名  数据类型,
               ..................................
               属性名  数据类型,
             【CONSTRAINT 约束名】  PRIMARY  KEY(属性名,属性名......)
     );
   5.AUTO_INCREMENT:约束字段的值为自动增加
 
    CREATE TABLE table_name (
               属性名  数据类型   AUTO_INCREMENT,
               属性名  数据类型,
               ..................................
               属性名  数据类型,
     );
   6.FOREIGN KEY (FK):约束字段为表的外键
    CREATE TABLE table_name (
               属性名  数据类型,
               属性名  数据类型,
               ..................................
               属性名  数据类型,
              CONSTRAINT  外键约束名  FOREIGN KEY (属性名1)  REFERENCE  表名  (属性名2)
     );
 
 
 
第六章   索引的操作
1.索引:由表中的一个字段或多个字段组成的键组成,这些键存储在数据结构(B-树或哈希表)中,InnoDB和MyISAM存储引擎支持BTREE类型索引,MEMORY存储引擎支持HASH类型索引,默认为前者索引。
  适合创建索引:1.经常被查询的字段,即在WHERE子句中出现的字段。
                         2.在分组的字段,即在GROUP BY子句中出现的字段。
                         3.存在依赖关系的子表和父表之间的联合查询,即主键或外键字段。
                         4.设置唯一完整性约束的字段。
 不适合创建索引:1.在查询中很少被使用的字段。
                           2.拥有许多重复值的字段。
2.创建和查看索引
  1.创建和查看普通索引
     1.创建表时创建普通索引
    CREATE TABLE table_name (
               属性名  数据类型,
               属性名  数据类型,
               ..................................
               属性名  数据类型,
               INDEX|KEY  【索引名】(属性名1 【(长度)】【SAC|DESC】)
     );
     2.在已经存在的表上创建普通索引  
      CREATE  INDEX 索引名  ON  表名  (属性名 【(长度)】 【SAC|DESC】)
     3.通过SQL语句ALTER  TABLE 创建普通索引
      ALTER  TABLE  table_name  ADD INDEX | KEY  索引名(属性名 【(长度)】 【ASC|DESC】)
  2.创建和查看唯一索引
     1.创建表时创建唯一索引
    CREATE TABLE table_name (
               属性名  数据类型,
               属性名  数据类型,
               ..................................
               属性名  数据类型,
               UNIQUE  INDEX|KEY  【索引名】(属性名1 【(长度)】【SAC|DESC】)
     );
     2.在已经存在的表上创建普通索引  
      CREATE  UNIQUE  INDEX 索引名  ON  表名  (属性名 【(长度)】 【SAC|DESC】)
     3.通过SQL语句ALTER  TABLE 创建普通索引
      ALTER  TABLE  table_name  ADD  UNIQUE  INDEX | KEY  索引名(属性名 【(长度)】 【ASC|DESC】)
  3.创建和查看全文索引
     1.创建表时创建全文索引
    CREATE TABLE table_name (
               属性名  数据类型,
               属性名  数据类型,
               ..................................
               属性名  数据类型,
               FULLTEXT  INDEX|KEY  【索引名】(属性名1 【(长度)】【SAC|DESC】)
     );
     2.在已经存在的表上创建普通索引  
      CREATE  FULLTEXT   INDEX 索引名  ON  表名  (属性名 【(长度)】 【SAC|DESC】)
     3.通过SQL语句ALTER  TABLE 创建普通索引
      ALTER  TABLE  table_name  ADD  FULLTEXT   INDEX | KEY  索引名(属性名 【(长度)】 【ASC|DESC】)
  4.创建和查看多列索引
     1.创建表时创建多列索引
    CREATE TABLE table_name (
               属性名  数据类型,
               属性名  数据类型,
               ..................................
               属性名  数据类型,
               INDEX|KEY  【索引名】(属性名1 【(长度)】【SAC|DESC】
                                                     ......................................................................
                                                    属性名 n 【(长度)】【SAC|DESC】)
     );
     2.在已经存在的表上创建普通索引  
      CREATE  INDEX 索引名  ON  表名 (属性名1 【(长度)】【SAC|DESC】
                                                             ......................................................................
                                                            属性名 n 【(长度)】【SAC|DESC】);
     3.通过SQL语句ALTER  TABLE 创建普通索引
      ALTER  TABLE  table_name  ADD INDEX | KEY  索引名(属性名1 【(长度)】【SAC|DESC】
                                                                                           ......................................................................
                                                                                          属性名 n 【(长度)】【SAC|DESC】);
3.删除索引:
    DROP  INDEX  index_name  ON table_name;
 
  
posted @ 2016-10-29 12:04  慰亭  阅读(210)  评论(0)    收藏  举报