【MySQL】初始MySQL、库与表的操作
目录基本使用
使用案例
SQL分类
存储引擎
库的操作
字符集和校验规则
查看系统默认字符集和校验规则
查看数据库支持的字符集
查看数据库支持的字符集校验规则
指定编码常见数据库
校验规则对数据库的影响
操纵数据库
库的备份与恢复
表的操作
创建表
查看表
修改表
删除表
基本使用
毗连服务器
mysql -h 127.0.0.1 -P 3306 -u root -p
[*]-h:指明登录摆设了mysql的主机;
[*]-P:指明我们要访问的端口号
[*]-u:指明登录用户;
[*]-p:指明必要输入密码。
什么是数据库
https://i-blog.csdnimg.cn/direct/0fadd5acba474eb0905f47e5f48a1d23.png
mysql--数据库服务的客户端,mysqld--数据库服务的服务器端(带d表明是一种守护进程),mysql本质是基于C(mysql)和S(mysqld)模式的网络服务,
https://i-blog.csdnimg.cn/direct/7806b776c1e54d59a1187d5f9982c19b.png
mysql既然是一种网络服务,就要绑定端口号,默认是3306。mysql是一套给我提供数据存取的服务的网络步伐。数据库一样平常指在磁盘大概内存中存储的特定结构组织的数据(将来在磁盘上存储的一套数据库方案)。数据库服务特指mysqld。
存储数据用文件就行了,为什么还要有数据库?
一样平常文件确实提供了数据的存储功能,但是文件并没有提供非常好的数据管理能力(用户角度)。
数据库本质:对数据内容存储的一套办理方案,你给我字段或要求,我(数据库)给你直接返回效果。
https://i-blog.csdnimg.cn/direct/dc3e9363f9ac4202bd0db81836e0efdf.png
文件生存有如下缺点:
[*]文件的安全性题目;
[*]文件不利于数据查询和管理;
[*]文件不利于存储海量数据;
[*]文件在步伐控制中不方便。
使用案例
[*]创建数据库
create database helloworld; https://i-blog.csdnimg.cn/direct/e41a41699c2f47eb866826b507bfa8d8.png
https://i-blog.csdnimg.cn/direct/22e7176a0f974a95b2298d4555893782.png
建立数据库,本质就是linux下的一个目录。
[*]使用数据库
use helloworld;
[*]创建数据库表
create table student(
id int,
name varchar(32),
gender varchar(32)
); https://i-blog.csdnimg.cn/direct/a6281a722bad4b9bb6f3f94cba337bc6.png
在数据库内建立表,本质就是在Linux下创建对应的文件即可!
[*]表中插入数据
insert into student (name, age, gender) values ('姓名',20,'男');
[*]查询表中数据
select * from student; 这个工作现实上是mysqld帮我们做的。数据库本质也是文件,只不过这些文件并不由步伐员直接操作,而是由数据库服务帮我们进行操作。
服务器,数据库,表关系
https://i-blog.csdnimg.cn/direct/dfb14b59a179449eafbf8f4f607f1faa.png
数据逻辑存储
https://i-blog.csdnimg.cn/direct/0986953d04374e95bd26b523fea12c7c.png
SQL分类
[*]DDL,数据界说语言,用来维护存储数据的结构代表指令:create、drop、alter;
[*]DML,数据操纵语言,用来对数据进行操作的代表指令:insert、delete、update;此中还包括数据查询语言,代表指令select;
[*]DCL,数据控制语言,主要负责权限管理和事件代表指令:grant,revoke、commit。
存储引擎
存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。此中,最常用的是InnoDB和MylSAM。
库的操作
[*]创建数据库:create database db_name; -- 本质就是在/var/lib/mysql创建一个目录
[*]删除数据库:drop database db_name; -- 删除目录
字符集和校验规则
创建数据库的时候,有两个编码集:
[*]数据库编码集:数据库将来存储数据;
[*]数据库校验集:支持数据库,进行字段比力使用的编码,本质也是一种读取数据库中数据所采用的编码格式。
数据库无论对数据做任何操作,都必须保证操作和编码必须是编码同等的!
查看系统默认字符集和校验规则
show variables like 'character_set_database';
show variables like 'collation_database'; https://i-blog.csdnimg.cn/direct/9d3a86d46d684f89b8db17c89e1bb824.png
https://i-blog.csdnimg.cn/direct/869023815b864b05b858b6368d147057.png
查看数据库支持的字符集
show charset; 查看数据库支持的字符集校验规则
show collation; 指定编码常见数据库
1.创建名为d1的数据库,当没有指定字符集和校验规则时,系统默认采用默认字符集:utf8,校验规则:utf8_general_ci;
create database d1; 2.创建一个使用utf8字符集的d2数据库;
create database d2 charset=utf8; 3.创建一个utf8字符集,并指定查验集utf8_general_ci(这种不区分大小写)的d3数据库
create database d3 charset=utf8 collate utf8_general_ci; 校验规则对数据库的影响
[*]不区分大小写:校验规则使用utf8_general_ci;
[*]区分大小写:校验规则使用utf8_bin;
采用哪种校验规则,会对查询效果或排序效果有影响。
操纵数据库
数据库删除
drop database db_name; 在实行删除数据库操作后,内里的数据表都会被删除,所以,不要随意删除数据库,最好做备份再删除。
查看数据库
show database; 显示创建语句
show create database db_name; https://i-blog.csdnimg.cn/direct/2a4e07201d8e4962b61ab59318e45be4.png
查看当前在哪个数据库
select database(); 修改数据库
alter database db_name charset=gbk collate gbk_chinese_ci; 对数据库的修改主要是修改数据库的字符集和校验规则。
库的备份与恢复
备份
mysqldump -P3306 -u root -p 密码 数据库名 > 数据库备份存储的文件路径; 比方,我们将数据库test备份,形成test.sql,test.sql中其实是我们整个创建数据库,建表,导入数据的语句都放在这个文件中。
还原
source 文件路径; 注意:
[*]如果备份的是数据库中的一张表,那么如许做:
mysqldump -u root -p 数据库名 表名1 表名2 > 路径
[*]同时备份多个数据库
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
[*]如果备份一个数据库时,没有带上-B参数,在恢复数据库时,必要先创建空数据库(可以换成别的名字),然后使用数据库,再使用source还原。
查看毗连情况
show processlist; https://i-blog.csdnimg.cn/direct/cde052efda5945079e88e0dd0e082385.png
可以告诉当前有哪些用户毗连到我们的MySQL,这可以资助我们看有没有非常用户,是不是数据库被入侵了。
表的操作
创建表
create table table_name(
field1 datatype,
field2 datatype,
field3 datatype
)character set 字符集 collate 校验规则 engine 存储引擎; 此中,field表示列名,datatype表示列的范例,character set表示字符集,如果没有指定字符集,则以所在数据库的校验规则为准;collate校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准。
下面创建一个表实例:
https://i-blog.csdnimg.cn/direct/d8a417f0edab4fc4a31158ffd9f2d8e2.png
创建表的存储引擎是InnoDB。
https://i-blog.csdnimg.cn/direct/05717bd14f6f4d47b67bab5648c0a3c6.png
存储引擎是MyIsam。(在当前云服务器上,要使用utf8mb4而不能utf8)
https://i-blog.csdnimg.cn/direct/68f170224f1444fc8d969420463aa324.png
不同的存储引擎,创建表的文件不一样。
查看表
查看表结构
desc 表名; https://i-blog.csdnimg.cn/direct/9e64badd2ddc4e72b1a73be6e89df46f.png
查看表的更具体信息
https://i-blog.csdnimg.cn/direct/9b5d2a17e4684cbfbcafd8f9bfb9a328.png
加\G可以清楚看到主要字段。
修改表
修改表名
关于表的修改,我们必要有表的增长列,删除列,修改列,修改表名字,修改列名字等。
alter table user1 rename to user; https://i-blog.csdnimg.cn/direct/021437a5781a4068925cccf74142ce9f.png
案例:
[*]先向表中插入两条记录:
insert into user values(1, '张三', '123456', '1');
insert into user values(1, '李四', '54321', '2');
[*]在user中添加一个字段,用于生存图片路径
mysql> alter table user add image_path varchar(200) comment '这个是图片路径' after sex;
https://i-blog.csdnimg.cn/direct/6555d9cd5768479db1e2f6e2107a0cf7.png
[*]修改name,将其长度修改为60,
https://i-blog.csdnimg.cn/direct/cce10e72d02a4833977e2f17b5cef35b.png
https://i-blog.csdnimg.cn/direct/28f245f09d854a04ad6179437ea80b25.png
修改的效果是,把原来name所有的属性用新设置的属性全都覆盖掉了。
[*]删除password列
https://i-blog.csdnimg.cn/direct/49da767eeb8a4cda88fb51eb85bcb2c8.png
注意,删除字段及其对应的列数据全都没了。
[*]修改表名为User
https://i-blog.csdnimg.cn/direct/5d936550b46c407da5a8a082efdfaee4.png
此中,to可以省略。
[*]修改表中某一列的名称。
alter table User change name xingming varchar(60) COLLATE utf8mb4_general_ci DEFAULT NULL;
此中,新名称xingming后面必须加上对应的属性(可以通过show create table User;查询)。
https://i-blog.csdnimg.cn/direct/1b5a7673bf7b4a2ab1fc04e02a710ba6.png
删除表
https://i-blog.csdnimg.cn/direct/cb646e445260410fa9bfff9dc57ea98e.png
温馨提示:不要轻易修改表名字以及列名字,如果一改,那上层所有都得改。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]