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;

浙公网安备 33010602011771号