mysqlNote - juedaiyuer/researchNote GitHub Wiki
#MYSQL笔记#
##命令使用笔记##
mysql -uroot -p 连接数据库
show databases; 显示所有数据库
show tables; 显示当前所在库的数据表
##创建数据库##
CREATE DATABASE IF NOT EXISTS your_database; 创建数据库
CREATE DATABASE IF NOT EXISTS hibernate DEFAULT charset=utf8 COLLATE utf8_general_ci;
##删除数据库##
drop database 数据库名
##表结构##
DESC table_Name; 查看表结构
show create table 表名\G; 查看表的定义
status; 当前mysql的version的各种信息
truncate table 表名; 清空表中的数据,不记录mysql日志
delete from 表名 where 表达式 删除表中的某些数据
DROP TABLE tb_name 删除表
select * from tb_name 查询表中的数据
事务
--事务的开启
mysql> begin;
--事务的提交
mysql> commit;
Mysql数据库中文乱码问题
-
建库设定编码问题
-
连接mysql数据库的url编码问题
jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8
mysqld与mysqld_safe的区别
在Unix和NetWare中推荐使用mysqld_safe来启动mysqld服务器
安全启动脚本
##error1045处理日志##
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
root@juedaiyuer:/home/juedaiyuer# /etc/init.d/mysql stop
root@juedaiyuer:/usr/bin# ./mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
root@juedaiyuer:/usr/bin# mysql -u root -p
mysql> use mysql;
mysql> FLUSH PRIVILEGES;
mysql> quit
root@juedaiyuer:/usr/bin# /etc/init.d/mysql restart
root@juedaiyuer:/usr/bin# mysql -u root -p
...
##JOIN##
根据两个或多个表中的列之间的关系,来查询数据
内连接
Inner Join
表中存在至少一个匹配
左外连接
Left Outer Join
右外连接
集合图类似于左外连接,只不过是以右集合为主的处理方式
从右表那里返回所有的行,即使左表没有匹配的行
参照下面的语法,右表为table_name2
关键语法
SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
全连接
Full join 关键字会从左表和右表返回所有的行
mysql默认不支持full join查询
Cross Join
交叉连接,又称笛卡尔连接或叉乘,很少情况使用.
Join的使用技巧
使用join优化子查询
使用join优化聚合子查询
分组选择
##行列转换##
报表统计,汇总显示
sum函数的使用
汇总显示:
使用了cross join处理技巧
case命令
列转行
属性拆分
ETL数据处理
- w3school
- imooc-MySQL开发技巧