最近一段时间,系统的学习了下mysql相关知识,当然都是比较基础的,现在贴出来,以供参考备忘--帅帅的小猪猪

创建用户:
CREATE USER 'sampadm'@'localhost' IDENTIFIED BY 'secret';
赋权限:
GRANT ALL ON sampdb.* TO 'sampadm'@'localhost';
回收权限:
REVOKE ALL ON *.* FORM 'sampadm'@'localhost';
刷新权限:
FLUSH PRIVILEGES;
删除用户:
DELETE FROM mysql.user WHERE user='sampadm' AND host='localhost';
更改密码:
UPDATE mysql.user SET password=password('新密码') WHERE user='sampadm' AND host='localhost';

查看权限种类:
mysql>SHOW PRIVILEGES;

查看当前用户有哪些权限:
mysql>SHOW GRANTS;

COUNT(*)的统计结果是被选中的数据行的总数,而COUNT(数据列名称)值则只统计全体非NULL值的个数。有差别!!!

查看数据库数据存放位置
mysql>SHOW VARIALBES LIKE 'datadir';

MEMORY数据表是一种贮存在内存中的表,其数据都存在内存而不是硬盘中,所以当服务器重启或关机时,MEMORY表数据会丢失,但依然能查询到该表,有其表结构

bin>mysqldump -u xxx -p db_name tbl_name > xxx.sql
密码不能直接打出来,否则会报warning
几个常用用例:
1.导出整个数据库
mysqldump [-h 主机名 -P 端口号] -u 用户名 -p 数据库名 > 导出的文件名
mysqldump [-h 127.0.0.1 -P 3306] -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.导出一个数据库结构
mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
常用source 命令
mysql>source aa.sql

设置字符集(数据库、数据表、数据列均可)
CHARACTER SET charset
排序方式
COLLATE collation

查看数据库的存储引擎
mysql>SHOW VARIABLES LIKE '%storage_engine%';

查看当前数据库中各表信息
mysql>SHOW TABLE STATUS;

mysql>CREATE TABLE IF NOT EXISTS tbl_name(...);

TEMOPARY临时表当与服务器断开时会自动消失。TEMPORARY表只对创建该表的客户(创建的链接)是可见的,因为每个客户只能看到自己创建的数据表,所以不同的客户可以各自创建一个名字相同的TEMPORARY数据表而不会发生冲突。而且因为TEMPORARY表是隐藏的,即使本数据库中有与这张同名的表也可创建,而且查询的时候会查寻TEMPORARY表的数据。

创建一张表的副本(不带数据),可以将原表的表结构完全复制
mysql>CREATE TABLE copy_tbl_name LIKE tbl_name;
而创建副本并带数据的话,表结构不能完全复制,如索引、AUTO_INCREMENT
mysql>CREATE TABLE copy_tbl_name SELECT * FROM tbl_name [WHERE XXXX];

MERGE表可以查各个MyISAM表,前提是表结构一致,如:
CREATE TABLE log_2007             CREATE TABLE log_2008
(                                               (
  dt DATETIME NOT NULL,               dt DATETIME NOT NULL,
  info VARCHAR(100) NOT NULL,      info VARCHAR(100) NOT NULL,
  INDEX (dt)                                   INDEX (dt)
) ENGINE = MyISAM;                   ) ENGINE = MyISAM;

CREATE TABLE log_merge
(
dt DATETIME NOT NULL,
info VARCHAR(100) NOT NULL,
INDEX (dt)
) ENGINE = MERGE UNION = (log_2007, log_2008);
查询几个日志表总行数:
SELECT COUNT(*) FROM log_merge;
这几年每年各有多少事情发生:
SELECT YEAR(dt) AS y, COUNT(*) AS intries FROM log_merge GROUP BY y;
MERGE表可执行UPDATE和DELETE操作,但不能执行INSERT操作,因为不知道往那张表插数据,故要加数据必须给其INSERT_METHOD值(NO/FIRST/LAST),ALTER TABLE log_merge INSERT_METHOD = LAST;
MERGE表还可包括压缩的数据表

创建索引:
mysql>ALTER TABLE tble_name ADD INDEX index_name (index_columns);
mysql>ALTER TABLE tble_name ADD UNIQUE index_name (index_columns);
mysql>ALTER TABLE tble_name ADD PRIMARY KEY (index_columns);
mysql>ALTER TABLE tble_name ADD FULLTEXT index_name (index_columns);
mysql>ALTER TABLE tble_name ADD SPATIAL index_name (index_columns);

改变数据列的数据类型:
mysql>ALTER TABLE tbl_name MODIFY i SMALLINT UNSIGNED;
mysql>ALTER TABLE tbl_name CHANGE i i SMALLINT UNSIGNED;
MODIFY和CHANGE子句都可以改变数据列的数据类型,但CHANGE还可同时修改数据列的名称,不过即使不用修改,也要把名称再多写一遍
加上数据库名称可以将该表移到另一个数据库:
ALTER TABLE db_name1.tbl_name MODIFY db.name2.tbl_name;

查找某张表是否存在(不包括TEMPORARY表)
mysql>SHOW TABLES LIKE 'tbl_name';
mysql>SHOW TABLES FROM db_name LIKE 'tbl_name';
查找某张表是否存在(包括TEMPORARY表)
mysql>SELECT COUNT(*) FROM tbl_name;
mysql>SELECT * FROM tbl_name WHERE FALSE;

UNION 是 UNION DISTINCT 的同义词,如有相同的记录则会只保留一条,若想全保留,用UNION ALL;当UNION 与UNION ALL 混用时,每个UNION操作将优先于它左边的任何UNION ALL操作

