mysql常用函数及作用是什么_mysql常用函数及应用

MYSQL 命令:

mysql -h主机地址 -u用户名 -p密码 连接MYSQL;如果刚安装好MYSQL,超级用户root是没有密码的。

(例:mysql -h110.110.110.110 -Uroot -P123456 注:u与root可以不用加空格,其它也一样)

mysqladmin -u用户名 -p旧密码 password 新密码 修改密码

grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"; 增加新用户。(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)

show databases; 显示数据库列表。刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。

use mysql;

mysqldump --opt school>school.bbb 备份数据库:(命令在DOS的

\\mysql\\bin目录下执行);注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。

create database DATABASE_NAME;    //建库

create table TABLE_NAME (FIELD设定列表); //建表

use DATABASE_NAME       //使用数据库

show tables         //显示库中的数据表

describe TABLE_NAME       //显示数据表的结构

desc TABLE_NAME        //显示数据表的结构

truncate TABLE_NAME       //将表中记录清空,并初始化主键id

exit           //退出MYSQL

now()          //当前时间

FIELD regexp '正则'       //正则匹配

length(FIELD)        //查看某字段的长度

concat(FIELD1,FIELD2)      //连接字符串(字符串相加)

substr (FIELD,start,length)     //截取字符串,从0开始的n位

adddate('日期',n);        //算n天之后的日期

datediff('日期','到达的日期')    //两个日期的时间差

curdate();         //只得到当前的日期

unix_timestamp()       //1970-1-1到至今的时间差

curtime()         //格式化当前时间

数学函数

max(FIELD)         //最大值

min(FIELD)         //最小值

avg(FIELD)         //平均数

modmod(除数,被除数)       //求模

div 除数\被除数        //整除输出(没有四舍五入)

ceil(小数)         //取整

round(小数)         //四舍五入取整

floor(小数)         //取整(不四舍五入)

sin (除数/被除数)       //除后取整()

cos(pi())         //输出圆周率

conv(NUMBER)        //专程二进制输出

pow(数字1,-数字2)       //数字1个数字2次方

rand(给一个种子(一个数))     //生成随机数

exp(数字)         //e的n次方

sign(数字)         //如过是整数 =1 是负数 =-1

truncate(小数)        //截断小数的多少位

group_concat(expr)   //不知道怎么用

||(or)或  &&(and)与  <=>全等于  =等于   |和  in  <>向又移两位 true(真)  false(假)  null(空)

update TABLE_NAME set FIELD=VALUE,FIELD=VALUE... where FIELD=VALUE  //修改表中的数据

update TABLE_NAME set FIELD=(FIELD2+FIELD3)/2*0.8     //msql中的数据可以进计算

update TABLE_NAME set FIELD=concat(FIELD,FIELD)      //mysl中连接字符串

select * from TABLE_NAME            //显示表中的记录

select * from TABLE_NAME limit 10,10        //从第十条开始向后查十条数据

select * from TABLE_NAME where FIELD like '%VALUE%'     //模糊查询(有可能是多条数据)

select * from TABLE_NAME where FIELD like '___'      // 查询FIELD为三个字的所有数据

select * from TABLE_NAME order by id desc        //根据id倒序输出

select * from TABLE_NAME order by id        //根据id正序输出

select * from TABLE_NAME order by id desc limit 10,10    //先倒序再从第十条开始向后查十条数据

select * from TABLE_NAME group by FIELD(FIELD)      //不显示重复数据

select distinct FIELD FROM TABLE_NAME;        //查看FIELD中没有重复的数据

select * from TABLE_NAME where FIELD in (v1,v2,v3,...)    //查看表中某FIELD值为v1,v2,v3,... 的数据

select * from TABLE_NAME where length(FIELD) > 40;     //查看表中某FIELD长度大于40的所有数据

select count(*) from TABLE_NAME     //查看数据总条数

select avg(FIELD) from TABLE_NAME    //查看某FIELD的平均值

select sum(FIELD) from TABLE_NAME    //查看某FIELD的和

select * from TABLE_NAME where id=(selece id from TABLE_NAME where=username)      //子查询

select FIELD from 表1 join 表2                   //联合查询(1)

select FIELD from table1 alias1 join table2 alias2 on table1.关联FIELD=table2.关联FIELD where 条件 //联合查询(2)

delete from TABLE_NAME             //将表中记录清空

join on   内连接,两个表必须有数据

inner join on 内连接,两个表必须有数据

left join on 左连接,左表为主表,左表必须有数所

right join on 右连接,右表为主表,右表必须有数据

alter table TABLE_NAME drop column COLUMN_NAME  //删除一列信息

alter table TABLE_NAME add FIELD      //给表添加一个FIELD

alter table TABLE_NAME drop column COLUMN_NAME  //删除一列信息

rename table TABLE_NAME to newTable     //更改表名

drop table 表名1,表名2,表名3      //删除表

drop trigger TRIGGER_NAME       //删除某个触发器

drop database DATABASE_NAME       //删除数据库

----------------------------------------------------------------------------------------------------------------------------

触发器

定义:触发器(trigger)是个特殊的存储过程,它的执行是由事件来触发执行的。

触发时间(new 更新前,old 更新后)

触发事件(update,insert,delete)

DELIMITER |

CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name

FOR EACH ROW [begin]

[if new.order_status=0 then]

insert into table2 set table1Column=new.table,table1Column=new.table;

update table1 set table1Column=new.table,table1Column=new.table  where table1=;

[end if;]

end

|

----------------------------------------------------------------------------------------------------------------------------

mysql 中的事务

对 insert update delete 语句起作用

表引擎工设置为是 InnoDB

特点

1.原子性 (本么全做,要么不做)

2.一致性 (定单和商品信息同时存在)

3.隔离性 (多个事务可以同时存在逐个执行)

4.持久性 (即使服务器死机,数据也是完整的)

mysql_query('start transaction');  :开启事务

mysql_query(begin);      :开启事务(是 start transaction的别名)

mysql_query('set autocommit=0/1');  :防止自动提交(可以不写,开启事务就是不能自动提交) 0不自动提交 1自动提交

mysql_query('commit');     :提交事务

mysql_query('rollback');    :回滚事务

//直接操作数据库(注意:把这些语句全部写完在执行)

start transaction;         //开启事条 也可以用begin

select @a:=avg(age) from tb_user;

//@a: 是在mysql中定义变量

select @b:=max(age) from tb_user;

update tb_user

age=@a wher

age=@b;

//@a 调用变量

commit;            //提交事务

----------------------------------------------------------------------------------------------------------------------------

存储过成:

create procedure 存储过程名字(in、out、inout) :创建存储过程

begin

mysql语句

end$$

call 存储过程名();    :调用存储过程 source 路径 定义 set @变量名=值 循环(repeat)  else(可以有) endrepeat(结束循环) tee --------------------------------------------------------------------------------------------------------------------------- 备份: mysqldump 数据库 > 路径\表名 -uroot -p 恢复:先把原来的表删掉 source 备份路径\文件名 在dow中恢复数据:盘符\wamp\mysql\bin> mysqldump --databases 数据库名>  路径\文件名 -u root 在dos中恢复数据:盘符\wamp\mysql\bin> mysqldump mysql test< c:\wamp\数据库名 -uroot -p --port=3306

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值