数据挖掘-mysql

2019-03-21  本文已影响0人  紫弟

mysql的常用命令

库的操作

创建数据库:

create database newsdb;

删除数据库:

drop database newsdb;

表的操作

创建一张表:

create table `news` (
       `id` bigint(20) unsigned NOT NULL auto_increment,
       `title` varchar(100) NOT NULL,
       `username` varchar(20) NOT NULL,
       `content` text,
       `submitTime` datetime default NULL,
       `viewCount` int(10) unsigned default NULL,
       `catalogs` varchar(20) default NULL,
       `attachment` varchar(100) default NULL,
   PRIMARY KEY  (`id`));

改变表列的格式

alter table news modify id integer not null, change title varchar(200);

查看表的样式

desc news;

删除表:

drop table news;

数据的操作,增删改查

增加数据

 insert into `news` (`id`,`title`,`username`,`content`,`submittime`,`viewcount`,`catalogs`,`attachment`)
    values (1,'新闻标题','张三','新闻内容','2009-12-14 00:00:00',1,'5','null');

删除数据

delete from news where id=1;

改数据

update table news set title = “新的标题” ;

查数据

单表查询

select*from 表名 [where 条件];

eg:select*from students;//查询 students 表中所有记录,所有字段的值都显示出来

select field1,field2,...fieldn... from 表名 [where 条件];

eg:select id,name,age from students;//查询 students 表中所有记录, 只显示出 id,name,age三个字段的值




去重
select distinct 字段 from 表名;

eg: select distinct name from students;//查询名字不相同的学生;
  select distinct name,age from students;//查询名字和年龄同时不同的学生
  
  1.distinct必须放在最开头
  2.distinct只能使用需要去重的字段进行操作。  ----也就是说我sidtinct了name,age两个字段,我后面想根据id进行排序,是不可以的,因为只能name,age两个字段进行操作.
  3.distinct去重多个字段时,含义是:几个字段 同时重复 时才会被 过滤。




where的使用方式
select 字段 from 表名 where 条件;

eg:select * from student where sex='男' and age>20; //查询性别是男,并且年龄大于20岁的人。

where后面的条件可以用>、<、>=、<=、!=等多种比较运算符,多个条件之间可以用or、and等逻辑运算符




排序和限制
select * from 表名 [where 条件] [ order by  field1 [desc/asc],field2 [desc/asc]... ] limit 5;

eg:select *from student order by age desc limit 5;//查询学生表并按年龄降序排列。

1.desc 降序排列,asc 升序排列
2.order by 后面可以跟多个不同的排序字段,每个排序字段都可以有不同的排序顺序。
3.如果排序字段的值一样,则相同的字段按照第二个排序字段进行排序。
4.如果只有一个排序字段,则字段相同的记录将会无序排列。





select 字段 fun_name from 表名 [where 条件] [group by field1,field2...] [with rollup] [having 条件];

eg:

1.fun_name 表示要做的聚合操作,也就是说聚合函数,常用的有 : sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。
2.group by关键字 表示要进行分类聚合的字段。比如要按照部门分类统计员工数量,部门就应该写在group by 后面。
3.having 关键字表示对分类后的结果再进行条件过滤。

多表查询

内连接:匹配两张表匹配到的东西
select staff.name,deptname from staff left join deptno on staff.name=deptno.name;
外连接:会以左表为标准,匹配不到,左表也会留下
select staff.name,deptname from staff left join deptno on staff.name=deptno.name;

视图操作

是一张虚拟表,依赖查询结果,查询表的数据改变,视图数据改变

create view data as select....

事务操作

事务属性:
原子性(A):事务是最小单位,不可再分
一致性(C):事务要求所有的DML语句操作的时候,必须保证同时成功或者同时失败
隔离性(I):事务A和事务B之间具有隔离性
持久性(D):是事务的保证,事务终结的标志(内存的数据持久到硬盘文件中)

开启事务:Start Transaction
事务结束:End Transaction
提交事务:Commit Transaction
回滚事务:Rollback Transaction

上一篇 下一篇

猜你喜欢

热点阅读