1.MySQL常用Web连接
- 官网主页
- http://www.mysql.com
- 下载
- https://www.mysql.com/downloads/
- 文档
- https://dev.mysql.com/doc/
- 论坛
- https://forums.mysql.com/
- 示例数据库
- https://dev.mysql.com/doc/index-other.html
2.MySQL zip版windows系统安装
①在WINDOWS上安装MySQL
- 安装vc2013,C++运行时库(如果没有安装)
- 解压MySQL软件包
- 配置path环境变量,添加C:\mysql-5.7.34-winx64\bin;
- 修改my.cnf ,添加以下内容
[mysqld]
character-set-server=utf8
- 安装mysql服务(cmd管理员)
mysqld install mysql57
- 初始化数据库(cmd管理员)
mysqld --initialize-insecure
- 启动mysql57服务
- 连接测试
mysql -uroot -p 回车
- 退出:exit或quit 回车
3.MySQL常用管理命令
3.1MySQL 是客户端服务器(C/S)架构
3.2如何连接MySQL (C/S结构)
在客户端输入mysql
常用选项:
-uUSERNAME: 用户名
-hHOST: 服务器主机(可以是IP地址或域名)
-pPASSWORD: 用户的密码
例如:
使用短选项:
mysql -uroot -hlocalhost -p
使用长选项:
mysql --user=root --password
mysql --user=root --host=localhost --password
3.3客户端退出连接
mysql>quit
或者
mysql>exit
3.4查看服务器版本
mysql> status
或
mysql> select version();
4.MySQL数据库结构以及常用的数据库增·删·改·查语句
- 核心存储单元是表,数据放在表中(类似于excel表)
- 表要放在数据库(相当于目录)下
- 表由列和行组成
- 列(column)也被称为字段(field)
- 行(row)也被称为记录(record)或数据(data)
- 一个表至少有一列
- 一个表可以有0到N行
4.1查看所有数据库
mysql> show databases;
4.2使用数据库
相当于进入目录 ( cd dirname )
mysql> use dbname
4.3查看数据库中的表
表相当于列出目录中的文件 ( ls或dir )
mysql> use dbname
mysql>show tables;
或
mysql> show tables from dbname; (如果查看的数据库不是当前数据库)
4.4查看当前使用的数据库
查看当前位于哪个目录中 ( pwd )
mysql> status
或
mysql> select database();
4.5查看指定数据库中的指定表有哪些列
mysql> desc dbname.tabname;
举例:查看mysql库下的user表有哪些列?
mysql> desc mysql.user;
或
mysql> show databases;
mysql> use mysql;
mysql> show tables;
mysql> desc user;
4.6查看指定数据库中的指定表有哪些行
mysql> select * from dbname.tabname;
举例:查看mysql库下的user表有哪些行?
#如果表列太多会有输出内容会有折行
mysql> select * from mysql.user;
#\G把列的值转成行来看,这样清晰一些
mysql> select * from mysql.user\G
4.7查看数据库、表、列存放位置
mysql> show variables like 'datadir';
4.8创建数据库
语法:CREATE DATABASE [IF NOT EXISTS] DB_NAME;
其中 IF NOT EXISTS表示:
- 如果数据库已存在,创建语句不会报错,会产生告警信息
- 不能创建同名的数据库,类似于在不能在一个目录下创建同名目录
mysql>create database test;
mysql>show databases;
4.9删除数据库
语法:DROP DATABASE DB_NAME;
举例:删除test数据库
mysql>drop database test;
注意:
- 磁盘相关目录会被删除
- 如果目录中的所有表文件也会被删除
- 千万不要删除mysql,sys,performance_schema等系统数据库
- 否则mysql服务器程序崩溃导致数据库不可用
- 创建数据库同时指定字符集和排序规则
例子:创建test数据库,指定库中的表列默认以utf8编码存储字符数据
mysql> create database test character set 'utf8' collate 'utf8_general_ci';
其中:
- character set
指定字符串以何种编码存储。如果在库中建表,没有指定以何种编码存储,默认使用utf8编码存储表中的字符串
- collate
定义字符串排序的顺序和比较的方式
注意:
示例中utf8_general_ci表示字符串按照UTF8编码比较大小,不区分大小写;ci表示case insensitive
4.10查看当前连接用户
mysql> select user();
4.11查看当前服务器日期和时间
mysql> select now();
4.12配置MYSQL_PS1环境变量
- 变量名:
MYSQL_PS1
- 变量值:
\u@\h[\d]>
其中:
\u 用户
\h 客户端主机
\d 当前选择的数据库
mysql -uroot -p 登录后,登录提示符变为root@localhost[(none)]>
5.允许用户远程登录到MySQL
对于root用户,MySQL从安全角度考虑,默认仅仅允许本地连接,如果root用户远程登录需要配置,参见如下步骤:
- 虚拟机本地登录
mysql -uroot -p
- 修改root用户名
mysql> rename user root@localhost to root@'%';
mysql> select user,host from mysql.user;
- 配置虚拟机防火墙
允许3306端口进入
- 查看虚拟机IP
ipconfig(windows)
ip a (linux)
- 解压windows的mysql压缩包中的mysql.exe到主机d:\(如果主机没有安装mysql)
- 主机测试连接
mysql -uroot -p -h【虚拟机ip】
- 主机配置mysql_ps1环境变量(如果没有配置),修改mysql登录提示符:
变量名:MYSQL_PS1
变量值:\u@\h[\d]>
6.SQL语句分类
- DDL (Data Definition Language)
数据定义语句
创建数据库、创建二维表、修改二维表等。例如:create, alter, drop, truncate, rename。一般要先用DDL(create)创建二维表的列,才能使用后续其它类别的语句
- DML (DATA MANIPULATION LANGUAGE)
数据操纵语句
例如:insert,向已建二维表中插入行记录,update,修改行记录,delete删除行记录,应用非常广泛,银行刷卡,打电话等交易型数据均以DML语句的形式存在
- DQL (Data Query Language)
数据查询语句
SELECT语句,从数据库的二维表中查找数据。应用非常广泛,但前提是先用DML(insert)语句,向已建二维表中插入行记录,才能用select查找;业内通常把select语句划分为DML语句
- DCL (DATA CONTROL LANGUAGE)
数据控制语句
例如:grant, revoke,一般数据库为多用户系统,不同用户的权限不一样,可以访问的数据不一样,可以用DCL语句为给用户赋予或收回数据库的各类权限
- TCL (TRANSACTION CONTROL LANGUAGE)
事务控制语句
例如:commit; rollback; savepoint,只有支持事务的数据库管理系统或存储引擎TCL语句才能有效
注意:
以表为数据存储单元的关系数据库中,往往要先建表(先DDL),再往表中录入数据(后DML)