设置事物的隔离级别:
SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL level;
level: READ UNCOMMITTED
READ COMMITTED
REPEATABLE READ
SERIALIZABLE

子表里定义一个外键的语法:
[CONSTRAINT constraint_name]
FOREIGN KEY [fk_name] (index_columns)
REFERENCES tbl_name (index_columns)
[ON DELETE action]
[ON UPDATE action]
[MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]
例子:
CREATE TABLE a (id SMALLINT UNSIGNED NOT NULL PRIMARY KEY);
CREATE TABLE b
(id SMALLINT UNSIGNED,
name VARCHAR(10),
FOREIGN KEY (id) REFERENCES a (id)
ON DELETE CASCADE
ON UPDATE CASCADE
)ENGINE = InnoDB;

加载txt类型数据:
mysql>LOAD DATA LOCAL INFILE 'PATH' INTO TABLE tbl_name (col_name1, col_name2....);

查看存储过程:
mysql>SHOW PROCEDURE STATUS;
mysql>SHOW CREATE PROCEDURE proc_name;

触发器:
mysql>DELIMITER $
>CREATE TRIGGER tri_name BEFORE/AFTER INSERT/UPDATE/DELETE ON tbl_name
>FOR EACH ROW
>BEGIN
>.....
>END$
mysql>DELIMITER ;
PS: 1、NEW/OLD 可取出修改后的或未修改前的字段值
2、Not allowed to return a result set from a trigger;不允许有返回值

查看事件是否开启:
mysql>SHOW VARIABLES LIKE 'EVENT_SCHEDULER'; -- 0/OFF 1/ON
设置事件开启/关闭:(要有supper权限)
mysql>SET GLOABLE EVENT_SCHEDULER = 1/ON; -- 开启
mysql>SET GLOABLE EVENT_SCHEDULER = 0/OFF; -- 关闭

事件语法:
mysql>CREATE EVENT event_name
>ON SCHEDULE EVERY n interval/AT some_time
>DO ....;

MYSQL基础--学习笔记的更多相关文章

  1. 尚硅谷MySQL基础学习笔记

    目录 写在前面 MySQL引入 数据库的好处 数据库的相关概念 数据库存储数据的特点 MySQL服务的启动和停止 MySQL服务端的登录和退出 MySQL的常用命令 MySQL语法规范 DQL(Dat ...

  2. MySQL基础学习笔记

    一.数据库基本概念 1.1 数据库 - Database 从字面意思看,数据库就是一个存储数据的仓库.从计算机的角度来讲,数据库(Datebase)是按照数据结构来组织.存储和管理数据的仓库. 简单来 ...

  3. MySql 基础学习笔记 1——概述与基本数据类型: 整型: 1)TINYINT 2)SMALLINT 3) MEDIUMINT 4)INT 5)BIGINT 主要是大小的差别 图 浮点型:命令

    一.CMD中经常使用mysql相关命令 mysql -D, --database=name  //打开数据库 --delimiter=name  //指定分隔符 -h, --host=name  // ...

  4. Mysql数据库基础学习笔记

    Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...

  5. MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  6. Java基础学习笔记总结

    Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...

  7. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  8. 基于【 MySql 】二 || mysql详细学习笔记

    mysql重点学习笔记 /* Windows服务 */ -- 启动MySQL net start mysql -- 创建Windows服务 sc create mysql binPath= mysql ...

  9. MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

随机推荐

  1. C#编写的通过汉字得到拼音和五笔码

    public static class SpellAndWbConfig { #region 变量声明 // XML文件读取实例 /// <summary> /// XML文件读取实例 / ...

  2. javascript立即执行函数 (function(){})()

    看到一段代码: (function(){ var outer = $('#subject'); outer.find('li').on('mouseover', mouseover); })() ( ...

  3. Linux VM acquisition

    The evidence is a VM as below. The flat vmdk is the real disk, and the vmdk only 1kb is just a descr ...

  4. form 编译命令

    11i: Form:f60gen $AU_TOP/forms/ZHT/GLXJEENT.fmb userid=apps/tpsadbm output_file=$GL_TOP/forms/ZHT/GL ...

  5. 开源文档管理工具Joomla的网站安装

    1.配置PHP开发环境(Apache.PHP.MySQL) 2.安装Joomla网站: 1. 下载安装包     http://www.joomla.org/download.html 2. 登陆Jo ...

  6. Excel_常用快捷键

    Ctrl+B        粗体Ctrl+U         下划线Ctrl+I         斜体Ctrl+5      删除线Ctrl+9      隐藏选中的行Ctrl+0      隐藏选中 ...

  7. 手机刷机软件与ROM的盈利模式分析

    一. 智能手机的兴起不过短短几年时间,更新迭代已经让实体键盘成为回忆.智能手机带来的是人们生活习惯的改变,对于手机的重度依赖,是好是坏不去评价.智能手机相对于之前的手机最大的改变不仅仅是屏幕的飞速变大 ...

  8. linux系统各目录存储的文件类型

    /etc 存储各种配置文件 /etc/init.d/ 目录下包含许多系统各种服务的启动和停止脚本.具体可见:http://blog.csdn.net/gongweijiao/article/detai ...

  9. html中的块元素(Block)和内联元素(Inline)(转)

    我们首先要了解,所有的html元素,都要么是块元素(block).要么是内联元素(inline).下面了解一下块元素.内联元素各自的特点: 块元素(block)的特点: 1.总是在新行上开始:2.高度 ...

  10. machine learning----->什么是机器学习

    1.概述: 学习一门学问的第一步就是要了解这门学问到底是什么,它可以被用来干什么. 本文罗列了学习machine learning的过程中看到的一些写得比较好的文章以及读完这些文章之后对机器学习的初步 ...