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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值