终于想起来了,整理一下,MySql的笔记吧,之前都写到记事本里了,今天给它整到博客上来吧。
什么是数据库?数据库分类?什么是SQL?
什么是数据库?
数据库:database。数据存储的仓库。
专业定义:高效的存储和处理数据的介质(包括磁盘和内存)。
数据库分类?
按存储介质不同:关系型数据库(sql数据库)、非关系型数据库(nosql数据库)
什么是SQL?
SQL:Structured Query Language
SQL分为三个部分
DDL:Data Definition Language,数据定义语言,用来维护存储数据的机构(数据库、
表),代表指令:create,drop,alter等
DML:Data Manipilation Language 数据库操作语言,用来对数据进行操作(数据表中的内
容),代表指令:insert,update,delete,其中DML中有在内部单独进行了一个分类:
DQL(Data Query Language:数据库查询语言,如select)
DCL:Data Control Language,数据库控制语言,主要负责权限管理(用户),代表指
令:grant,revoke等
SQL是关系型数据库的操作指令。SQL是一种约束,但并不强制,因此不同的数据库产品可以发
展自己的特色。他们内部会有一些细微的差别。
MySql数据库
Mysql数据库是一种C/S架构的软件:客户端/服务端,若想访问服务器必须通过客户端。
交互方式:
1.客户端连接认证:连接服务器,认证身份:mysql.exe -hpup
2.发送SQL指令
3.服务器接收SQL指令:处理SQL指令:返回操作结果
4.客户端接收结果
5.断开连接释放资源。
Mysql服务器对象
我们无法完全了解服务器内部的内容,因此只能粗略的分析数据库库服务器内部的结构。将Mysql服务器内部对象分为四层:系统(DBMS)->数据库(DB)->数据表(Table)->字段(field)。
SQL基本操作:CRUD
将SQL的基本操作根据数据操作对象进行分类:库操作、表操作、数据操作
库操作
新建数据库:
基本语法:Creat database 数据库名字 [库选项]
库选项:用来约束数据库,分为两个选项
字符集设定: charset/charcater set 字符集 (数据存储的编码格式):常用字符集GBK、UTF-8
校对集设定:coolate具体校对集。校对集依赖字符集
数据库名字不能使用关键字和保留字,如果非要使用关键字或保留字,则必须使用反引号(英文键盘输入esc键下边的键)
当创建数据库的SQL语句执行之后发生了什么?
1.在数据库系统中增加了对应数据库信息。
2.会在保存数据的文件夹下:Data目录,创建一个对应数据库名字的文件夹。
3.每个数据库下都有一个opt文件:保存了库选项。
查看数据库:
1.查看所有数据库:show databases;
2.查看指定部分数据库:show databases like ‘pattern’ --pattern是匹配模式
'%”表示匹配多个字符
"_"表示匹配多个字符
3.查看数据库的创建语句:show create mydatabase;
更新数据库:
数据库名字不可以修改。
数据库的修改仅限库选项:字符集和校对集。
基本语法:Alter database 数据库名字 [库选项]
Charset/charset/charcater[=] 字符集和校对集。
Collate 校对集
如:alert database mydb charset GBK
删除数据库:
所有操作中:删除时最简单的
基本语法:drop database 数据库名字
表操作
表和字段是密不可分的。
新增数据表:
基本语法:create table [if not exists] 数据库名 表名(字段名字 数据类型) [表选项]
if not exists如果表名不存在,那么就创建,否则不执行创建代码:检查功能。
表选项:控制标的表现
字符集:charset/charcater set 具体字符集保证数据存储的字符集
校对集:collate 具体校对集
查看数据表:
1.查看所有表:show tables;
2.查看部分表:show tables like ‘pattern’;
3.查看表的创建语句:show create table 表名;
4.查看表结构:查看表的字段信息 Desc/decribe/show 表名;
更新数据表:
表本身存在 还包含字段,表的修改包括修改表本身和修改字段。
修改表本身:
表本身可以修改表名、表选项
修改表名:rename table 旧表名 to 新表名;
修改表选项:字符集、校对集和存储引擎 Alter table 表名 表选项 = 值
修改表字段:
新增字段:Alter table 表名 add [column] 字段名 数据类型 [列属性][位置]
修改字段:Alter table 表名 modify 字段名 数据类型 [属性][位置]
重命名字段:Alter table 表名 旧字段 新字段 数据类型 [属性][位置]
删除字段:Alter table 表名 drop 字段名
位置:字段名可以存储在表中的任意位置。
First:第一个位置
After:在哪个字段之后,在哪个字段之后: after 字段名; 默认的是在最后一个字段之后默认存储
在最后一个字段之后。
删除数据表:
Drop table 表1,表2,表3;
数据操作
新增数据
格式1:给全表字段插入数据,不需要指定字段列表,要求数据的值出现顺序必须与表中设计的字段出现的顺序一会;
凡是飞数据数据都需要使用引号(建议使用单引号)包裹
insert into 表名 values(值列表) 该语句也可以一次性插入多条数据,但是需要用逗号隔开
格式2:给部分字段插入数据,需要选定字段列表,字段列表出现的顺序与字段的顺序无关,但是值列表的顺序必须
与选定的顺序一致。
insert into 表名 (字段列表) values (值列表)该语句也可以一次性插入多条数据,但是需要用逗号隔开
查看数据
select */字段列表 from 表名 where[条件]
更新数据
update 表名 set 字段=值 where 条件 该语句也可以更新多个字段,需要用逗号隔开。
删除数据
delete from 表名 where [条件]