MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。
这里我们以kali中自动的mariadb
数据库为例,mysql
同样的方法。
启动 关闭 重启 数据库
systemctl start mariadb
systemctl stop mariadb
systemctl restart mariadb
注意: 有时候我们用service
命令也是可以的,如
service start mariadb
但是部分系统service需要配置,所以建议用第一种方法。
登录数据库
mysql -u root -p
-u
:用户名-p
:密码
显示当前已有数据库
show databases;
注意命令后面的;
创建新的数据库
create database dbname;
如
CREATE DATABASE xiaoyaozi;
我们便创建了一个名为xiaoyaozi
的数据库。
选择相应的数据库
格式:use 数据库名 ;
use xiaoyaozi;
创建表格式:CREATE TABLE table_name (column_name column_type);
CREATE TABLE IF NOT EXISTS `dabiaoge`(
`id` INT UNSIGNED AUTO_INCREMENT,
`title` VARCHAR(100) NOT NULL,
`author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
如上,我们创建了一个名为dabiaoge
的表,并且字段有id
title
author
submission_date
并设置了id
字段为主键。
向表中插入数据
INSERT INTO dabiaoge
-> (title, author, submission_date)
-> VALUES
-> ("全国富婆通信录", "逍遥子大表哥", NOW());
这里可以连续一行输入,也可以逐行输入。
注意这里的->
为系统生成,不输入。查询表中的内容
select * from dabiaoge;
以上是全局查询,如何做到搜索查询呢?如我想查询作者为大表哥
的记录,命令如下:
SELECT * from dabiaoge WHERE author='大表哥';
更新数据
UPDATE dabiaoge SET title='欢迎关注微信公众号kali 黑客笔记' WHERE id=3;
修改id=3的title
数据为欢迎关注kali黑客笔记
删除数据库
drop database dbname
执行上面的命令,就可以准备跑路了。
删除表
DROP TABLE table_name ;
复制表复制表的结构(不包含数据)
CREATE TABLE biaoge666 LIKE dabiaoge;
复制数据
INSERT INTO biaoge666 SELECT * FROM dabiaoge;
排序
如果我们需要对读取的数据进行排序,我们就可以使用 MySQL 的ORDER BY
子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。
升序和降序
SELECT * from dabiaoge ORDER BY submission_date ASC;
SELECT * from dabiaoge ORDER BY submission_date DESC;
导入和导出
导出
mysqldump -u root -p root xiao > dump.sql
导入
mysql -u root -p 123456 < dump.sql
LIKE语句
将 dabiaoge
表中获取 name 字段中以 COM 为结尾的的所有记录:
SELECT * from dabiaoge WHERE name LIKE '%COM';
SELECT * from dabiaoge WHERE name LIKE '%COM';