|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
mysql基本命令介绍
采集的数据量小的时候,你可以用文档的形式来存储,一旦数据量大了,就需要利用到一些数据库进行存储。所以掌握一种数据库是必须的,学习目前比较主流的 MongoDB,Redis 就OK(MySql可以了解)。
1,启动服务:
已管理员身份运行cmd
格式:net start 服务名称
示例:net start mysql
2,停止服务:
已管理员身份运行cmd
格式:stop start 服务名称
示例:NET NETstop mysql
3,链接数据库:
格式:mysql -u 用户名 -p
示例:mysql -u root -p
输入密码:
提示:Welcome to the MySQL monitor即成功
4,断开链接:
示例:quit或者exit
5,查看版本号:
示例:select version();
6,显示当前时间:
示例:select now();
7,远程链接
格式:mysql -h ip地址 -u 用户名 -p
输入对方的myslq
二,数据库操作
1,创建数据库
格式:create database 数据库名 charset=utf8;
示例:create database stubbron charset=utf8;
2,删除数据库
格式:drop database 数据库名;
示例:drop database stubbron;
3,切换数据库
格式:use 数据库名;
示例:use stubbron;
4,查看当前选择的数据库
格式:select database();
5,查看当前数据库:
格式:show database
三,表操作
1,查看当前数据库中所有表
show tables;
2,创建表
格式:create table 表名(列及类型);
说明:auto_increment 表示自增长
primary key 表示主键
not null 表示不为空
示例:create table student(id int auto_increment primary key,name varchar(20) not null,age int not null,gender bit default 1,address varchar(20),isDelete bit default 0);
3,删除表(数据不存在)
格式:drop table 表名;
示例:drop table student;
4,查看表结构:
格式:desc 表名
示例:desc student
5,查看建表语句:
格式:show create table 表名;
格式:show create table student;
6,重命名表
格式:rename table 原表名 to 新表名;
示例:rename table student to newCar;
7,修改表
格式:alter table 表名 add|change|drop 列名 类型
示例:alter table car add isDelete bit defaul 0;
四,数据操作
1,增
a,全列插入:插入一条数据
格式:insert into 表名 values(...)
说明:主键列是自动增长,但是在全列插入时,需要占位,通常使用0,插入成功后以实际数据为准
示例:insert into newcar values(0,"tom",19,1,"北京",0);
b,缺省插入
格式:insert into 表名(列1,列2,..) values(值1,值二,...)
示例:insert into newcar(name,age,address) values("Ein",19,"上海");
c,同时插入多条数据
格式:insert into 表名 values(..),(...)
示例:insert into newcar values(0,"西大大",19,1,"北京",0),(0,"西大",19,1,"北京",0),(0,"西大e",19,1,"北京",0);
2,删
格式:delete from 表名 where 表达式
示例:delete from newcar where id=1;
#没有条件会全部删除,慎用,删除建议逻辑删除,即修改
3,改表数据
格式:update 表名 set 字段=新值,… where 条件
示例:update newcar set name='Mary' where id=1;
#没有条件会全部全段修改,慎用
4,查
说明:查询表中的全部数据
格式:select * from 表名
示例:select * from newcar;
五,查
1,基本语法
格式:select * from 表名
说明:from关键字,后面是表名,标示数据来源于这张表
select后面写表中的列名,如果是*号,表示在结果集中现实和列表中的所有列
在select后面的列名部分,可以使用as为列名起别名,这个别名显示在结果集中
如果要查询多个列,之间使用逗号分隔
示例: select name,age from newcar; 表示结果集中只有name,age两列
select * from newcar; 表示所有列
select name as a,age from newcar; as表示列的别名
2,消除重复行
在select后面列前使用distinct可以消除重复行
示例:select 列名 form 表名
select distinct address from newcar;
3,条件查询
a,语法
select * from 表名 where 条件
b,比较运行符【=,>,<,<=,>=,!=或者<>】
查询ID值大于2的数据:
示例:select * from newcar where id>2;
c,逻辑运算符【and,or,not】
需求:查询ID值不为2的数据
select * from newcar where not id=2;
d,模糊查询
like
%表示任意多个任意字符
_表示一个任意字符
需求:查询姓习的同学(即name列)
示例:select * from newcar where name like "西%"; #匹配西开头的数据
select * from newcar where name like "西_"; #匹配西后面一个,多加一个下滑线可以比配多一个字
e,范围查询
in 表示在一个非连续的范围内
between...and... 表示在以以连续的范围内
需求:查询ID为3,5,7的数据
实例:select * from newcar where id in (3,5,7);
需求:查询ID为3-7的数据
实例:select * from newcar where id between 3 and 7;
f,空判断
注意:null与""是不一样的
判断空:is null
判断非空:is not null
需求:判断某列关键字段不是空
实例:select * from newcar where address is not null;
g,优先级
小括号,not,比较运算符,逻辑运算符
and>or 同时出现,希望先选or,需要用括号
4,聚合
为了快速得到统计的数据,提供了5个集合函数
a,count(*) 表示计算总行数,括号中的*可以写列名
b,max(字段) 表示求此列的最大值
c,min(字段) 表示求此列的最小值
d,sun(字段) 表示求此列的和
e,avg(字段) 表示求此列的平均值
需求:求数据有多少条
实例:select count(*) from newcar;
查询:字段gender=0的id最大值
示例:select max(id) from newcar where gender=0;
查询:字段gender=0的id最小值
示例:select min(id) from newcar where gender=0;
查询:字段gender=0的age的和
示例:select sum(age) from newcar where gender=0;
查询:字段gender=0的age的平均值
示例:select avg(age) from newcar where gender=0;
5,分组
按照字段分组,表示此字段i相同的数据会被放到一个集合中。
分组后,只能查询出相同的数据列,队友有差异的数据列,无法显示在集合中
可以对分组 后的数据进行统计,进行聚合运算
语法:select 字段1,字段2,...聚合.... from 表名 group by 字段1,字段2;
查询:字段的两种数据的总数(比如把表里面男女进行分组)
示例:select address,count(*) from newcar group by address;
分组后的数据筛选:select 字段1,字段2,...聚合.... from 表名 group by 字段1,字段2, having 字段1,字段2,...聚合....
示例:select address,count(*) from newcar group by address having address=0;
where与having的区别
where是对from后面指定的表进行筛选,属于对原始数据的筛选
having是对group by 的结果进行筛选,属于对结果集的数据筛选
6,排序
语法:select * from 表名 order by 字段1 asc|desc,字段2 asc|desc,....
说明:
a,将数据按照字段1进行排序,如果某些字段1的值相同,就按照字段2排序,,,
b,默认从小到大排序
c,asc降序
d,desc升序
需求:将isdelete为0的数据按照age排序(降序)
示例:select * from newcar where isDelete=0 order by age sac;
将isdelete为0的数据按照age排序(降序)age相同按照id排序
示例:select * from newcar where isDelete=0 order by age asc,id asc;
7,分页
语法:select * from 表名 limit 开始位置,分页条数;
示例:select * from newcar limit 0,3;
需求查看字段某个数据的条数分页
select * from newcar where gender = 1 limit 0,3;
六,关联
比如一个班级有多个学生
现在有两个表:班级表(甲乙丙)--以及班级每个学生表()
建表语句:1创建班级表
1,create table class(id int auto_increment primary key,name varchar(20) not null,stuNUM int not null);
1,create table student(id int auto_increment primary key,name varchar(20) not null,gender bit default 1,classid int not null,foreign key(classid) references class(id) );
插入一些数据:
insert into class values(0,"python01",55),(0,"python02",45),(0,"python03",50),(0,"python04",66),(0,"python05",75);
insert into student values(0,"tom",1,1); #末尾的一是关联的外键
关联查询:
select student.name,class.name from class inner join student on class.id=student.classid;
分类:
1,表A inner join 表B
表A 与 表B匹配的行会出现在结果集中
2,表A left join 表B
表A 与 表B匹配的行会出现在结果集中,外加表A独有的数据,未对用的数据使用null填充
3,表A left join 表B
表A 与 表B匹配的行会出现在结果集中,外加表B独有的数据,未对用的数据使用null填充
对pysql的简单封装复用
|
评分
-
查看全部评分
|