MYSQL的操作命令
一、御前
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的操作命令的更多相关文章
- MySQL基础操作命令
MySQL基础操作命令 1. 查看MySQL进程 ps -ef|grep mysql |grep -v grep 2. 查看MySQL端口 ss -lnt | grep 3306 3. MySQL的启 ...
- MySQL基本操作命令
数据库的基本操作命令 1.登录MySQL -- 进入数据库的方法一 mysql -uroot -pmysql # mysql 数据库密码(显示) -- 进入数据库的方法二 mysql -uroot - ...
- python3笔记二十四:Mysql数据库操作命令
一:学习内容 Mysql操作命令:启动服务.停止服务.连接数据库.退出数据库.查看版本.显示当前时间.远程连接 数据库操作命令:创建数据库.删除数据库.切换数据库.查看当前选择的数据库 表操作命令:查 ...
- MYSQL数据库------操作命令笔记
一.数据库连接 * 连接数据库命令(前提需要安装mysq ): mysql -h hostIp -u userName -pPassWord 二.数据库操作 * 查看所有数据库: show datab ...
- linux mysql 相关操作命令
1.linux下启动mysql的命令:mysqladmin start/ect/init.d/mysql start (前面为mysql的安装路径) 2.linux下重启mysql的命令:mysqla ...
- Linux mysql常用操作命令
原文:http://blog.csdn.net/lifuxiangcaohui/article/details/46375931 1.linux下启动MySQL的命令:mysqladmin start ...
- MYSQL日常操作命令再熟悉
1,创建用户及密码: CREATE USER 'user'@'%' IDENTIFIED BY 'password'; 2,创建数据库: create database PDB_chengang de ...
- MySQL 数据库操作命令汇总
此文全部都是基本的数据库语言 1.登陆到mysql >mysql -h hostname -u username -p 然后等待系统提示输入密码即可登陆.如果想在登陆的时候就选择好数据库,可以使 ...
- mysql常用操作命令
本章内容:(引用原文:http://www.cnblogs.com/suoning/p/5769141.html) 查看\创建\使用\删除 数据库 用户管理及授权实战 局域网远程连接法 查看\创建\使 ...
- Windows下Mysql常用操作命令
以下命令中的服务启动及停止需要使用以管理员身份运行cmd.exe. 1.启动Mysql服务:net start [mysql服务名].示例: net start mysql57 结果: 2.停止Mys ...
随机推荐
- C++: Unresolved external symbol __imp__fscanf
VS2019中遇到错误error LNK2001: unresolved external symbol __imp__fscanf 解决办法:链接legacy_stdio_definitions.l ...
- Windows VS2017 编译 libssh2 1.7.0(执行命令、文件上传、下载)
下载安装 OpenSSL 要编译 libssh2,必须先编译好 OpenSSL 的静态库,直接从 http://slproweb.com/products/Win32OpenSSL.html 下载已经 ...
- redcon, Redis兼容的服务器框架
源代码名称:redcon 源代码网址:http://www.github.com/tidwall/redcon redcon源代码文档 redcon源代码下载 Git URL: 复制代码 git:// ...
- 在MAC上安装gitlab
转载引用:https://www.cnblogs.com/floodwater/p/10138265.html 1.安装docker 2.安装gitlab-ce 1.安装docker 下载地址: ht ...
- laydate时间控件:开始时间,结束时间最大最小值
时间控件地址及插件下载链接:https://www.layui.com/doc/modules/laydate.html 填充时间已两个功能为例: 1.添加功能 :时间 规则:选择开始时间后,点击结束 ...
- python面向对象学习笔记(一)
粘贴一些自学过程中的笔记大纲,源文本在pycharm里面写的,有点乱整理一下,部分内容有待补充,书写不一定100%正确,全当数据备份了. 1.面向对象的特性 #你写代码时什么使用面向对象 #处理比较复 ...
- Vue双向数据绑定简易实现
一.vue中的双向数据绑定主要使用到了Object.defineProperty(新版的使用Proxy实现的)对Model层的数据进行getter和setter进行劫持,修改Model层数据的时候,在 ...
- Beginning Linux Programming 学习-chapter2-Shell programming-Pipes and Redirection
"为了从事创造性工作,人类需要孤独,可是在孤独中,广义的人类仍存在于内心."--(德国)奥铿 ...
- 25.Spark下载源码和安装和使用
安装scala 上传安装包 解压 配置scala相关的环境变量 export SCALA_HOME=/opt/modules/scala-2.11.4 export PATH=$PATH:$SCALA ...
- 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 ...