MySQL
管理MySQL的命令
- show databases; 列出DBMS的数据库列表
- use database_name; 选择要操作的数据库
- use tables; 列出指定数据库的所有表
- show columns from table_name; 显示数据表的字段名,类型,主键信息,是否为NULL,默认值等
- show index from table_name; 显示数据表的详细索引信息,包括主键primary key
- show table status from database_name like 'pattern'[\G]; 输出DBMS的性能及统计信息,加上\G,查询结果按列打印
show table status from mysql like 'user%'\G;
- show engines; 查看支持的存储引擎(MySQL特有的存储引擎可以被称为表类型,即存储和操作此表的类型)
- show variables like 'storage_engine%'; 查看正在使用的存储引擎
- show variables like '%char%'; 查看数据库使用字符集
连接数据库
- mysql -u user_name -p password 连接mysql命令提示窗口
- exit / \q 退出命令提示窗口
创建数据库
- create database database_name;
- mysqladmin -u root -p create database_name 使用mysqladmin命令创建数据库
删除数据库
- drop database database_name;
- mysqladmin -u root -p drop database_name 使用mysqladmin命令删除数据库
选择数据库
- use database_name;
MySQL数据类型
- 主要分为三大类:数值、日期/时间和字符串(字符)类型
- MySQL数据类型
创建数据表
- create table table_name (column_name column type);
删除数据表
- drop table table_name;
插入数据
- insert into set table_name (field1, field2, ...) values (v1, v2, ...);
删除数据
- delete from table_name [where Clause];
修改数据
- update table_name set field1 = new_value, field2 = new_value [where Clause];
查询数据
- select column_name, column_name from table_name [where Clause] [limit N] [offset M];(where包含条件 limit限制返回记录数 offset指定开始查询的偏移量,默认为0)
where
- select field1, field2, ... from table_name1, table_name2, ...[where condition1 and | or condition2];
- where binary 区分大小写,否则不区分
like子句
- like子句中使用百分号 %字符来表示任意字符
- 如果没有使用百分号 %, like子句与等号 = 的效果是一样的
- 可以在where子句中使用like子句
union操作符
- union操作符用于连接两个以上的select语句的结果组合到一个结果集合中,使用distinct删除重复的数据,默认为distinct
- select field1, field2, ...
from tables
[where conditions]
union [all | distinct]
select field1, field2, ...
from tables
[where conditions];
order by排序
- select field1, field2,...from table_name1, table_name2...
order by field1, [field2...] [ASC [DESC]]
group by分组
- group by语句根据一个或多个列对结果集进行分组
- 在分组的列上我们可以使用 count, sum avg等函数
with rollup 加在group by之后,可以对group by分组统计的结果基础上再进行相同的统计操作
join连接
- inner join ... on ... 内连接/等值连接(可以省略inner,获取两个表中字段匹配关系的记录)
- left join ... on 左连接(获取左表所有记录,即使右表没有对应匹配的记录)
- right join ... on 右连接(获取右表所有记录,即使左表没有对应匹配的记录)
处理NULL值
- is null
- is not null
- <=> null值比较操作符,均为null返回true(null = null 返回false)