一、御前

1 win+R  DOS 输入 net start mtsql 和 net stop mysql 启动和停止Mysql 服务,也可通过计算机——管理——服务和应用程序——服务——MYSQL——右击

启动mysql服务出现服务名无效的原因及解决方法【失败】

问题原因:mysql服务没有安装。

解决办法: 在 mysql bin目录下 以管理员的权限 执行 mysqld -install命令

以管理员的权限 mysqld -remove ,卸载mysql服务

2 登录和退出

路径: DOS:mysql -uroot -p

输入密码

exit; 退出

show databases; 查看数据库

Command Line Client登录和退出

3 常见操作

\h 或者 help;

source D:\test.sql 即执行test.sql文件

4 图形 MYSQL Workbench

另外介绍第三方 SQLyog

二、数据库和表的基本操作

1、MySQL支持的数据类型

1)数值类型 字符串类型 日期和时间类型

2)数据库基本操作

CREATE DATABASE 数据库名称;

SHOW DATABASE;

SHOW CREATE DATABASE 数据库名称;    查看已经创建的数据库的创建信息

CREATE DATABASE 数据库名称 CHARACTER SET gbk;    在创建数据库时指定编码方式

USE 数据库名;

ALTER DATABASE 数据库名称 DEFAULT CHARACTER SET 编码方式 COLLATE 编码方式_bin;编码方式为修改后的

DROP DATABASE 数据库名称;

3) 数据表的基本操作

CREATE TABLE stu( stu_id INT(10),stu_name VARCHAR(50) );

SHOW CREATE TABLE 表名;

SHOW CREATE TABLE 表名\G;格式化显示创建信息

DESCRIBE 表名; 表的列相关信息

ALTER TABLE 原表名 RENAME [TO] 新表名;

ALTER TABLE 表名 CHANGE 原字段名 新字段名 新数据类型;

ALTER TABLE 表名 MODIFY 字段名 新数据类型;

ALTER TABLE 表名 ADD 新添字段名 数据类型;

AlTER TABLE 表名 DROP 字段名;

ALTER TABLE 表名 MODIFY 字段名1 数据类型 FIRST|AFTER 字段名2; 调整字段位置

DROP TABLE 表名;

三、表中数据的基本操作

INSERT INTO 表名 (字段1,字段2)VALUES{值1,值2);

INSERT INTO 表名 VALUES(值1,,值2); 为所有的字段都填上数据

INSERT INTO 表名(字段名1,字段名2)VALUES(值1,值2);为指定字段添加数据

INSERT INTO 表名[(字段名1,字段名2,…)]VALUES(值1,值2,…),…,(值1,值2,…);

UPDATE 表名 SET 字段名1=值1 [字段名2=值2,…] WHERE ;

DELETE FROM 表名 WHERE;删除指定的全部数据

TRUNCATE [TABLE] 表名;删除表中的所有数据

四 单表查询

SELECT 字段名1,…字段名n FROM 表名;

SELECT * FROM 表名;

SELECT * FROM 表名 WHERE ;

SELECT * FROM 表名 WHERE 条件表达式1 AND|OR 条件表达式2 ;

SELECT * FROM 表名 WHERE 字段名 [NOT] IN (元素1,元素2,…,元素n) ;

SELECT * FROM 表名 WHERE 字段名 IS [NOT] NULL ;

SELECT * FROM 表名 WHERE 字段名 [NOT] BETWEEN 值1 AND 值2 ;

SELECT * FROM 表名 WHERE 字段名 [NOT] LIKE '匹配字符串';其中%表示n个字符,_表示一个

SELECT DISTINCT 字段名 FROM 表名 ;去重复

SELECT * FROM 表名 WHERE 字段1 [ASC|DESC],字段2 [ASC|DESC] ;ASC升序

2)聚合函数

SELECT COUNT (*|1|列名) FROM 表名;

SELECT SUM (字段名) FROM 表名;

SELECT AVG (字段名) FROM 表名;

SELECT MAX (字段名) FROM 表名;

SELECT MIN (字段名) FROM 表名;

3)分组

SELECT 字段名1,…字段名n FROM 表名 GROUP BY 字段名1,字段名2,…[HAVING 条件表达式];

4)分页

SELECT 字段名1,字段名2,…FROM 表名 LIMIT [m,]n;【m代表起始数目,n代表个数】

五 数据的完整性

ALTER TABLE 表名 ADD PRIMARY KEY(列名);主键 不空 不重

或者 CREATE TABLE 表名 (字段名 数据类型 PRIMARY KEY);

