安装完MySQL后,除了MySQL Server,即真正的MySQL服务器外,还附赠一个MySQL Client程序。MySQL Client是一个命令行客户端,可以通过MySQL Client登录MySQL,mysql -u root -p。然后,输入SQL语句并执行。也可以使用可视化图形界面MySQL Workbench管理MySQL。
MySQL Client的可执行程序是mysql,MySQL Server的可执行程序是mysqld。
MySQL Workbench是一个图形客户端,它对MySQL的操作仍然是发送SQL语句并执行。因此,本质上,MySQL Workbench和MySQL Client命令行都是客户端,和MySQL交互,唯一的接口就是SQL。
在MySQL Client中输入的SQL语句通过TCP连接发送到MySQL Server。默认端口号是3306,即如果发送到本机MySQL Server,地址就是127.0.0.1:3306
。
也可以只安装MySQL Client,然后连接到远程MySQL Server。假设远程MySQL Server的IP地址是10.0.1.99
,那么就使用-h
指定IP或域名:mysql -h 10.0.1.99 -u root -p
# 登录服务器
mysql -h 10.0.1.99 -u root -p # 重指定ip地址
mysql -u root -p # 正常登录MySQL Client
-----------------------------------------------------
# 查看、创建、删除数据库
SHOW DATABASES; # information_schema、mysql、performance_schema和sys是系统库,其他是用户创建
CREATE DATABASE test; # 创建一个叫test的数据库
DROP DATABASE test; # 删除test数据库
USE test; # 切换到test数据库
-----------------------------------------------------
# 表操作
SHOW TABLES; # 查看当前数据库中所有的表
DESC students; # 查看一个表的结构
SHOW CREATE TABLE students; # 查看创建表的SQL语句
CREATE TABLE students; # 创建表
DROP TABLE students; # 删除表
ALTER TABLE students ADD COLUMN birth VARCHAR(10) NOT NULL; # 增加一列birth
ALTER TABLE students CHANGE COLUMN birth birthday VARCHAR(20) NOT NULL; # 把列名改为birthday,类型改为VARCHAR(20)
ALTER TABLE students DROP COLUMN birthday; # 删除列
-------------------------------------------------------
# 退出MySQL
EXIT # 只是断开客户端与服务器的连接,MySQL服务器仍然在继续运行
REPLACE INTO students (id, class_id, name, gender, score) VALUES (1, 1, '小明', 'F', 99); # 如果id=1存在,先删除原纪录,再插入新纪录;如果不存在,则新建插入
INSERT INTO students (id, class_id, name, gender, score) VALUES (1, 1, '小明', 'F', 99) ON DUPLICATE KEY UPDATE name='小明', gender='F', score=99; #若id=1的记录不存在,INSERT语句将插入新记录,否则,当前id=1的记录将被更新,更新的字段由UPDATE指定。
INSERT IGNORE INTO students (id, class_id, name, gender, score) VALUES (1, 1, '小明', 'F', 99); #若`id=1`的记录不存在,`INSERT`语句将插入新记录,否则,不执行任何操作。
CREATE TABLE students_of_class1 SELECT * FROM students WHERE class_id=1; # 创建一个新表跟原表一样:快照
INSERT INTO statistics (class_id, average) SELECT class_id, AVG(score) FROM students GROUP BY class_id; # 将查询结果写入表中
.
.
.
2019-01-04 21:27:26写于变革的时代,降准1个点,这才刚刚开始