【mysql学习笔记整理】
/*mysql学习笔记整理*/
/*常用的数据库操作对象*/
#库的操作
#创建
#数据库的创建
USE mysql;
CREATE DATABASE db_x;
#删除
#删除数据库
DROP DATABASE db_x;
#删除数据库
#查看
SHOW DATABASES;
#查看数据库
#备份和还原
#备份|还原数据库
mysqldump -u root -p {mysql|--all-DATABASE|--database}[><]{DIRECTORY}
#表的操作
#创建
#表格的创建
CREATE TABLE tb_x
(
id INT NOT NULL,
NAME CHAR(10)
);
/*数据类型和约束*/
完整约束{NOT NULL:非空约束;UNIQUE:UK:唯一性约束;PRIMARY KEY:PK:主键约束;
AUTO_INCREMENT:自动增长约束;FOREIGN KEY:FK:外键约束}
CONSTRAINT {PK|FK|UK_tb_name}(column_name):约束名;
PK_FK_UK(column_name1,column_name2):联合约束;
fk(column_name)REFERENCES tb_2(column_name):外键联合
#表的操作
#删除
#删除表格
DROP TABLE tb_x;
#查看
#查看表格的字段
DESCRIBE tb_xx;
#修改
#表格的修改{rename:重命名表名,add{first(首行);after(字段之后);
#增加字段}
ALTER TABLE tb_x RENAME tb_xx;
ALTER TABLE tb_xx ADD num VARCHAR(20) FIRST;
ALTER TABLE tb_xx ADD weather CHAR(10) AFTER id ;
#删除表格字段
ALTER TABLE tb_xx DROP weather ;
#修改表格字段数据类型和字段名称{modify(修改和移动字段位置),change}
ALTER TABLE tb_xx MODIFY num INT;
ALTER TABLE tb_xx MODIFY id INT FIRST;
ALTER TABLE tb_xx MODIFY id INT AFTER number;
ALTER TABLE tb_xx CHANGE num number CHAR(10);
#索引的操作
#创建
#法一:在创建表格的同时,把索引当成字段
INDEX index_name(column_name);
#法二:在库里有这张表的基础上,索引字段
CREATE INDEX index_name ON table_name(column_name);
#法三:把索引同修改表格字段的方式,去映射字段的索引
ALTER TABLE table_name ADD inedx index_name(column_name);
#索引种类
#唯一索引
UNIQUE INDEX index_name;
#全文索引
FULLTEXT INDEX index_name;
#多列索引
INDEX index_name(column_name1,column_name2,......column_namen)
#删除
#删除索引
DROP INDEX index_name;
#视图的操作
#创建
#创建视图
CREATE VIEW view_name
AS #别名
sql_parmament; #{这里封装的是查询语句}
#删除
#删除视图
DROP VIEW view_name
#修改
#覆盖视图
CREATE OR REPLACE VIEW view_name
AS
new_sql_parmament;
#修改视图
ALTER VIEW view_name
AS
new_sql_parmament;
#索引同表格相同可执行select和insert及update和delete
#存储过程的操作
#存储过程的创建
DELIMITER $$
CREATE PROCEDURE procedure_name()
{COMMENT|} #动作
BEGIN
sql_parmanment;
END$$
DELIMITER;
#修改存储过程
ALTER PROCEDURE procecure_name
{COMMENT|}
#删除存储过程
DROP PROCEDURE procedure_name;
#函数的操作
#创建函数
DELIMITER $$ #结束表示符
CREATE FUNCTION function_name() #---->数据类型
RETURNS new_type; #--->新数据类型
{COMMENT|} #动作
BEGIN
RETURN(
sql_parment;
)
END$$
DELIMITER;
#修改存储过程
ALTER FUNCTION function_name
#删除存储过程
DROP FUNCTION finction_name
#触发器的操作
#触发器的创建
#单个动作
CREATE TRIGGER tri_x
BEFORE INSERT #动作的执行前后
ON tb_x FOR EACH ROW #是不是要立即触发
INSERT INTO tb_y VALUES(1,"a"); #触发动作
#多个动作
DELIMITER $$
CREATE TRIGGER tri_y
AFTER INSERT
BEGIN
ON tb_x FOR EACH ROW
INSERT INTO tb_y VALUES(1,"a");
END&&
DELIMITER;
/*{update,delete,insert 等语句}*/
#更新字段
UPDATE table_name SET COLUMN=new_column;
#删除
DELETE FROM table_name WHERE sql_if_else; #条件语句
#插入
INSERT INTO table_name VALUES(values_1,values_2,....values_n),(,,,);
/*函数及如何准确高效的select*/
#运算符
#1:算数运算符:{+,-,*,/};
#2:比较运算符:{>,<,<>,<=>,!=}
#3:特殊比较运算符:正则匹配REGEXP
/*{"o$" #结尾 "^h" #开头 "[h..o]" #字符中间
"[a-b]" #范围 "[^g~z]" #范围之外 "h+o" #字符包含
"h*o" "h|e|o" #存在 "l{2}" #出现次数 "1{0,2}";*/
#4:逻辑运算符:{||(or),&&(and),xor,!}
#5:位运算符:{|,&,^,~,>>,<<}
#6:模糊运算符:not |in(),between and,null | not null,like ,;
#条件查询
GROUP BY(columan_name);
HAVING :现状分组查询;
UNION ALL:联合表格{all不排除重复};
ORDER BY DESC|ASC:排序{降序|升序};
LIMIT:限制行数;
DISTINCT:排除重复;
#多表连接
法一:
{内连接,外连接,左连接,右连接}
{INNER|OUT|LEFT|RIGHT|JOIN table_name
ON table_name1.column_1=table_name2.column_1;
法二:
SELECT table1_name.column1_name,table2_name.column2_name
FROM table1_name,table2_name
WHERE table1_name.column1=table2_name.column2
#子查询
SELECT column_name FROM table_name WHERE column_name{运算符}
#运算符{>,<,=,in,any.....}
(
SELECT column_name FROM table_name
);
#函数
#字符串函数
#1:{concat():连接字符串,concat_ws():条件分割连接字符串}
#2:{strcmp():比较字符串大小;length()&&char_length():字符串长度}
#3:{upper&&ucase:字符转大写;lower&&lcase:字符转小写}
#4:{find_in_set(),locate(),position(),filed(),insert():查找字符串的位置}
#5::{elt():指定要显示特定字符串位置,make_set():按二进制匹配};
#6:{left():左截取;right():右截取;substring(),med():按位置和长度截取}
#7:{ltrim(),trim():处理字符串中的空格}
#8:{insert():替换指定位置的字符}
#9:{replace():字符替换函数}
#数学函数
#{fllor(),cell(),trucate(),round()};
#日期函数
#{now(),current_date(),current_time()}
#datediff():计算日期差
#系统函数
#VERSION() "系统版本",USER() "登陆用户";
#LAST_INSERT_ID()执行系统函数获取最后自增的id字段号
#其它函数
#INET_ATON("127.0.0.1")"ip地址转数字";
#INET_NTOA("1230133112")"数字转ip地址";
/*用户及权限的管理*/
#用户的创建
#法一:create
CREATE USER u5@localhost IDENTIFIED BY "123";
#法二:insert
INSERT INTO USER(HOST,USER,PASSWORD)VALUES("localhost","u6",123);
#法三:grant
GRANT ALL PRIVILEGES ON *.* TO u7@localhost IDENTIFIED BY "123";
#查看创建的用户
USE mysql;
SELECT * FROM USER;
#删除用户
#法一:drop
DROP USER u6@localhost;
#法二:delete
DELETE FROM mysql.user WHERE USER="u4" AND HOST="localhost";
#为用户设置密码
#法一:SET
SET PASSWORD FOR "u3"@"localhost"=PASSWORD("123");
SET PASSWORD=PASSWORD("456");
#法二:update
UPDATE mysql.user SET PASSWORD=PASSWORD("456")
WHERE HOST="localhost" AND USER="u6";
#权限:
#设置权限
#全部权限|部分权限
GRANT {ALL(SELECT,DROP,delete...} PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "password";
#查看权限
SHOW GRANT "user_name"@"host_name";
#收回权限
REVOKE {SELECT|DROP|DELTE|...} FROM "USER_NAME"@"HOST_NAME";
REVOKE ALL PRIVILEGES ,GRANT OPTION ON "USER_NAME"@"HOST_NAME";
#刷新权限
FLUSH PRIVILEGES;
#其它的一些mysql服务优化
#日志:{二进制日志,错误日志,慢查询日志,简要查询日志}
mysql -p FLUSH-LOG:清除日志
【mysql学习笔记整理】的更多相关文章
- Mysql学习笔记整理手册
目录 (1) str_to_date (2) 递归查询 (3) 排序问题 (4) 条件函数 (5) 列转行函数 (6) find_int_set (7) 类型转换函数 (8) 合并更新 继上一篇博客& ...
- MySQL 学习笔记整理
1. 创建表 CREATE TABLE item( ID INT(6) NOT NULL AUTO_INCREMENT, Name CHAR(32) NOT NULL, Price DECI ...
- Mysql学习笔记整理之数据库优化
数据库性能瓶颈的原因 数据库连接数 数据量大 硬件资源限制 数据性能优化方案 sql优化 2.缓存 3.建好索引 4.读写分离 5. 分库分表 慢日志查 ...
- Mysql学习笔记整理之引擎
mysql的引擎: myisam引擎 Mysql 5.5之前默认的存储引擎 数据.索引分别存储 (数据物理磁盘---索引物理磁盘) .MYD 存储数据 表级索 ...
- Mysql学习笔记整理之选用B+tree结构
为什么mysql不使用平衡二叉树? 数据处的深度决定着他的IO操作次数,IO操作耗时大 每一个磁盘块保存的数据量太小 B+Tree和B-Tree的区别? B+树几点关键字搜索采用闭合区间 B+树非叶节 ...
- Mysql学习笔记整理之索引
索引的概念: 索引是一个分散存储的数据结构(检索)对数据库表中一列或多列的值进行排序 为什么要用索引? 索引能极大的减少存储引擎需要扫描的数据量 索引可以把随机IO变成顺序IO 索引可以帮助我们进行分 ...
- Mysql学习笔记(三)对表数据的增删改查。
正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...
- 一千行MySQL学习笔记 (转)
出处: 一千行MySQL学习笔记 /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权 ...
- mysql basic operation,mysql总结,对mysql经常使用语句的详细总结,MySQL学习笔记
mysql> select * from wifi_data where dev_id like "0023-AABBCCCCBBAA" ; 1.显示数据库列表.show d ...
随机推荐
- textarea高度随着内容的多少而变化,高度可以删减
问题:可以多行输入,并且输入框的高度随着内容的多少而变化,输入框的高度不能只增不减 由于 input 只能单行输入 textarea可以多行输入,并且高度可以随着内容的增加而增加,但是当内容删减的时候 ...
- js初级DOM&BOM知识点总结
第一章 js的组成DOM BOM ECMAScript javaScript 是一种直译是脚本语言 js语言特点 .脚本编写语言 .基于对象的语言 .简单性 .动态性 .安全性 .跨平台性 C/S是C ...
- 一次完整的HTTP事务过程
基本流程: a. 域名解析 b. 发起TCP的3次握手 c. 建立TCP连接后发起http请求 d. 服务器端响应http请求,浏览器得到html代码 e. 浏览器解析html代码,并请求html代码 ...
- 关于 document.compatMode
今天查资料时无意发现一个以前没有注意到过的属性:document.compatMode 经过一番资料的查询后,了解到以下信息: 我们都知道IE有两种盒子模型,在不声明 !DOCTYPE 时是混杂模式 ...
- 关于String s = new String("xyz");创建了几个字符串对象?的问题
引用自这位朋友:http://blog.sina.com.cn/s/blog_6a6b14100100zn6r.html 首先让我们了解几个概念: 栈:由JVM分配区域,用于保存线程执行的动作和数据引 ...
- jquery:jqery表单属性 值操作
重置表单(且清空隐藏域) $('#myform')[0].reset() DOM属性相关操作 返回属性值 $(selector).attr(attribute) 设置属性值 $(selecto ...
- day005-异常
1. 异常概念 1.1 异常的继承体系 异常的根类:java.lang.Throwable,其下有两个子类: Java.lang.Error Java.util.Exception ...
- 解决SQLite打开已有路径下的db问题
最近遇到的需要加载已有路径下(sd card下)db的问题,找了一下资料,以下是解决的方法,仅供参考(转载自eoe): SQLiteOpenHelper 是Android框架为我们提供的一个非常好的数 ...
- Java传引用问题
Java传引用问题 使用Java调用方法时,可以传值,也可以传引用.下面说说两者的区别: 1.传值 传值中的"值"类型是指java的8大基本类型(基础知识,不知道 ...
- BZOJ2648/2716:SJY摆棋子/[Violet]天使玩偶(K-D Tree)
Description 这天,SJY显得无聊.在家自己玩.在一个棋盘上,有N个黑色棋子.他每次要么放到棋盘上一个黑色棋子,要么放上一个白色棋子,如果是白色棋子,他会找出距离这个白色棋子最近的黑色棋子. ...