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