连接与断开
连接服务器
shell>mysql -h host -u user -p
断开服务器
mysql>quit
常用查询
- select version() 显示版本
- select current_date 显示当前日期
- select now() 显示当前用户
- show databases 显示所有数据库
- show tables in database 显示某个数据库中的所有数据表
- use database 使用某个数据库
- describe table_name 显示表的详细信息
-
创建数据库&表
mysql>create database mytest;
mysql>create table userinfo(name varchar(20),gender varchar(4),ctime date);
加载数据
insert into table_name values
load data local infile 'dir/file' into table table_name lines terminated by '行结束符'
-
查询数据
select name, gender, ctime from userinfo where name = 'mete' or name = 'allen' and gender = 'female' order by ctime
ps: NULL 在mysql中 是特殊的值,不能使用普通比较符来比较,需要用is或is not
模糊匹配
“_” 匹配任何单个字符;
“%”匹配任意数目字符(包括零字符)。mysql> select * from userinfo where name LIKE 'm%'
PS:使用SQL模式时,不能使用=或!=,而应使用LIKE或NOT LIKE比较操作符。
分组函数
分组 函数包含
- count() 计数
- sum() 求和
- min() 最小值
- max() 最大值
- average() 平均值
-
以上经常与group by组合使用,
mysql>select name, gender, count(*) from userinfo group by ctime
批量处理
为了批量完成处理操作,而不是交互式的方式,可将操作内容放入文件,然后将文件导入mysql进行执行
shell>mysql < test.sql
PS:在执行脚本之前,留心检查脚本中是否写了 use db
设置自增属性
可使用AUTO_INCREMENT属性为新的字段设置自增属性,可用来做唯一标识&索引
create table gender ( id MEDIUMINT NOT NULL AUTO_INCREMENT, gender ENUM('male','female','neutral') NOT NULL, PRIMARY KEY (gender,id));
Mysql 存储引擎
-
show engines 查看当前mysql所使用的引擎,最常用的有MyISAM和InnoDB
- MyISAM:默认引擎,它是基于传统的ISAM(有索引的顺序访问方法)类型,它是存储记录和文件的标准方法,但不是事务安全的,而且也不支持外键。如果执行大量 的SELECT,MyISAM是更好的选择,与InnoDB相比,可节省空间12%,存储索引可节省95%
- InnoDB:事务安全的存储引擎,支持事务、事务支持、行级锁定等
本文参考了叶金荣老师的一部分文档内容
-
show engines 查看当前mysql所使用的引擎,最常用的有MyISAM和InnoDB