【MySQL】探究之常用SQL
一些SQL命令(不断更新,我总记不住,哭)
List
建库建表
GBK: CREATE DATABASE `test_db1` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
UTF-8: CREATE DATABASE `test_db2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE `test_table` (
`id` bigint(20) unsigned NOT NULL COMMENT '主键',
`gmt_create` datetime NOT NULL COMMENT '创建时间',
`content` varchar(20) DEFAULT NULL COMMENT '说明',
PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='test create table'
表的重命名(不区分大小写)
rename table haha to contestInfo;
列的重命名
mysql中:
alter table 数据表名 change 原列名 新列名 新列类型;
oracle中:
alter table 数据表名 rename 原列名 to 新列名;
编码
修改数据库编码 ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
修改表编码 ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
修改字段编码 ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
修改结构
mysql>
#表position增加列test
alter table position add(test char(10));
#表position修改列test
alter table position modify test char(20) not null;
#表position修改列test默认值
alter table position alter test set default 'system';
#表position去掉test默认值
alter table position alter test drop default;
#表position去掉列test
alter table position drop column test;
#表depart_pos删除主键
alter table depart_pos drop primary key;
#表depart_pos增加主键
alter table depart_pos add primary key PK_depart_pos (department_id,position_id);
添加删除索引
show index from tblname;
ALTER TABLE table_name ADD INDEX index_name (column_list)
ALTER TABLE table_name ADD UNIQUE (column_list)
ALTER TABLE table_name ADD PRIMARY KEY (column_list)
CREATE INDEX index_name ON table_name (column_list)
CREATE UNIQUE INDEX index_name ON table_name (column_list)
DROP INDEX index_name ON talbe_name
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY
大批量删除
delete from contestinfo where `id`<3000;
select sleep(3);
delete from contestinfo where `id`<6000;
select sleep(3);
delete from contestinfo where `id`<9000;
...
binlog相关
备库上执行一定要考虑事务是否写binlog
set session SQL_LOG_BIN = 0; //关闭,不写binlog
set session SQL_LOG_BIN = 1; //开启,写binlog,default
mysql>show master status; 查看当前正在使用的二进制日志
mysql>show binlog events in'mysql-bin.000001'; 查看二进制日志记录的事件[from position]
mysql>flush logs; 二进制日志滚动
mysql>show binary logs; 查看所有二进制日志
mysql>purge binary logs to 'mysql-bin.000003'; 删除二进制日志
Master_Log_File & Read_Master_Log_Pos:下一个传输的主日志信息。
Relay_Master_Log_File & Exec_Master_Log_Pos:下一个执行的主日志信息。
Relay_Log_File & Relay_Log_Pos:下一个执行的中继日志信息。
中继日志出错:
mysql> CHANGE MASTER TO
MASTER_LOG_FILE='<Relay_Master_Log_File>',
MASTER_LOG_POS=<Exec_Master_Log_Pos>;
mysql> START SLAVE;
stop slave ;
reset slave [ALL] relay logs,file and post,ALL will clear ip,port,user,pass;
CHANGE MASTER TO
MASTER_HOST='xxx.xxx.xxx.xxx',
MASTER_PORT=xxxx, 切记int
MASTER_USER='xxxxx',
MASTER_PASSWORD='xxxxx',
MASTER_LOG_FILE='mysql-bin.xxxxxx',
MASTER_LOG_POS=xxxxx; 切记int
start slave;
select相关
查询时强制区分大小写
SELECT * FROM U WHERE binary name LIKE 'a%';
行号
SELECT
@row := @row + 1 as row,
t.*
FROM some_table t, (SELECT @row := 0) r
截取
SELECT
SUBSTRING_INDEX(phone,'-',2) AS PNumber,
SUBSTRING_INDEX(phone,'-', -1) AS Ext,
phone
FROM tb_user WHERE ucid=271338;
+--------------+------+-------------------+
| PNumber | Ext | phone |
+--------------+------+-------------------+
| 010-88888882 | 5612 | 010-88888882-5612 |
+--------------+------+-------------------+
拼接
UPDATE tb_user SET
phone=CONCAT( SUBSTRING_INDEX( phone,'-',2 ), '-', '1234' )
WHERE ucid = 271338;
+--------------+------+-------------------+
| PNumber | Ext | phone |
+--------------+------+-------------------+
| 010-88888882 | 1234 | 010-88888882-1234 |
+--------------+------+-------------------+
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
select id,group_concat(name order by name desc Separator ';') from aa group by id;
+------+---------------------------------------+
| id| group_concat(name order by name desc) |
+------+---------------------------------------+
|1 | 20;20;10 |
|2 | 20|
|3 | 500;200|
+------+---------------------------------------+
3 rows in set (0.00 sec)
数据库备份和恢复
mysqldump -h127.0.0.1 -uroot -P$MYSQL_PORT --default-character-set=utf8 -q -e --single-transaction --master-data=2 --result_file=/u01/bak/dump_${DB_NAME}.sql -B $candidates
content:
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000050', MASTER_LOG_POS=349656998;
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test_db_1` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `test_db_1`;
-n, --no-create-db
-t, --no-create-info
-d, --no-data
-B, --databases
-e, --extended-insert Use multiple-row INSERT syntax that include several VALUES lists.
-q, --quick Don't buffer query, dump directly to stdout.
--add-drop-database FALSE
--add-drop-table TRUE
--add-drop-trigger FALSE
--add-locks TRUE
--default-character-set=name utf8
--tz-utc TRUE SET TIME_ZONE='+00:00' at top of dump
--result_file 输出结果到
--single-transaction --master-data=2组合使用,保留位点
mysql -h localhost -P 6688 -u root -ptest database< test_db.sql
【MySQL】探究之常用SQL的更多相关文章
- mysql学习笔记—常用sql函数
SQL 拥有很多可用于计数和计算的内建函数. SQL Aggregate 函数 SQL Aggregate 函数计算从列中取得的值,返回一个单一的值. 有用的 Aggregate 函数: AVG() ...
- mysql学习笔记—常用sql语句
sql注意事项: SQL 对大小写不敏感:SELECT 与 select 是相同的 某些数据库系统要求在每条 SQL 语句的末端使用分号. CREATE DATABASE CREATE DATABAS ...
- MySql概念及常用Sql
MySQL是一个关系型数据库管理系统 MySQL启动命令: 本机mysql地址D:\pefession\mySql\mysql-8.0.12-winx64\bin 启动服务:net start mys ...
- mysql用户管理 常用sql语句 mysql数据库备份恢复
- MySQL的一些常用sql函数(持续更新。。)
1. 字符串拼接函数 :CONCAT(str1,str2,...) SELECT CONCAT('AAA','BBB') STR; //AAABBB 2. 判断是否为null,为null就指定另外一个 ...
- Mysql 常用 SQL 语句集锦
Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...
- Mysql 常用 SQL 语句集锦 转载(https://gold.xitu.io/post/584e7b298d6d81005456eb53)
Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...
- 常用SQL操作(MySQL或PostgreSQL)与相关数据库概念
本文对常用数据库操作及相关基本概念进行总结:MySQL和PostgreSQL对SQL的支持有所不同,大部分SQL操作还是一样的. 选择要用的数据库(MySQL):use database_name; ...
- 常用sql语句整理:mysql
## 常用sql语句整理:mysql1. 增- 增加一张表```CREATE TABLE `table_name`( ... )ENGINE=InnoDB DEFAULT CHARSET=utf8 ...
随机推荐
- 解决Jenkins打不开浏览器问题
参考:http://blog.csdn.net/achang21/article/details/45096003 1.控制面板禁用掉jenkins服务 2.java -jar jenkins.war ...
- 16 款最流行的 JavaScript 框架
本文列举了16个当前最流行的JavaScript框架.在这个列表中,既包括jQuery和Mootools,也有Zepo移动JavaScript框架. 里面一定有你正在用的或想尝试用的JavaScrip ...
- Web开发学习笔记
EnumUtils.isValidEnum(JnRouteProViewStateEnum.class, status) : 判断 status是否在 枚举集合中. MapUtils.isNotEmp ...
- android 两种定时器的实现
在Android上常用的定时器有两种,一种是Java.util.Timer,一种就是系统的AlarmService了. 实验1:使用Java.util.Timer. 在onStart()创创建Time ...
- 安卓手机上的python运行环境-qpython
qpython是一个能让安卓手机运行和编写python的APP,到网上下载APK安装或者在GOOGLE PLAY搜索安装即可. 安装之后你可以你手机跑自己的python程序. qpython有两个大版 ...
- 用CSS定义每段首行缩进2个字符 转
应该遵循w3c所制定的html/xhtml标准来使用tag和编写网页.如果你对此不太了解,可以到w3c的网站www.w3.org去找相关资料,或者买一本xhtml的书(注意不要买过时的html的书,尽 ...
- ACM 矩阵题目整理
先从最基础的矩阵快速幂加速递推开始. HDU 1005 Number Sequence |f[n-2],f[n-1]|* |0 B| =|f[n-1], B*f[n-2]+A*f[n-1]|=|f[n ...
- C#中的IntPtr类型
本文转自:http://zhidao.baidu.com/question/22825956.html 问: c#中无法将类型“int”隐式转换为“System.IntPtr” 这个是我引用了一个ap ...
- Day6 google Geocoding API
在看机器学习实战中K-means一章,练习中需要调用Yahoo PlaceFinder API 为地点添加经纬度,语言是python.申请到了appid但调用好像还要收费,要填写银行卡号才能用,没管那 ...
- mysql-5.6.17-win32免安装版配置
下载mysql-5.6.17-win32:官网下载地址百度 解压到自定义目录,我这里演示的是D:\wamp\mysql\ 复制根目录下的my-default.ini,改名为my.ini,my. ...