ALTER TABLE 表名 ADD UNIQUE(列名);唯一约束

或者 CREATE TABLE 表名 (字段名 数据类型 UNIQUE);

ALTER TABLE 表名 ADD PRIMARY KEY AUTO_INCREMENT(列名);自增

或者 CREATE TABLE 表名 (字段名 数据类型 AUTO_INCREMENT);

2)索引

AlTER INDEXE 索引名 ON  表名(字段名[(长度)]);

或者 CREATE TABLE 表名 (字段名 数据类型 ,INDEX [索引名] (字段名[(长度)]));

唯一索引:【不可有重复值】

在普通的INDEX 前加 UNIQUE

3)域完整性

ALTER TABLE  表名 MODIFY 字段名 数据类型 NOT NULL,…;非空约束

或者 CREATE TABLE 表名 (字段名 数据类型 NOT NULL,);

ALTER TABLE  表名 MODIFY 字段名 数据类型 DEFAULT 默认值;默认值约束

或者 CREATE TABLE 表名 (字段名 数据类型 DEFAULT 默认值,);

4)引用完整性

ALTER TABLE 表名 ADD FOREIGN KEY(外键字段名) REFERENCES 主表表名(主键字段名);

CREATE TABLE 表名 (字段名 数据类型,FOREIGN KEY(外键字段名) REFERENCES 主表表名(主键字段名));

ALTER TABLE 表名 DROP FOREIGN KEY 外键名;

六、多表查询

1)合并结果集

SELECT * FROM test1 UNION SELECT * FROM test2;会过滤重复数据

SELECT * FROM test1 UNION ALL SELECT * FROM test2;不会过滤重复数据

2)连接查询

SELECT 查询字段 FROM 表1 CROSS JOIN 表2 WHERE ;笛卡尔积

SELECT 查询字段 FROM 表1 [INNER] JOIN 表2 ON 表1.关系字段=表2.关系字段 Where  ;内连接

SELECT 查询字段 FROM 表1 LEFT [OUTER] JOIN 表2 ON 表1.关系字段=表2.关系字段 Where ;左外连接

SELECT 查询字段 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 表1.关系字段=表2.关系字段 Where ;右外连接

SELECT 查询字段 FROM 表1 [别名] JOIN 表2 [别名] ON 表1.关系字段=表2.关系字段 JOIN 表 m ON…;多表

SELECT 查询字段 FROM 表1 [别名] NATURAL JOIN 表2 [表名];自然连接 列名和数据类型相同的字段自动匹配

SELECT 查询字段 FROM 表1 [别名] NATURAL [LEFT|RIGHT] JOIN 表2 [表名];

SELECT 查询字段 FROM 表名 [别名1],表名[别名2] WHERE 查询条件;自连接

3)子查询

SELECT * FROM emp WHERE sal>(SELECT sal FROM emp WHERE ename='JONES');子查询做条件

SELECT e.ename,e.sal,d.dname,d.loc FROM emp e,(SELECT dname,loc,deptno FROM dept)d Where

e.deptno=d.deptno AND e.empmo=7788;子查询做表

七、常用函数

1)字符串函数

ASCII();

CONCAT();

INSERT();

LEFT();

RIGHT();

LENGTH();【占用字节】

2)数学函数

ABS();

MOD();

PI();

RAND();

ROUND();

TRUNCATE();【保留指定位数的结果】

3)日期和时间函数

DAY();

WEEK();

MONTH();

YEAR();

NOW();

4)格式化函数

FORMAT();

DATE_FORMAT();

5)系统信息函数

DATABASE();

USER();

SYSTEM_USER();

VERSION();

八、视图

SELECT Drop_priv FROM mysql.user WHERE User='root';查询用户对视图权限

CREATE VIEW view_emp(id,name,sex,age,department) AS SELECT id,name,sex,age,department FROM emp;还有一些可选的权限条件,用到再百度吧

DESCRIBE 视图名;视图字段信息

DESC 视图名;

SHOW TABLE STATUS LIKE '视图名';视图的基本信息

SHOW CREATE VIEW 视图名;视图详细信息

CREATE OR REPLACE VIEW view_emp_detail(id,name,sex) AS SELECT id,name,sex FROM emp;修改

ALTER VIEW view_emp AS SELECT name,age FROM emp;修改

UPDATE 视图名 SET 字段名1=值1 [字段名2=值2,…] [WHERE 条件表达式];

INSERT INTO view_emp VALUES (值1,值2,……);

DELETE FROM 表名 [条件表达式];删除数据

DROP VIEW [IF EXISTS] 视图名 [,视图2]… [RESTRICT|CASCADE];删除视图

