MySQL知识清单(一)

什么是MySQL

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

DBMS(数据库管理系统)

是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。数据库管理系统是数据库系统的核心,是管理数据库的软件。我们一般说的数据库,就是指的DBMS: 数据库服务器。

术语

  1. 表—— 具有固定的列数,和任意的行数
  2. 数据库—— 数据库是一些关联表的集合
  3. 列—— 一个数据项 Field 字段
  4. 行—— 一条记录 row
  5. 主键—— 主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
  6. 外键—— 外键用于关联两个表
  7. 索引—— 使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。

存储引擎(三类)

  1. MYISAM:
    它不支持事务,也不支持外键,尤其是访问速度快,对事务完整性没有要求或者以SELECT、INSERT为主的应用基本都可以使用这个引擎来创建表。每个MyISAM在磁盘上存储成3个文件,其中文件名和表名都相同,但是扩展名分别为:.frm(存储表定义)、MYD(MYData,存储数据)、MYI(MYIndex,存储索引)。
  2. INNODB:InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比MyISAM的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
  3. MEMORY:memory使用存在内存中的内容来创建表。每个MEMORY表实际对应一个磁盘文件,格式是.frm。MEMORY类型的表访问非常快,因为它到数据是放在内存中的,并且默认使用HASH索引,但是一旦服务器关闭,表中的数据就会丢失,但表还会继续存在。

常用数据库命令

  1. 创建数据库
create database 数据库名称
  1. 查看数据库(查看所有已经创建的数据库)
show databases;
  1. 删除数据库
drop database 数据库名称
  1. 使用数据库
use 数据库名称
  1. 查看数据库中的表
show  tables;

SQL

什么是SQL

SQL是Structured Quevy Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。

SQL功能分类

1、DDL:数据定义语言、定义数据库对象、用来创建库,表,列。
2、DML:数据库操作语言、操作数据库表中的记录。
3、DQL:数据查询语言、用来查询数据。
4、DCL:数据控制语言、用来定义访问权限和安全级别。

SQL数据类型

double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
char:固定长度字符串类型; char(10) 'abc ’
varchar:可变长度字符串类型;varchar(10) ‘abc’
text:字符串类型;
blob:二进制类型;
date:日期类型,格式为:yyyy-MM-dd;
time:时间类型,格式为:hh:mm:ss
datetime:日期时间类型 yyyy-MM-dd hh:mm:ss

DDL语句

创建数据库

create database 数据库名  character set utf8;

创建学生表

create table student(
		id int ,
		name varchar(20),
		email varchar(20),
		age int
		);

添加一列字段

alter table 表名 add 列名 数据类型;

查看表的字段信息

desc 表名;

修改一个表的字段类型

alter table 表名 modify 字段名 数据类型;

删除一列

alter table 表名 drop 列名

修改表名

rename table 原始表名 to 新表名

查看创建表的过程

show create table 表名

删除表

drop table 表名
DML语句

1、查询语句
查询全部:select * from 表名
根据条件查询:select * from 表名 where (条件),多个条件用and连接
2、插入语句(如学生表,id,name,age,gender.class)
insert into student(id,name,age,gender,class) value (1,‘张三’,20,‘男’,‘16班’);
3、更新语句
update student set age=30 where id=1;
4、删除语句
delete from student where id=1;