利用OS x系统终端操作MySQL

打开:/usr/local/mysql/bin/mysql -u root -p
键入密码:***666

概览
1 基于数据库的操作
2 基于表的操作
2.1 对字段(列)的操作
2.2 对数据(行)的操作
2.3 表连接(横向)
2.4 表连接(纵向)
2.5 数据导入导出

1 基于数据库的操作

创建数据库:create database mydatabase;
显示数据库:show database;
更改数据库中的字符集:alter database mydatabase charset GBK ;
使用某一个数据库:use mydatabase;
显示该数据库中的表:show tables;

2 基于表的操作

创建表:
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
….
)

create table tb1 (
name varchar(10) ,
gender varchar(10)
);

检查表的创建是否成功:show tables;

这里写图片描述

ps:在->之后用分号结束当前命令
这里写图片描述

修改表名:rename table tb1 to tb2;
查看表中字段的信息:desc tb2;

2.1 对字段(列)的操作:

随时检查表的状态的一行语句: select * from 表名;

【增】–给学生表增加ID放到第一个位置
alter table 表名 add 字段名 数据类型[位置];
alter table my_student add id int first;
ps:表示位置有两种方式,方式1是用first,如果不是在第一列,那么就用after [其他列名字]。

【改数据类型】—将学生表中的number学号字段变成固定长度,且放到第二位。
alter table 表名 modify 字段名 数据类型 [位置];
eg:alter table my_student modify number char(10) after id;

【改列名字】—修改学生表中的gender字段为sex alter table 表名 change 旧字段名 新字段名 数据类型 ; alter table my_student change gender sex varchar(10);

【删】—删除学生表中的字段age
alter table 表名 drop 字段名;

2.2 对数据(行)的操作:

【增】
方式1: 增加完整一行记录
insert into table 表名 values(数据1,数据2,数据3);

方式2:增加多行记录
insert into tb2 values(‘002’,’01’,’lesley’,52),(‘003’,’03’,’daffy’,60);

方式3: 针对某些列来增加数据
insert into 表名(字段1,字段2) values(数据1,数据2);

这里写图片描述

【删】
delete from 表名 where 字段=’数据’;
delete from tb2 where name=’lesley’;

【改】
update 表名 set 字段 = 值[where 条件];
e.g. update tb2 set class=’02’ where name=’anita’;

【查】其实就是显示

select * from 表名;

1)常规查找方式
select *
from 表名
[where 条件];

2)带条件的查找
e.g. 带条件的查找
select * from tb2 where id in (‘001’,’003’);
这里写图片描述

3)多条件and / or的查找
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
这里写图片描述

4)按组,带描述性统计的查找
注意:分组是为了统计数据,按分组字段进行数据统计;使用group by却不使用统计函数,没意义,查找无效!
select age,count(*),max(weight),avg(weight),sum(weight) from tb2 group by age;
按age这一字段,进行描述性统计。
这里写图片描述

这里写图片描述

5)按降序查找
注意:默认是升序,后面加了desc才是降序
select * from tb2 order by weight desc;
这里写图片描述

2.3 表连接(横向):

原始表格
这里写图片描述

  1. 内连接 join
    ps: innner join和join是一样的
    原理:内联合(inner join)只生成同时匹配表A和表B的记录集。
    这里写图片描述

代码示例:

select persons.lastname,persons.firstname,orders.orderno from persons,orders
where persons.Id_P=orders.Id_P;

这里写图片描述

2.左连接 left outer join
原理:左外联合(left outer join)生成表A的所有记录,包括在表B里匹配的记录。如果没有匹配的,右边将是null。
这里写图片描述

代码示例:

select persons.lastname,persons.firstname,orders.orderno 
from persons
left join orders
on persons.Id_P=orders.Id_P
order by persons.lastname;

这里写图片描述

3.左外连接
原理:为了生成只在表A里而不在表B里的记录集,我们用同样的左外联合,然后用where语句排除我们不想要的记录。
技巧:where后面跟的表B的变量就是连接变量。

这里写图片描述

代码示例:

select *
from orders
left join persons
on orders.Id_P=persons.Id_P
where persons.Id_P is null;

这里写图片描述

4.全外连接I
全外联合(full outer join)生成表A和表B里的记录全集,包括两边都匹配的记录。如果有一边没有匹配的,缺失的这一边为null。

这里写图片描述

代码示例:

select persons.lastname, persons.firstname,orders.orderno
from persons  
full join orders
on persons.Id_P=orders.Id_P
order by persons.lastname;

这里写图片描述

5.全外连接II
原理:为了生成对于表A和表B唯一的记录集,我们用同样的全外联合,然后用where语句排除两边都不想要的记录。

这里写图片描述

代码示例:

select *
from orders
full join persons
on orders.Id_P=persons.Id_P
where persons.Id_P is null or orders.Id_P is null;
2.4 表连接(纵向):

union操作符用于合并两个或多个select语句的结果集。 请注意,union内部的select语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条select语句中的列的顺序必须相同。

ps1: 默认地,union操作符选取不同的值。如果允许重复的值,请使用 union all。
ps2: union结果集中的列名总是等于union中第一个select语句中的列名。

代码:

select Id_P from persons
union
select Id_P from orders;

这里写图片描述

select Id_P from persons
union all
select Id_P from orders;

这里写图片描述

2.5 数据导入导出:

1)excel数据

2)txt文本

3)与python的连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值