九、存储过程

1 查看用户是否拥有创建存储过程的权限

SELECT Create_routine_priv FROM mysql.user Where User='root';

CREATE PROCEDURE sp_name ([proc_parameter[…]]) [characteristic…] routine_body;创建

SHOW PROCEDURE STATUS [LIKE 'pattern'];查看存储过程的状态

SHOW CREATE PROCEDURE sp_name;查看存储过程的创建信息

SELECT * FROM information_schema.Routines WHERE ROUTINE_NAME='SP_SEARCH' AND ROUTINE_TYPE='PROCEDURE'\G;

SELECT Alter_routine_priv FROM mysql.user Where User='root';查看修改权限

ALTER PROCEDURE sp_name [characteristic…];修改

DROP PROCEDURE [IF EXISTS] sp_name;删除

具体的  局部变量 定义条件 处理程序 光标的使用 流程控制(IF CASE WHILE) 自己看吧

2事件调度器

数据库安自定义的时间周期来出发某种操作,可以理解为时间触发器。

SELECT @@event_scheduler;查看是否已经开启时间调度器

SET GLOBAL event_scheduler=ON;开启

使用:

CREATE
[DEFINER = { user | CURRENT_USER }]
EVENT
[IF NOT EXISTS]
event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT 'comment']
DO event_body;

schedule:
AT timestamp [+ INTERVAL interval] ...
|EVERY interval
[STARTS timestamp [+ INTERVAL interval] ...]
[ENDS timestamp [+ INTERVAL interval] ...]

interval:
quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

来自
<https://www.cnblogs.com/geaozhang/p/6821692.html>

十、触发器

1 创建触发器

CREATE
TRIGGER trigger_name【触发器名称】

triggername_time【BEFORE|ALTER】

trihher_event【INSERT|UPDATE|DELETE】 on tablename

FOR EACH ROW

trigger_stmt;

2查看触发器

SHOW TRIGGERS\G【查看所有触发器】

DESC
information_schema.triggers;【查看触发器表】

SELECT *
FROM information_schema.triggers WHERE trigger_name='t_afterdelete_on_test1'\G;【查看某一个触发器具体信息】

DROP TRIGGER [IF EXISTS]
[schema_name.].trigger_name;删除触发器

十一、数据库事务

START
TRANSACTION;开启事务

中间写语句

COMMIT;提交事务

ROLLBACK;事务回滚——在提交之前

2事务的属性——数据库是多线程并发访问的

ACID:原子性 一致性 隔离性 持久性

事务的隔离级别:

READ UNCOMMITTED【脏读 读未提交】-所有事务都可看到其他未提交事务

READ
COMMITTED【不可重复读 读已提交】—一个事务只能看到已经提交事务改变

REPEATABLE
READ 【幻读 可重复度】——同一事务多个实例并发执行同样数据

SERIALIZABLE
【可串行化】-强制事务排序使之不可能互相冲突

SELECT
@@tx_isolation;查看当前会话隔离级别

SET SESSION TRANSACTION ISOLATION
LEVEL (READ UNCOMMITTED)|(READ COMMITTED)|(REPEATABLE
READ)|(SERIALIZABLE);设置会话隔离级别

3 分布式事务

XA
{START|BEGIN} xid [JOIN|RESUME] 开始一个分布式事务

XA END xid
[SUSPEND [FOR MIGRATE]] 操作分布式事务

XA PREPARE
xid 准备提交事务

XA COMMIT
xid [ONE PHASE] 提交事务

XA ROLLBACK
xid 回滚事务

XA RECOVER
[CONVERT XID] 查看处于PREPARE状态的事务

十二、MYSQL 高级操作

1 数据的备份

mysql
-uusername -ppassword dbname>path:filename.sql;

SQLyog 图形界面sql文件形式转储

2 数据的还原

mysql -uusername -ppassword dbname<path:filename.sql;

SQLyog 图形界面 执行SQL脚本

3 权限管理【百度去吧】

MYSQL的权限与user表

授予权限:

查看权限:SHOW GANTS FOR ‘username’@‘hostname’

收回权限:

4 MYSQL分区【具体自己看书去吧】

RANGE分区 LIST分区 HASH分区 KEY分区

