安装
sudo apt-get install mysql-server mysql-client
管理服务
-
启动
service mysql start
-
停止
service mysql stop
-
重启
service mysql restart
允许远程连接
-
找到mysql配置文件并修改
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 将 bind-address=127.0.0.1 注释掉
-
登录mysql,运行命令
mysql -hlocalhost -uroot -p
-
会提示输入密码
-
执行数据库语句
第一句话:grant all privileges on *.* to 'root'@'%' identified by 'mysql' with grant option; 第二句话:flush privileges; mysql> grant all privileges on . to ‘root’@’%’ identified by ‘密码’; mysql> flush privileges;
-
登陆之后 quit或者exit退出mysql
-
重启虚拟机
数据库完整性
- 一个数据库就是一个完整的业务单元,可以包含多张表,数据被存储在表中
- 在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的类型、约束
字段类型
-
在mysql中包含的数据类型很多,这里主要列出来常用的几种
-
数字:tinyint,int,decimal
类型名称 说明 存储需求 TINYINT 很小的整数 1个字节 INT(INTEGER) 普通大小的整数 4个字节 DECIMAL(M,D) 压缩的“严格”定点数 如果M>D为M+2个字节,否则为D+2
-
字符串:char,varchar,text
类型名称 说明 存储需求 CHAR(M) 固定长度非二进制字符串 M字节,1<=M<=255 VARCHAR(L) 变长非二进制字符串 L+1字节 TEXT 小的非二进制字符串 L+2字节,在此L<2^16
-
注意
- 1:VARCHAR(10)列能保存的最大长度为10个字符的一个字符串,实际的存储需要时字符串的长度L,加上1个字节以记录字符串的长度,对于字符’abcd’,L是4而存储要求是5个字节。
- 2:CHAR(M)为固定长度字符串,在定义时指定字符串列长。当保存时在右边填充空格以达到指定长度。M表示指定长度,M的取值范围是0~255个字符。例如,CHAR(4)定义了一个固定长度的字符串列。其包含的字符串个数最大为4.当检索到CHAR值时,尾部的空格将被删除掉。
-
日期:datetime
-
布尔:bit
Bit称为位数据类型,其数据有两种取值:0和1,长度为1位。在输入0以外的其他值时,系统均把它们当1看待。这种数据类型常作为逻辑变量使用,用来表示真、假或是、否等二值选择。
约束
- 主键primary key
主键,又称主码,是表中一列或多列的组合。主键约束要求主键列的数据唯一,并且不允许为空。主键能够唯一地标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度,并且可以加快数据库查询的速度。主键和记录之间的关系如同身份证和人之间的关系,他们是一一对应的。主键分为两种类型:单字段主键和多字段联合主键。
- 非空not null
非空约束指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错。
- 惟一unique
唯一性约束要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。
- 默认default
默认约束指定某列的默认值。如男性同学较多,性别就可以默认为‘男’。如果插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为‘男’
- 外键foreign key
在数据库应用中,经常希望在每次插入新记录时,系统会自动生成字段的主键值。可以通过为表主添加auto_increment 关键字来实现。默认的,在MySQL中auto_increment的初始值是1,每新增加一条记录,字段自动加1.一个表只能有一个字段使用auto_increment约束,且该字段必须为主键的一部分。auto_increment约束的字段可以是任何整数类型(TINYINT,SMALLIN,INT,BIGINT等)
使用命令连接
-
命令操作方式,在工作中使用的更多一些,所以要达到熟练的程度
-
打开终端,运行命令
mysql -uroot -p
回车后输入密码,当前设置的密码为mysql
-
退出登录
quit或exit
-
登录成功后,输入如下命令查看效果
查看版本:select version(); 显示当前时间:select now(); 注意:在语句结尾要使用分号;
远程连接
-
一般在公司开发中,可能会将数据库统一搭建在一台服务器上,所有开发人员共用一个数据库,而不是在自己的电脑中配置一个数据库
-
运行命令
mysql -hip地址 -uroot -p
-
-h后面写要连接的主机ip地址
-
-u后面写连接的用户名
-
-p回车后写密码
数据库操作
-
创建数据库
create database 数据库名 charset=utf8;
-
删除数据库
drop database 数据库名;
-
切换数据库
use 数据库名;
-
查看当前选择的数据库
select database();
表操作
-
查看当前数据库中所有表
show tables;
-
创建表
auto_incremeaa表示自动增长
-
修改表
alter table 表名 add|change|drop 列名 类型; eg: alter table students add birthday datetime;
-
删除表
drop table 表名;
-
查看表结构
desc 表名;
-
更改表名称
rename table 原表名 to 新表名;
-
查看表的创建语句
show create table '表名';
数据操作
-
查询
select * from 表名
-
增加
全列插入:insert into 表名 values(...) 缺省插入:insert into 表名(列1,...) values(值1,...) 同时插入多条数据:insert into 表名 values(...),(...)...; 或insert into 表名(列1,...) values(值1,...),(值1,...)...;
-
主键列是自动增长,但是在全列插入时需要占位,通常使用0,插入成功后以实际数据为准
-
修改
update 表名 set 列1=值1,... where 条件
-
删除
delete from 表名 where 条件
-
逻辑删除,本质就是修改操作update
alter table students add isdelete bit default 0;
-
如果需要删除则
update students isdelete=1 where ...;
备份与恢复
数据备份
-
进入超级管理员
sudo -s
-
进入mysql库目录
cd /var/lib/mysql
-
运行mysqldump命令
Mysql dump –uroot –p 数据库名 > ~/Desktop/备份文件.sql;
按提示输入mysql的密码
数据恢复
-
连接mysql,创建数据库
-
退出连接,执行如下命令
mysql -uroot –p 数据库名 < ~/Desktop/备份文件.sql
根据提示输入mysql密码
结束语
如果您对这篇文章有什么意见或者建议,请评论与我讨论.
如果您觉得还不错的话~可以点个喜欢鼓励我哦.
如果您想和我一起学习,请毫不吝啬的私信我吧~
网友评论