mysql使用

使用

启动数据库

# 需要管理员权限
net start <mysql-service_name>

登录数据库

mysql -u <username> -p
$ <password>

导入数据库

-- 设置中文字符集
mysql> SET NAMES 'utf8mb4';
mysql> SET character_set_server = 'utf8mb4';
mysql> SOURCE /path/to/database.sql;

数据库

-- 创建数据库
CREATE DATABASE yourDatabase
CHARACTER SET utf8mb4;

-- 查看所有数据库
show databases;

-- 进入数据库
use yourDatabase

-- 建表
CREATE TABLE yourTable (
id INT AUTO_INCREMENT PRIMARY KEY,
name varchar(50) NOT NULL DEFAULT 'worker',
age INT ,
addr varchar(50)
);

-- 删除表
drop <table>;

-- 查看表
show tables;

-- 修改表
alter table <table>
add <col> char(20)
drop column <col>;

-- 删除整张表
drop table <table>;

查询

-- \G 参数单独展示每一行,避免过宽
select * from <table>\G

-- 查询多列
select <column1>, <column2>, <column3>
from <table>;

-- 只显示不同项
-- 注意,对多列使用时,两列完全一样才会被屏蔽
select distinct <column> from <table>;

-- 检错前5行
select <col> from <table> limit 5;

排序

ORDER BY 需要放在 WHERE 之后

-- 按列升序排序
select <col>
from <table>
order by <col> (asc); -- 默认Ascending

-- 降序排序。对多列排序,每列都要跟desc
select <col>
from <table>
order by <col1> desc, <col2> desc; -- Descending降序排序

筛选

-- 筛选col = value的字段
select <col>
from <table>
where <col> = <value>;

-- 筛选between 0 and 10的字段
select <col>
from <table>
where <col> between 0 and 10;

-- 筛选col为空的字段
select <col>
from <table>
where <col> is null;

逻辑操作符

优先级: AND > OR

-- AND, OR
select <col>
from <table>
where <cond1> or (<cond2> and <cond3>); -- 不加括号,结果会改变

-- IN, NOT
select <col>
from <table>
-- 相当于OR,性能稍好一点,也更直观;NOT主要配合IN使用
where <col> not in (<value1>, <value2>);

插入

-- 插入相应字段的值
insert into <table>(<col1>,
<col2>)
values(<val1>,
<val2>);

insert into yourTable (name, email, age) values ('eric', 'example@email.com', 19);

更新

update <table>
set <col1> = <val1>,
<col2> = <val2>
where <col3> = <val3>;

删除

delete from <table>
where <col> = <val>;

联结

设计数据库时,应遵循将数据分解到不同的数据表这一原则。
然而,在使用数据时,常常需要将多个表的数据一起检索出来。
这时就需要用到联结。

-- 使用WHERE联结
select <col1>, <col2>
from <table1>, <table2>
where <table1>.<col> = <table2>.<col>;

-- 使用ON联结
select <col1>, <col2>
from <table1> inner join <table2>
on <table1>.<col> = <table2>.<col>;

安装

压缩包安装

  1. 初始化
# 初始化,生成data文件夹,console参数可以看见密码
mysqld --initialize --console > mysql_info
# > mysql_info把命令行输出结果存到文件里,防止密码丢失
  1. 配置mysql.ini
[mysqld]

# 设置3306端口
port=3306

# 设置mysql目录路径
basedir=C:\\your\\path\\MySQL

# 设置mysql数据库的数据的存放目录
datadir=C:\\your\\path\\MySQL\\Data

# 允许最大连接数
max_connections=200

# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10

# 服务端使用的字符集默认为UTF8
character-set-server=utf8

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password

[mysql]

# 设置mysql客户端默认字符集
default-character-set=utf8

[client]

# 设置mysql客户端连接服务端时默认使用的端口
port=3306

default-character-set=utf8
  1. 安装服务
mysqld --install MySQL8 --defaults-file="C:\your\path\MySQL\mysql.ini" # 设置服务名

# 默认安装
mysqld install
  1. 修改密码
# 设置YourPassword为新密码,再输入旧密码确认修改即可
mysqladmin -u root -p password (YourPassword) --port 3306