MYSQL的操作命令的更多相关文章

  1. MySQL基础操作命令

    MySQL基础操作命令 1. 查看MySQL进程 ps -ef|grep mysql |grep -v grep 2. 查看MySQL端口 ss -lnt | grep 3306 3. MySQL的启 ...

  2. MySQL基本操作命令

    数据库的基本操作命令 1.登录MySQL -- 进入数据库的方法一 mysql -uroot -pmysql # mysql 数据库密码(显示) -- 进入数据库的方法二 mysql -uroot - ...

  3. python3笔记二十四:Mysql数据库操作命令

    一:学习内容 Mysql操作命令:启动服务.停止服务.连接数据库.退出数据库.查看版本.显示当前时间.远程连接 数据库操作命令:创建数据库.删除数据库.切换数据库.查看当前选择的数据库 表操作命令:查 ...

  4. MYSQL数据库------操作命令笔记

    一.数据库连接 * 连接数据库命令(前提需要安装mysq ): mysql -h hostIp -u userName -pPassWord 二.数据库操作 * 查看所有数据库: show datab ...

  5. linux mysql 相关操作命令

    1.linux下启动mysql的命令:mysqladmin start/ect/init.d/mysql start (前面为mysql的安装路径) 2.linux下重启mysql的命令:mysqla ...

  6. Linux mysql常用操作命令

    原文:http://blog.csdn.net/lifuxiangcaohui/article/details/46375931 1.linux下启动MySQL的命令:mysqladmin start ...

  7. MYSQL日常操作命令再熟悉

    1,创建用户及密码: CREATE USER 'user'@'%' IDENTIFIED BY 'password'; 2,创建数据库: create database PDB_chengang de ...

  8. MySQL 数据库操作命令汇总

    此文全部都是基本的数据库语言 1.登陆到mysql >mysql -h hostname -u username -p 然后等待系统提示输入密码即可登陆.如果想在登陆的时候就选择好数据库,可以使 ...

  9. mysql常用操作命令

    本章内容:(引用原文:http://www.cnblogs.com/suoning/p/5769141.html) 查看\创建\使用\删除 数据库 用户管理及授权实战 局域网远程连接法 查看\创建\使 ...

  10. Windows下Mysql常用操作命令

    以下命令中的服务启动及停止需要使用以管理员身份运行cmd.exe. 1.启动Mysql服务:net start [mysql服务名].示例: net start mysql57 结果: 2.停止Mys ...

随机推荐

  1. C++: Unresolved external symbol __imp__fscanf

    VS2019中遇到错误error LNK2001: unresolved external symbol __imp__fscanf 解决办法:链接legacy_stdio_definitions.l ...

  2. Windows VS2017 编译 libssh2 1.7.0(执行命令、文件上传、下载)

    下载安装 OpenSSL 要编译 libssh2,必须先编译好 OpenSSL 的静态库,直接从 http://slproweb.com/products/Win32OpenSSL.html 下载已经 ...

  3. redcon, Redis兼容的服务器框架

    源代码名称:redcon 源代码网址:http://www.github.com/tidwall/redcon redcon源代码文档 redcon源代码下载 Git URL: 复制代码 git:// ...

  4. 在MAC上安装gitlab

    转载引用:https://www.cnblogs.com/floodwater/p/10138265.html 1.安装docker 2.安装gitlab-ce 1.安装docker 下载地址: ht ...

  5. laydate时间控件:开始时间,结束时间最大最小值

    时间控件地址及插件下载链接:https://www.layui.com/doc/modules/laydate.html 填充时间已两个功能为例: 1.添加功能 :时间 规则:选择开始时间后,点击结束 ...

  6. python面向对象学习笔记(一)

    粘贴一些自学过程中的笔记大纲,源文本在pycharm里面写的,有点乱整理一下,部分内容有待补充,书写不一定100%正确,全当数据备份了. 1.面向对象的特性 #你写代码时什么使用面向对象 #处理比较复 ...

  7. Vue双向数据绑定简易实现

    一.vue中的双向数据绑定主要使用到了Object.defineProperty(新版的使用Proxy实现的)对Model层的数据进行getter和setter进行劫持,修改Model层数据的时候,在 ...

  8. Beginning Linux Programming 学习-chapter2-Shell programming-Pipes and Redirection

    "为了从事创造性工作,人类需要孤独,可是在孤独中,广义的人类仍存在于内心."--(德国)奥铿                                             ...

  9. 25.Spark下载源码和安装和使用

    安装scala 上传安装包 解压 配置scala相关的环境变量 export SCALA_HOME=/opt/modules/scala-2.11.4 export PATH=$PATH:$SCALA ...

  10. hadoop--Unable to load native-hadoop library for your platform解决方法

    笔者实验环境:centos 7.4.1708,hadoop-2.6.0-cdh5.14.2. 执行hadoop命令时出现以下告警,不能加载相关库: WARN util.NativeCodeLoader ...