一、使用bat脚本实现创建停止服务
1.分别创建创建服务、停止服务的bat文件。(创建记事本,修改后缀为.bat)
2.编辑创建服务内容
//移动到脚本所在目录
set dir=%~dp0
cd /d %~dp0bin
//安装mysql服务
mysqld --install mysqlserver
//启动mysql服务
net start mysqlserver
//暂停黑窗口,按任意键继续
pause
3.编辑停止服务内容
//还是将目录移动到脚本所在的位置
set dir=%~dp0
cd /d %~dp0bin
//停止mysql服务语句
net stop MySQL80
//暂停黑窗口
pause
4.以管理者身份运行bat文件即可启动或停止服务。若想再VC编码中运行该程序,可以使用system()函数执行。例如
system("D:\mysql-5.7.43-win32\停止服务.bat");
二、控制台操作mysql
1.以管理员身份运行cmd
2.将目录移动到数据库所在路径的bin目录下,例D:\mysql-5.7.43-win32\bin
3.登录语法,参考:https://blog.youkuaiyun.com/icanlove/article/details/38385555
mysql [-h 主机名] -u用户名 -p密码 [-P端口号] [-D数据库名]
例 mysql -u root -p123
[-h主机名或ip地址]或者[–host=主机名ip地址]:指定登录的主机名;
[-u用户名]或者[–user=用户名]:指定用户登录的用户名;
[-p密码(p小写)]或者[–password=密码]:输入登录密码;若不输入密码会弹出密码输入步骤
[-P端口号(P大写)]或者[–port=端口号]:指定登录的MySQL的端口号;
[-D数据库名]或者[–database=数据库名]:指定登录的数据库名称;
4.退出语法
mysql> quit
三、MySQL语法
1.创建表
CREATE TABLE [IF NOT EXISTS] 表名 (字段名1 类型,
字段名2 类型,
...... ,
表约束);
IF NOT EXISTS 先判断数据表是否存在,存在不创建,不存在则会创建。
例:CREATE TABLE test (test_id INT(11) NOT NULL AUTO_INCREMENT,
test_title VARVHAR(255),
test_date DATE,
PRIMARY KEY(id));
NOT NULL 设置字段插入时不能为空;
AUTO_INCREMENT 设置插入时该字段数值自增;
PRIMARY KEY() 关键字用于定义主键,可以设置多列,中间以逗号分隔。
2.删除表
DROP TABLE [IF EXSITS] 表名;
例:DROP TABLE test;
IF EXSITS 判断数据表是否存在。
3.增删改查
(1)添加数据
有两种方法,一种向表中直接插入数值,另一种根据字段名插入数值
a.直接插入数据
INSERT INTO 表名 VALUES (值1,值2,...);
例:INSERT INTO test VALUES (1,'aaa','2024-02-29');
b.根据字段名插入数据
INSERT INTO 表名(字段名1,字段名2,...)VALUES(值1,值2,...);
例:INSERT INTO test(test_id,test_title,test_date) VALUES (1,'aaa','2024-02-29');
(2)更新数据
UPDATE 表名 SET 字段名1 = 值1 [WHERE 条件1];
例:将id为1的日期更新为2024-03-01。
UPDATE test SET test_date = '2024-03-01' WHERE test_id = 1 OR test_title = 'aaa';
当有两个及以上的条件时,可用OR或AND连接;使用OR表示两个条件是或的关系,满足其中一个条件即可;AND代表两个条件是和的关系,二者必须全都满足。
(3)查询数据
a.查询表内所有字段的数据
SELECT * FROM 表名;
例:SELECT * FROM test;
b.根据条件查询所需要的字段数据
SELECT 字段1,字段2 FROM 表名 [WHERE 条件1];
例: SELECT test_id,test_date FROM test WHERE test_title = 'aaa';
(4)删除数据
a.删除表中所有数据
DELETE FROM 表名;
例:DELETE FROM test;
b.删除表中符合条件的数据
DELETE FROM 表名 WHERE 条件;
例:DELETE FROM test WHRER test_id=1 and test_date = '2014-03-03';
4.触发器
(1)创建触发器
CREATE TRIGGER 触发器名称 BEFORE/AFTER
INSERT/UPDATE/DELETE ON 表名 FOR EACH ROW
BEGIN
内容;
END;
例:当test表更新时,将新的值记录到update_test表中。
CREATE TRIGGER trgger_test AFTER UPDATE ON test FOR EACH ROW
BEGIN
INSERT INTO update_test( Time,Users,ID,Title ) VALUES
( NOW(),USER(),NEW.id,NEW.Title );
END;
BEFORE/AFTER 字段表示是内容执行之前或之后进行触发;
INSERT/UPDATE/DELETE 字段表示监听的是 INSERT操作 或是 UPDATE操作 或是 DELETE操作。
NOW()函数由于获取当前的时间。
USER()函数用于获取当前登录MySQL的用户。
NEW.xxx的作用是获取修改完的新数据,想要获取旧数据使用OLD.xxx。
(2)修改触发器
修改与创建触发器的语句一致,只需将关键字CREATE更改为ALTER即可。
(3)删除触发器
DROP TRIGGER [IF EXISTS] 触发器名称;
例:DROP TEIGGER IF EXISTS trgger_test;
5.视图
(1)创建视图
CREATE [OR REPLACE] VIEW view_test AS 查询语句;
可以使用SELECT * FROM xxx; 查询表中全部字段的数据;也可以使用 SELECT [字段]... FROM xxx WHERE [条件] ...; 查询满足条件的某些数据。
例:CREATE OR REPLACE VIEW view_test AS SELECT * from test;
REPLACE 字段功能是判断创建的视图是否存在,若存在就将其替换掉。若不存在则创建。
(2)修改视图
ALTER VIEW 视图名 AS 查询语句;
例:ALTER VIEW view_test AS SELECT test_id FROM TEST;
(3)删除视图
DROP VIEW 视图名;
例:DROP VIEW view_test;