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
网友评论