第一章、mysql基本操作

1.1 mysql表复制
    create table t2 like t1;
    insert into t2 select * from t1;

1.2 mysql 索引
     1、ALTER TABEL 用来创建普通索引,UNIQUE索引或者PRIMARY KEY索引
        ALTER TABLE table_name ADD INDEX index_name(column_list)
        ALTER TABLE table_name ADD UNIQUE index_name(column_list)
        ALTER TABLE table_name ADD PRIMARY KEY (column_list)
        ALTER TABLE table_name DROP INDEX index_name
        ALTER TABLE table_name t1 modufy id 
        ALTER TABLE table _name MODIFY id int unsigned not null auto_increment;
    2.CREATE INDEX index_name ON table_name(column_list)
        CREATE INDEX index_name ON table_name(column_list)
        CREATE UNIQUE INDEX index_name ON table_name(column_list)
    3.drop index
        DROP INDEX index_name ON table_name
    4.alter table table_name drop
        ALTER TABLE table_name DROP INDEX index_name
        ALTER TABLE table_name DROP PRIMARY KEY (先去掉自增ALTER TABLE table _name MODIFY id int unsigned not null )

1.3 mysql 视图
    创建视图
    create view v_t1 as select *  from t1 where id > 4 and id < 11;
    drop view v_t1;

1.4 mysql 内置函数
    1.CONCAT(string2 [, ...])//连接字符串
        select concat ("hello ", "word") as myname;
    2.LCASE(string2) //转换成小写
        select lcase("MYSQL");
    3.UCASE(string2) //转换成大写
         select ucase("mysql");
    4.LENGTH(string2) //取长度
        select length("124566")
    5.LTRIM(string2) // 去除前端空格
        select ltrim(" 124566")
    6.RTRIM(string2) // 去除后端空格
        select ltrim("124566  ")
    7.REPEAT(string2, count) //重复count数
        select repeat("abc", 10);
    8.REPLACE(str, search_str, replace); //替换
        select replace("abc123", "abc", "cba");
    9.SUBSTRING(str, position [,length]) // 从str的position开始去字符串,从一开始
        select substring("abc12345", "5", "5")
    10.SPACE(count) //生成多少个空格
        select space(10);
    数学函数
    1.BIN(decimal_number) //十进制转二进制
        select bin(192);
    2.CEILING(number2) //向上取整
        select ceiling(5.4);
    3.FLOOR(number2) //向下取整
        select floor(10.01);
    4.MAX(col);//取最大值,聚合时使用
    5.MIN(col);//取最小值,聚合时使用
    6.SQRT(number) //开平方
    7.RAND();//返回0-1内的随机数字
    日期函数
    1.CURDATE();
    2.CURTIME();
    3.NOW();
    4.UNIX_TIMESTAMP(date);//返回当前date的unix时间戳
    5.FROM_UNIXTIME(1459440000);返回unix时间戳的日期值
    6.WEEK(date);//返回日期date为一年中的第几周
    7.YEAT(date);//返回日期date的年份
    8.DATEDIFF(expr, expr2);//返回起始时间expr和结束时间expr2间天数

1.5 mysql 预处理语句
    设置stmt1预处理,传递一个数据作为一个where判断条件
    >prepare stmt1 from 'select * from t1 where id > ?'
    设置一个变量
    >set @i=1;
    执行stmt1预处理
    >execute stmt1 using @i;
    设置@i为5
    >set @i=5;
    删除预处理
    >drop prepare stmt1;
    优点:不需要每次都去请求mysql

1.6 mysql的事务处理
    关闭自动提交
    mysql>set autocommit=0;
    >show create table t1;
    >alter table t1 engine=innodb;
    从t1表删除
    mysql>delete from t1 where id = 7;
    此时做一个p1还原点
    mysql>savepoint p1;
    再次从表中删除一条数据
    mysql>delete from t1 where id = 6;
    再做一个p1还原点
    mysql>savepoint p2;
    恢复到p1
    mysql>rollback p1;
    退回到最原始的还原点
    mysql>rollback;
    提交
    mysql>commit;

1.7 mysql的存储

    ? procedure;
    mysql>\d //
    mysql>create procedure p1();
    msyql>begin
    msyql>set @i=0;
    msyql>while @i<10 do
    msyql>select @i;
    msyql>set @i=@i+1;
    msyql>end while;
    msyql>end//
    执行存储p1();
    mysql>\d;
    mysql>call p1();
    查看procedures p1() 的status信息
    mysql>show procedure status\G
    查看procedure p1()的具体信息
    mysql>show create procedure p1\G

1.8 mysql触发器
    插入
        修改delimiter为//
        mysql>\d //
        根据一个名字为tg1的触发器,向表t1表中插入数据时,就向t2表中插入一条数据
        mysql>create trigger tg1 before insert on t1 for each row
        mysql>begin
        mysql>insert into t2(name) values(new.name);
        mysql>end//
        mysql>\d ;
        mysql>insert into t1(name) values("user1");
    删除
        mysql>\d //
        根据一个名字为tg1的触发器,向表t1表中删除数据时,就向t2表中删除一条数据
        mysql>create trigger tg1 before delete on t1 for each row
        mysql>begin
        mysql>delete from t2 where name = old.name
        mysql>end//
        mysql>\d ;
        mysql>delete from t1 where name = "user2";
    修改
        mysql>\d //
        根据一个名字为tg1的触发器,向表t1表中修改数据时,就向t2表中修改一条数据
        mysql>create trigger tg1 before update on t1 for each row
        mysql>begin
        mysql>update t2 set name=new.name where name = old.name
        mysql>end//
        mysql>\d ;
        mysql>update t1 set name="username2" where name = "user2";


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值