一、MySQL安装及状态查看
1.1 安装mysql
将安装包mysql.tar.gz放到服务器某个目录下,比如:/home/mysql目录下
进入此目录,执行解压、安装命令:
解压:tar -zxvf mysql.tar.gz
进入解压后文件目录:cd mysql
执行安装命令:./install.sh install
1.2 校验MySQL安装的正确性
出现如下图所示,表明Mysql数据库安装成功:
输入命令:service mysql status
1.3 停止mysql
命令:service mysql stop
1.4 登录MySQL
输入命令:mysql -u root -p 回车,输入密码即可进入到mysql中
出现如下图,即表明数据库登录成功
二、操作数据库
2.1 创建数据库
命令:create database test_myql(库名) DEFAULT CHARSET utf8;
说明:DEFAULT CHARSET utf8设置数据库默认编码为utf-8
2.2 显示数据库列表
命令:show databases;
2.3 选择数据库
命令:use database_name;
示例:use test_myql;
2.4 创建数据表
命令:
create table table_name (
column1 datatype,
column2 datatype,
...
);
示例语句:
create table users (
id int auto_increment primary key,
username varchar(50) not null,
email varchar(100) not null,
birthdate date,
is_active boolean default true
);
2.5 查看表结构
命令:describe 表名;
示例:describe users;
2.6 显示数据库中的表
命令:show tables;
2.7 插入数据
命令:insert into table_name (column1, column2, ...) values (value1, value2, ...);
示例:insert into users (username, email, birthdate, is_active) values ('test', 'test@163.com', '1999-11-22', true);
2.8 查询表中数据
命令:select * from table_name;
示例:select * from users;
2.9 更新数据表数据
命令:update table_name set column1 = value1, column2 = value2, ... where condition;
示例:update users set username='test1' where id=1;
2.10 删除表中指定行的数据
命令:delete from table_name where condition;
示例:delete from users where username='test1';
2.11 删除表中所有数据
方法一:通过delete删除
命令:delete from table_name;
示例:delete from users;
方法二:通过truncate
删除
命令:truncate table table_name;
示例:truncate table users2;
2.12 插入多条数据
命令:insert into table_name (column1, column2, ...) values (value1, value2, ...),(value11, value22, ...);
示例: insert into users (username, email, birthdate, is_active) values ('test11', 'test11@163.com', '1997-01-23', true),('test22', 'test22@163.com', '1998-02-15', true),('test33', 'test33@163.com', '1999-03-29', true);
2.13 模糊搜索
百分号% 通配符表示零个或多个字符。例如,'t%' 匹配以字母 't' 开头的任何字符串
示例:select * from users where username like 't%';
下划线_ 通配符表示一个字符。例如,'_i%' 匹配第二个字母为 'i' 的任何字符串
示例:select * from users where username like '_i%';
组合使用 % 和 _进行搜索
示例:select * from users where username like '_e%';
'_e%'说明:开头是一个任意字符的字符串,接着是'e',最后是零个或多个字符
not like
用于在指定的列中筛选出不符合指定模式的数据,语法如下:
select * from table_name where column_name not like pattern;
示例:select * from users where username not like '%e%';
说明:查询username中不包含字母e的数据
2.14 排序order by
order by(排序) 语句可以按照一个或多个列的值进行升序(asc)或降序(desc)排序
示例:select * from users order by birthdate desc;
说明:按birthdate 降序排列
2.15 分组group by
创建用户登录记录表:
插入登录数据:
我们可以使用 group by语句 将数据表按username进行分组,并统计每个人有多少条记录:
示例:select username,count(*) from users_signin group by username;
2.16过滤分组having
having能有效地过滤和分析分组数据,通过 having可以将复杂的条件应用到查询结果,从而实现对想要检索的信息的精确控制,having子句需要和group by子句结合使用
示例:select username from users_signin group by username having count(*)>=2;
说明:过滤登录次数大于2的人员姓名;
2.17 连接union
union操作符用于连接两个以上的 select 语句的结果组合到一个结果集合,并去除重复的行,每个 select语句的列数和对应位置的数据类型必须相同。
示例:select username from users union select username from users_signin;
说明:选择users表和users_signin表中所有username的唯一值
2.18 导出数据库
mysqldump 是 MySQL 提供的用于备份和导出数据库的命令行工具。
导出整个数据库命令:mysqldump -u root -p 库名 > xxx_backup.sql ,回车并输入数据库密码
示例:mysqldump -u root -p test_myql > myql_backup.sql
注意:这个语句是在服务器上执行,不是在mysql终端里面执行哟~
导出库中某个表:mysqldump -u root -p 库名 表名 > xxx_backup.sql
示例:mysqldump -u root -p test_myql users > myql_users_backup.sql
2.19 source 命令导入
本地已存在数据库文件,如:mysql2.sql (这个是我用备份出的users表修改了一下文件名称和表名)
source 命令导入数据库文件需要在数库终端操作:source /xx/xx.sql
执行结束后,我们在数据库中看到新导入的表users2,如下图:
2.20 删除表drop
命令:drop table table_name;
示例:drop table users2; 删除users2表
2.21 删除数据库
命令:drop database database_name;
示例:drop database test_myql; 删除test_myql数据库
从上图可以看出执行drop语句后,再执行show databases;语句后就无法看到test_myql库了。
2.22 退出数据库
输入命令:exit 然后按回车即可