首页 > 技术文章 > mysql简单的操作

jingdenghuakai 2019-09-06 21:17 原文

启动数据库服务     net start mysql    
停止数据库服务     net stop mysql    
 退出数据库      exit    
保存操作及结果 将在命令行窗口中的操作及结果保存到电脑的指定路径中   tee 路径    
库的操作 进入mysql的命令   mysql -h(IP)地址-u用户名 -p密码
如果是本机登录,可省去-u参数

 

 

 
查看所由库名   show databases;    
创建数据库  

create database 库名 [charset 字符集];

中括号中的内容是可选项,用来设置字符集

数据库的名字一经创建就不能进行修改

 
删除数据库   drop database 库名;  
选择数据库   use  库名;  
       表的操作              查看所有表   show tables;    
 创建表    create table 表名 (字段名1 字段1类型,字段名2(字节个数),字段2类型.......);    
删除表   drop table 表名;    
修改表结构 在表的最后面增加一列 alter table 表名 add 列名称 列类型  列参数 列声明; alter table person add sex varchar(1) not null;  
在指定列后面增加一列 alter table 表名 add 列名称 列类型  列参数 列声明  after 列名; alter table person add money varchar(1) not null after name;  
增加一个新的类放置表的第一位 alter table 表名 add 列名称 列类型  列参数 列声明 first; alter table personal add pid int first;  
删除某一列 alter table 表名 drop 列名;  alter table personal drop pid;  
修改某一列的参数,不能修改列的名称 alter table 表名 modify 列名 新类型 新参数;    
修改列名及类类型、参数 alter table 表名 change 旧列名 新列名 新类型 新参数;    
表重命名   rename table 旧的表名 to 新的表名;  rename table person to personal;  
清空表中的数据   truncate 表名;

truncate相当于删除了一张表,又新建了一张一模一样的新表

delete加where查询条件是删除满足条件的一条记录

delete不加where查询条件是删除一张表

 
 查看表的结构    describe 表名;

 
查看表中所有的记录   select * from 表名;  
输出操作日志即查询结果   tee 指定文件路径;    
 插入一条记录 insert into 表名 (字段名1,字段名2) values (值1,值2);

 
删除单条数据

delete from 表名 where 查询条件;

删除就是删除一行数据,如果是删除一行中的某几个字段而不是一整行则是修改

 
删除整张表 delete from 表名; 例:delete from test1  
 改一行中的某个字段

update 表名 set 字段名称=值 where 条件 ;

如果查询条件为真,则表中对应列的所有数据均进行更改,如:update student set sex=‘男’ where 1;

如:update student set sex=‘男’ where 2>1;

 
查   查整张表 select * from 表名;  
查询单列 select 列名 from 表名;  
升序查询 select * from 表名 order by 条件 [asc]; 例:select * from test order by id;  注:asc为默认顺序,可以不写  
降序查询

select * from 表名 order by 条件 desc;

对最终结果集进行排序

多字段的排序方式为order by 字段1 排序方式,字段2 排序方式,字段3 排序方式;(其中字段1的优先级最高)

例:select * from test order by id desc;  
模糊查询 select * from test  where name like '张%’; 查询test表中名字中“张”字开头的人员  
select * from test where name like '%浩‘; 查询test表中名字结尾中带“浩”字的人员  
select * from test where name like '%吉%‘; 查询test表中名字中间带“吉”字的人员  

select * from test where name like ‘张_’;

%匹配任意字符,_匹配单个字符

查询test表中名字开头为“张”的人员  
where条件查询 select * from test where 条件; 例:select * from test where id=3;    

比较运算符为:

< 小于

<=小于等于

= 等于

>大于

>=大于等于

!=或者<>  不等于

in在集合中

between and 在某个区间

.

select * from person where id<3;

select * from person where id<=3;

select * from person where id=3;

select * from person where id>3;

select * from person where id>=3;

select * from person where id!=3;

select * from person where id in(3,6,7);

select * from person where  id between 3 and 9;

 

逻辑运算符:

NOT  或者  !逻辑非

OR  或者 ||  逻辑或

AND 或者 && 逻辑与

and的优先级比or高

 

select * from person where sex not '女';

select * from person where  sex=‘女’ or id=3;

select * from person where  sex='女' and cardname='建设银行卡'

 
 分组查询 select * from test group by 分组条件;    
 

统计函数

avg求平均值

max求最大值

min求最小值

count求多少行

sum求和

用select count(*) from 表名;进行查询,是查询这张表中所有的行数,包括所有字段都为null的行

用select count(列名) from 表名;来进行查询,是查询这个字段中不为null的行数

在mysql中用count(*)和count(1)来进行查询是没有区别的,因为mysql引擎中有一个计数器

 
 

having和group by 配合使用

select 列名 from 表名 group by 条件 having 条件;

having是对group by 分组之后的结果进行的筛选

where语句在group by语句之前,SQL会在分组之前计算where语句

having语句在group by语句之后,SQL会在分组之后计算where语句

 
     起别名  select 旧列名 as 新列名 from 表名 查询条件     
     limit限制条数查询

  limit(跳过的行数,实际取的行数)

如果跳过的行数为0,则可以不写

 如查询person表中的第3行到第5行    select * from person limit(2,3); 

如查询person表中money最多的一天数据  select * from person order by monkey desc limit 1; 

 
           
           
           
           
           
           
           

推荐阅读