MySQL知识清单(一)
什么是MySQL
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
DBMS(数据库管理系统)
是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。数据库管理系统是数据库系统的核心,是管理数据库的软件。我们一般说的数据库,就是指的DBMS: 数据库服务器。
术语
- 表—— 具有固定的列数,和任意的行数
- 数据库—— 数据库是一些关联表的集合
- 列—— 一个数据项 Field 字段
- 行—— 一条记录 row
- 主键—— 主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
- 外键—— 外键用于关联两个表
- 索引—— 使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
存储引擎(三类)
- MYISAM:
它不支持事务,也不支持外键,尤其是访问速度快,对事务完整性没有要求或者以SELECT、INSERT为主的应用基本都可以使用这个引擎来创建表。每个MyISAM在磁盘上存储成3个文件,其中文件名和表名都相同,但是扩展名分别为:.frm(存储表定义)、MYD(MYData,存储数据)、MYI(MYIndex,存储索引)。 - INNODB:InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比MyISAM的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
- MEMORY:memory使用存在内存中的内容来创建表。每个MEMORY表实际对应一个磁盘文件,格式是.frm。MEMORY类型的表访问非常快,因为它到数据是放在内存中的,并且默认使用HASH索引,但是一旦服务器关闭,表中的数据就会丢失,但表还会继续存在。
常用数据库命令
- 创建数据库
create database 数据库名称
- 查看数据库(查看所有已经创建的数据库)
show databases;
- 删除数据库
drop database 数据库名称
- 使用数据库
use 数据库名称
- 查看数据库中的表
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;