MySQL 手记(1)

注:摘自《MySQL入门很简单》

下载安装

dev.mysql.com

优势:开源、开放跨平台、价格优势、功能全。

数据库存储阶段:人工管理阶段、文件系统阶段、数据库系统阶段。

数据库泛型:数据库应该遵循的规则。第一(表中字段不能重复)、二、三、BCN范式。

数据库技术主要包括数据库系统、SQL语言、数据库访问技术。

数据库系统(DBS):数据库、数据库管理系统(DBMS,是用来定义数据、管理和维护数据的软件)、应用开发工具(是使用数据库的软件)。

SQL(结构化查询语言):管理数据库。DDL(定义语言)、DML(操作语言)、DCL(控制语言)

数据库访问技术:c#(ODBC)、Java(JDBC)、PHP(mysqli)

常用数据库:

MySQL 手记(1)

命令行登录数据库:mysql -u root -p

创建数据库

show databases;  //显示已经存在的数据库

create database 数据库名;

删除数据库:drop database 数据库名;

注:删库需慎重,因为会将库中的所有数据全部删除,应当先备份。

数据类型:整数(int)、浮点数、定点数类型;日期和时间类型(datatime);字符串类型(char、VARCHAR、longtest);二进制类型(BLOB)。

 

常见问题:

MySQL报错:Can't connect to MySQL server on localhost (10061)

https://blog.csdn.net/*g861/article/details/78919060

安装时最后一步未响应:

打开C盘,然后设置显示隐藏文件,然后找到programData,进去找到mysql,删除,重新安装。

 

在命令行用net start mysql 开启服务应要有管理员权限

 

卸载MySQL后仍存在MySQL服务:

在管理员权限中的命令行输入:sc delete mysql

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

数据库存储引擎(表的类型,插入式概念)

show engines \G 或 show variables like 'have%';

查看默认存储引擎(InnoDB): show variables like 'storage_engine';

若想更改默认引擎可在my.ini文件中修改"default-storage-engine=INNODB"

InnoDB引擎:提供了良好的事务管理、崩溃修复能力和并发控制,但读写效率稍差,占用的数据空间相对比较大。

MyISAM引擎:占用空间小,处理速度快,但不支持事物的完整性和并发性。

MEMORY引擎:处理速度非常快,但其数据已丢失,生命周期短,选用时应特别小心

MySQL 手记(1)

MySQL 手记(1)

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

表是数据库存储数据的基本单位,一个表包含若干个字段或记录。

创建表,语法如下:

首先要选择数据库:use 数据库名;

MySQL 手记(1)

完整性约束条件要求用户对该属性进行的操作符合特定的要求,若不满足,数据库将不执行用户的操作,其目的是为了保证数据库中数据的完整性。

MySQL 手记(1)

主键(必须是唯一的,值为非空值,可以是一个字段,也可是多个字段,主要目的是帮助MySQL以最快速度查找到表中的某一条信息)

MySQL 手记(1)

多字段主键:

MySQL 手记(1)

外键:

设置表外键的原则是必须依赖于数据库中已存在的父表的主键,值可以为空。作用是建立该表与其父表的关系。父表删除某条信息,子表信息也会有相应的改变。语法如下:

MySQL 手记(1)

创建外键:

MySQL 手记(1)

注:子表的外键关联的必须是父表的主键,而且,数据类型必须是一致的。

设置表的非空约束:属性名  数据类型  NOT NULL

设置表的唯一性约束:属性名  数据类型  NOT UNIQUE

设置表的属性值自动增加:

MySQL 手记(1)

设置表的属性的默认值:属性名  数据类型  DEFAULT 默认值

查看表的结构:DESCRIBE 表名;或 DESC 表名;

查看表详细结构:SHOW CREATE TABLE 表名;

修改表名:

MySQL 手记(1)

修改字段的数据类型:

MySQL 手记(1)

修改字段名:

MySQL 手记(1)

增加字段:

MySQL 手记(1)

删除字段:

MySQL 手记(1)

修改字段的排列位置:

MySQL 手记(1)

更改表的引擎(如果表中存在较多数据最好不要轻易更改引擎):

MySQL 手记(1)

删除表的外键约束:

MySQL 手记(1)

删除没有被关联的普通表:DROP TABLE 表名;

删除被其他表关联的父表:先删除子表的外键约束,再删除父表;

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

索引

索引是一种特殊的数据库结构,可以用来快速查询数据库表中的特定记录,由表中一列或多列组合而成,其作用是提高对表中数据的查询速度。但创建和维护索引需要耗费时间。不同的存储引擎定义了每个表的最大索引数和最大索引长度。

MySQL 手记(1)

分类:普通、唯一性、全文、单列、多列、空间索引。

MySQL 手记(1)

MySQL 手记(1)

索引的设计原则

创建索引:

1.创建表时建立索引:

MySQL 手记(1)

查看索引是否被使用:

MySQL 手记(1)

2.在已经存在的表上建立索引:

MySQL 手记(1)

3.用AILTER TABLE语句来创建索引:

MySQL 手记(1)

删除索引

MySQL 手记(1)

常见问题:

MySQL 手记(1)

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

视图

视图(不支持输入参数)是由数据库中的一个表或多个表导出的虚拟表,其作用是方便用户对数据的操作。

视图的作用:1.使操作简单化。2.增加数据的安全性。3.提高表的逻辑独立性。

创建视图:

MySQL 手记(1)

使用SELECT语句查询是否具有相应的权限:

MySQL 手记(1)

在单表上创建视图:

MySQL 手记(1)

MySQL 手记(1)

在多表上创建视图:

MySQL 手记(1)

查看视图:

1.DESCRIBE 视图名;或 DESCRIBE 视图名;

2.SHOW TABLE STATUS LIKE '视图名';

3.SHOW CREATE VIEW 视图名;

在view表中查看视图的详细信息:

MySQL 手记(1)

MySQL 手记(1)

修改视图:

MySQL 手记(1)

MySQL 手记(1)

MySQL 手记(1)

更新视图:

MySQL 手记(1)

MySQL 手记(1)

删除视图(只能删除定义,不会删除数据):

MySQL 手记(1)

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

触发器

创建只有一个执行语句的触发器:

MySQL 手记(1)

创建有多个执行语句的触发器:

MySQL 手记(1)

MySQL 手记(1)

MySQL 手记(1)

查看触发器:

查看所有触发器:SHOW TRIGGERS;

在triggers表中查看触发器:

MySQL 手记(1)

MySQL 手记(1)

触发器执行的顺序:BEFORE 触发器、表操作(INSERT、UPDATE、DELETE)和AFTER触发器

删除触发器:DROP TRIGGER 触发其名;