MYSQL基础--学习笔记
最近一段时间,系统的学习了下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基础--学习笔记的更多相关文章
- 尚硅谷MySQL基础学习笔记
目录 写在前面 MySQL引入 数据库的好处 数据库的相关概念 数据库存储数据的特点 MySQL服务的启动和停止 MySQL服务端的登录和退出 MySQL的常用命令 MySQL语法规范 DQL(Dat ...
- MySQL基础学习笔记
一.数据库基本概念 1.1 数据库 - Database 从字面意思看,数据库就是一个存储数据的仓库.从计算机的角度来讲,数据库(Datebase)是按照数据结构来组织.存储和管理数据的仓库. 简单来 ...
- MySql 基础学习笔记 1——概述与基本数据类型: 整型: 1)TINYINT 2)SMALLINT 3) MEDIUMINT 4)INT 5)BIGINT 主要是大小的差别 图 浮点型:命令
一.CMD中经常使用mysql相关命令 mysql -D, --database=name //打开数据库 --delimiter=name //指定分隔符 -h, --host=name // ...
- Mysql数据库基础学习笔记
Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...
- MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- 基于【 MySql 】二 || mysql详细学习笔记
mysql重点学习笔记 /* Windows服务 */ -- 启动MySQL net start mysql -- 创建Windows服务 sc create mysql binPath= mysql ...
- MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
随机推荐
- RabbitMQ(二)
一.启用 rabbitmq_management 插件(官网提供的 web 版管理工具) cd /usr/sbin rabbitmq-plugins enable rabbitmq_managemen ...
- 升级正版win10及保持yosemite双操
因为有同事升级了正版的win10,心头长草了,本来x230的win7就是正版,现在win10可以免费升级,为何不做? 为此跑了2趟lenovo的维修站,诸多限制,最终决定自己搞定.据说,需要恢复到原厂 ...
- C++设计模式-Builder建造者模式
作用:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. Builder模式和AbstractFactory模式在功能上很相似,因为都是用来创建大的复杂的对象,它们的区别是:B ...
- Karma:1. 集成 Karma 和 Jasmine 进行单元测试
关于 Karma 会是一个系列,讨论在各种环境下,使用 Karma 进行单元测试. 本文讨论 karma 集成 Jasmine 进行单元测试. 初始化 NPM 实现初始化 NPM 包管理,创建 pac ...
- Android自动化学习笔记之MonkeyRunner:MonkeyRunner环境搭建
---------------------------------------------------------------------------------------------------- ...
- php标记,变量,常量
php标记 语法:有4种书写格式 1.<?php ... ?> 强烈推荐使用. 如果当前 php的代码段,是整个文档的最后一段,可以省略结束标记?(建议省略) 每句语句都要以分号;结束. ...
- linux文件权限表示及用户权限管理
UNIX/Linux下关于文件执行权限的表示和查看想必是最熟悉不过的,然而你是否真正了解用户文件的权限标识和用户的权限呢? 实际上文件权限标识不仅仅只有U, G, O 11 10 9 8 7 6 5 ...
- Java IO流体系中常用的流分类
Java输入/输出流体系中常用的流分类(表内容来自java疯狂讲义) 注:下表中带下划线的是抽象类,不能创建对象.粗体部分是节点流,其他就是常用的处理流. 流分类 使用分类 字节输入流 字节输出流 字 ...
- HTML实体字符转化为HTML标签
html_entity_decode方法 参数 描述 string 必需.规定要解码的字符串. flags 可选.规定如何处理引号以及使用哪种文档类型. 可用的引号类型: ENT_COMPAT - 默 ...
- jquery的.submit
$("form").submit(function(e){ alert("Submitted"); });