学习mysql之前,有必要先简单提一下数据库。
数据库基础
1.数据库是什么?
是一种高效的存储和处理数据的介质。(主要有两种:磁盘和内存)
2.数据库分类
基于存储介质不同,分为关系型数据库(SQL),非关系型数据库(NoSQL:Not Only SQL),也可以说不是关系型的数据库都叫做非关系型数据库。
接下来分别说一下关系型数据库和非关系型数据。
关系型数据库:安全(数据保存在磁盘中基本不可能丢失) ,容易理解。但缺点是比较浪费空间。
大型:Oracle,DB2 中型:SQL-SERVER ,Mysql 小型:access
非关系型数据库:效率高(运行在内存中),但也有缺点,那就是不安全,断电容易丢失。
3.关系型数据库
(1)定义:关系型数据库是一种建立在关系模型上的数据库。
关系模型:一种所谓建立在关系上的模型,关系模型包含3个方面:数据结构(数据存储的问题),操作指令集合(SQL语句),完整型约束(表内数据约束,表与表之间约束)。
(2)关系型数据库的设计
从需要存储的数据需求中分析,如果是一类数据(实体),应该设计成一张二维表。表由表头,字段名和数据部分组成。
画重点~~~
关系型数据库:维护实体内部,实体与实体之间的关系;关系型数据库特点之一,如果表中对应的某个字段没有值,单系统依然要给分配空间。所以,关系型数据库比较浪费空间。
(3)关键字
数据库(database)
数据库管理系统(Database Management System):专门管理数据库。
数据库系统(Database System):是一种虚拟系统,将多种内容关联起来。
行/记录(row/record) 列/字段(column/field)
4.SQL
SQL:Structured Query Language 结构化查询语言(数据以查询为主)
SQL分为3部分:
DDL(Data Definition Language)数据定义语言:用来维护存储数据的结构
DML(Data Manipulation Language)数据操作语言:用来对数据进行操作
DCL(Data Control Language)数据控制语言 :主要是负责权限管理
5.接下来到主角了,Mysql数据库登场了。。。
定义:Mysql是一种c/s(客户/服务端)结构的软件,若想访问服务器必须通过客户端(服务端一直运行,客户端在需要使用时运行)
交互方式:(1)客户端连接认证:连接服务器,认证身份。
(2)发送SQL指令
(3)服务器接受SQL指令:处理SQL指令,返回操作结果。
(4)客户端接受结果,显示结果。
(5)断开连接(释放资源,服务器并发限制)
6.SQL基本操作:
根据操作对象分类:库操作,表操作,数据操作。
库操作(对数据库的增删改查)
新增数据库:create database 数据库名字【库选项】;
库选项:用来约束数据库,分两个选项。字符集设定:charset/character set ;校对集设定:collate 具体校对集。
例:create database mydatabase charset utf8; -- 创建一个名为mydatabase的数据库
创建关键字数据库
例:create database database charset utf8;
执行上面的语句后,SQL会报错,注意SQL报错只会告诉报错的大概位置,不会说明报错原因(静默模式)。如果非要使用关键字后保留字,必须使用反引号,如:create database `database` charset utf8;
~~创建数据库的SQL语句执行之后,发生了什么?一方面,在数据库系统中,增加了对应的数据库信息,另一方面,会在保存数据的文件夹下面,创建一个对应数据库名字的数据库。
查看数据库:
查看所有数据库:show databases;
查看指定数据库:show databases like 'pattern'; -- pattern 匹配模式,包括%(表示匹配多个字符串))和_(表示匹配单个字符串)
查看数据库的创建语句:show create database 数据库名字;
更新数据库:
数据库的名字不可以修改,数据库的修改限库选项,字符集和校对集。
例:alter database mydatabase charset GBK; -- 修改数据库字符集
删除数据库:
drop database 数据库名字;
例:drop database mydatabase;
新增数据表:create table if not exists 表名(
字段名字 数据类型;
字段名字 数据类型;
字段名字 数据类型
)
例:创建一个表 create table if not exists student(
name varchar(10),
gender varchar(10),
number varchar(10),
age int
)charset utf8;
注意:任何一个表的设计都必须指定数据库。
查看数据表:
查看所有表:show tables;
查看部分表:show tables like 'pattern';
修改数据表:
修改表名:rename 老表名 to 新表名;
修改表选项:字符集,校对集和存储引擎 alter table 表名 表选项 值;
例:alter table mystudent charset = gbk;