1. 连接数据库
在命令行中输入:mysql -u root -p
2. 选择数据库、数据表
Use 数据库名/数据表名
使用该命令后的所有mysql命令都只针对该数据库/表
3. 管理mysql数据库命令
show databases #显示数据库
show tables #显示数据表
show columns from 数据表名# 显示数据表的属性,属性类型,主键信息等
show index from 数据表名# 显示数据表的详细索引信息,包括主键
\G #查询结果按列打印
4. 创建数据库
创建数据表:表名;表字段名;定义每个表字段
create table table_name (cloumn_name column_type)
例:CREATE TABLE test_ tb1(
Id INT NOT NULL AUTO_INCREMENT, # 整型,非空,自增长
title VARCHAR(100) NOT NULL,
author VARCHAR(40) NOT NULL,
date DATE, # 日期
PRIMARY KEY (id ) # 主键 );#命令终止符号;
5. 删除表
drop table table_name;
6. 插入数据:
insert into
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES ( value1, value2,...valueN );
7. 查询语法:
SELECT column_name,column_name FROM table_name
[WHERE Clause]#条件语句
[LIMIT N]#输出条数
注:如果使用主键作为WHERE子句的条件查询是非常快速的
8. 一些操作符:
= ,<>,!=,>,<,>=,<=,
WHERE 子句查询是不区分大小写的,
使用BINARY关键字来设定WHERE子句的字符串比较是区分大小写的
9. 更新表update
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
10. 删除数据
DELETE FROM table_name [WHERE Clause]
11. SELECT 子句
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
可以使用LIKE子句代替等号(=)。
12. LIKE 模糊查询
使用SQL模式时,不能使用=或!=;而使用LIKE或NOT LIKE比较操作符。
LIKE 通常与 % 一同使用,类似于一个元字符的搜索
在 DELETE 或 UPDATE 命令中使用 WHERE...LIKE 子句来指定条件。
例:
查询name 中含有“三”的记录:
SELECT * FROM [user] WHERE name LIKE ‘%三%';
查询name中既含“三”又含“猫”的记录:
SELECT * FROM [user] WHERE name LIKE ‘%三%' AND name LIKE ‘%猫%'
查询name中含有“三”和“猫”,且顺序为先三后猫的:
SELECT * FROM [user] WHERE name LIKE ‘%三%猫%'
13. 用_表示任意单个字符,起到限制表达式字符长度的语句:
例:查询name为三个字符,且中间字符为:“三”的记录:
SELECT * FROM [user] WHERE name LIKE ‘_三_'
14. 排序
ORDER BY 将查询数据排序后再返回。
ASC 或 DESC 关键字来设置查询结果是按升序或降序排列,默认升序排列。
15. 分组
group by根据一个或多个列对结果集进行分组;
在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。
16. MySQL ALTER命令
删除(drop)、添加(add)或修改(modify、change)
CHANGE用法:change要修改字段名 指定新字段名 类型。
例:把字段名i改为j 类型为BIGINT
ALTER TABLE testalter_tbl CHANGE i j BIGINT;
把字段 c 的类型从 CHAR(1) 改为 CHAR(10)
ALTER TABLE testalter_tbl MODIFY c CHAR(10);
把字段i的位置改为第一:
ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT FIRST;
把字段i的位置改到c之后:
ALTER TABLE testalter_tbl ADD i INT AFTER c;
补充:FIRST 和 AFTER 关键字只占用于 ADD 子句,要重置数据表字段的位置就需要先使用 DROP 删除字段然后使用 ADD 来添加字段并设置位置。
17. 索引:
创建索引
CREATE INDEX indexName ON mytable(username(length));
修改表结构
ALTER mytable ADD INDEX [indexName] ON (username(length))
删除索引的语法
DROP INDEX [indexName] ON mytable;
主键:
ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);
18. 统计重复数据
例:将统计表中 first_name 和 last_name的重复记录数:
SELECT COUNT(*) as repetitions, last_name, first_name
FROM person_tbl
GROUP BY last_name, first_name
HAVING repetitions > 1;
查询重复的值,请执行以下操作:
确定哪一列包含的值可能会重复;
在列选择列表使用COUNT(*)列出的那些列;
在GROUP BY子句中列出的列;
HAVING子句设置重复数大于1。
过滤重复数据: DISTINCT
(1)需要读取不重复的数据可以在 SELECT 语句中使用 DISTINCT 关键字来过滤重复数据。
(2)你也可以使用 GROUP BY 来读取数据表中不重复的数据
删除重复数据
CREATE TABLE tmp SELECT last_name, first_name, sex
FROM person_tbl;
GROUP BY (last_name, first_name);
DROP TABLE person_tbl;
ALTER TABLE tmp RENAME TO person_tbl;
当然你也可以在数据表中添加 INDEX(索引) 和 PRIMAY KEY(主键)这种简单的方法来删除表中的重复记录。方法如下:
ALTER IGNORE TABLE person_tbl
ADD PRIMARY KEY (last_name, first_name);
(国庆之后要去做数据分析相关工作了,心慌所以要努力学习起来!有用请点喜欢哦!)