1 基本操作
1.1 登陆与退出
// 登录
mysql -u root -p
// 退出
exit
1.2 创建数据库
// 登陆MySQL中操作
create database 数据库名;
// 不需登录操作
mysqladmin -u root -p crate 数据库名
1.3 删除数据库
drop database 数据库名;
// 不登陆MySQL操作
mysqladmin -u root -p drop 数据库名
1.4 选择数据库
use 数据库名;
1.5 查看数据库与数据表
// 列出所有数据库
show databases;
// 列出数据库中的所有数据表
show tables;
// 显示数据表的属性
show columns from 数据表名;
// 显示数据表的详细索引信息
show index from 数据表名;
// 显示数据库中所有表的信息
show table status from 数据库名;
1.6 创建数据表
create table 数据表名 (列名 列的数据类型);
示例:
create table if not exists 'my_tb1'(
id int unsigned auto_increment,
title varchar(100) not null,
author varchar(40) not null,
date DATE,
primary key (id)
)engine=InnoDB default charset=utf8;
解析:
- not null 设置字段不为空
- auto_increment 表示列为自增,一般用于主键,数值自动加1
- primary key 用于定义列为主键
- engine 设置存储引擎,charset 设置编码
1.7 删除数据表
drop table 表名;
2 增删改查
2.1 插入数据
insert into 表名 (列1,列2,列3....列n)values (值1,值2....值n);
示例:
// 方式一
mysql> insert into tb1
-> (title,author,date)
-> values('学习mysql','lihaogn',NOW());
Query OK, 1 row affected, 1 warning (0.03 sec)
// 方式二
insert into tb1 set title='学习scala',author='wanger';
// 方式三:不写列名,直接写values,但是要和列一致
insert into tb1 values(4,'学习python','caliu',NOW());
// 方式四:一次插入多条数据
insert into tb1 (title,author,date) values('学习spark','wusan',NOW()),('学习hadoop','gaowu',NOW());
结果:
mysql> select * from tb1;
+----+--------------+----------+------------+
| id | title | author | date |
+----+--------------+----------+------------+
| 1 | 学习mysql | lihaogn | 2018-07-13 |
| 2 | 学习java | zhangsan | 2018-06-30 |
| 3 | 学习scala | wanger | NULL |
| 4 | 学习python | caliu | 2018-08-29 |
| 5 | 学习spark | wusan | 2018-08-29 |
| 6 | 学习hadoop | gaowu | 2018-08-29 |
+----+--------------+----------+------------+
6 rows in set (0.00 sec)
2.2 查询数据
select 列名 from 表名 [where ...][limit n][offset n];
解析:
- 可以查询多个表,表名之间用逗号分隔
- select可以读取一条或多条数据
- where来指定条件
- limit来设定返回的记录数
- offset指定开始查询的数据偏移量,默认为0
1)条件查询
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
示例:
mysql> select * from tb1;
+----+-------------+----------+------------+
| id | title | author | date |
+----+-------------+----------+------------+
| 1 | 学习mysql | lihaogn | 2018-07-13 |
| 2 | 学习java | zhangsan | 2018-06-30 |
+----+-------------+----------+------------+
2 rows in set (0.00 sec)
mysql> select title,author from tb1 where date=
-> '2018-7-13';
+-------------+---------+
| title | author |
+-------------+---------+
| 学习mysql | lihaogn |
+-------------+---------+
1 row in set (0.00 sec)
2.3 更改数据
update 表名 set 列1=新值,列2=新值...,列n=新值 [where ...];
示例:
mysql> select * from tb1;
+----+-------------+----------+------------+
| id | title | author | date |
+----+-------------+----------+------------+
| 1 | 学习mysql | lihaogn | 2018-07-13 |
| 2 | 学习java | zhangsan | 2018-06-30 |
| 3 | 学习linux | wangwu | 2018-05-06 |
+----+-------------+----------+------------+
3 rows in set (0.00 sec)
mysql> update tb1 set title='学习python' where id=3;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from tb1;
+----+--------------+----------+------------+
| id | title | author | date |
+----+--------------+----------+------------+
| 1 | 学习mysql | lihaogn | 2018-07-13 |
| 2 | 学习java | zhangsan | 2018-06-30 |
| 3 | 学习python | wangwu | 2018-05-06 |
+----+--------------+----------+------------+
3 rows in set (0.00 sec)
2.4 删除数据
delete from 表名 [where ...];
示例:
mysql> delete from tb1 where title='学习python';
Query OK, 1 row affected (0.00 sec)
mysql> select * from tb1;
+----+-------------+----------+------------+
| id | title | author | date |
+----+-------------+----------+------------+
| 1 | 学习mysql | lihaogn | 2018-07-13 |
| 2 | 学习java | zhangsan | 2018-06-30 |
+----+-------------+----------+------------+
2 rows in set (0.00 sec)