码迷,mamicode.com
首页 > 数据库 > 详细

MySQL基础

时间:2015-07-06 21:32:05      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

MySQL基础操作


1.复制表结构+数据
  create table t3 like t1;
  insert into t3 select * from t1;
  desc 查看表结构信息
2.mysql索引
  1)普通索引、唯一索引、主键索引、全文索引
  2)? index
  3)创建索引
    CREATE INDEX index_name ON table_name(column_list);
    CREATE UNIQUE INDEX index_name ON table_name(column_list);
  4)删除索引
    DROP INDEX index_name ON table_name;
  5)通用方法
    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 DROP PRIMARY KEY;删除主键索引前先要删掉自增长
    查看索引 SHOW INDEX FROM table_name;
3.mysql视图
  1)? view
  2)创建视图
    CREATE VIEW view_name AS SELECT * FROM t1;
  3)查看视图
    SHOW TABLES;
  4)删除视图
    DROP VIEW view_name;
4.mysql内置函数
  1)字符串函数
    CONCAT
    LCASE
    UCASE
    LENGTH 字符串长度
    LTRIM
    RTRIM
    REPEAT(string,count) 重复count次
    REPLACE(str, search_str, replace_str) 在str中使用replace_str替换search_str
    SUBSTRING(str, position[,length]) SUBSTR(str, position[,length])
    SPACE(count)生成count个空格
  2)数学函数
    BIN 十进制转二进制
    CEILING(number)向上取整
    FLOOR(number)
    MAX
    MIN
    RAND() 0-1内的随机值
  3)日期函数
    CURDATE() 当前日期,不包含时分秒
    CURTIME() 当前时间,不包含年月日
    NOW() 当前的日期和时间
    UNIX_TIMESTAMP(date)date的时间戳
    WEEK(date)date为一年中的第几周
    YEAR(date)date的年份
    DATEDIFF(date1,date2)相差多少天
5.mysql预处理语句
  设置预处理语句:PREPARE stmt1 FROM ‘SELECT * FROM t1 WHERE id>?‘;
  设置一个变量: SET @i=1;
  执行预处理语句:EXECUTE stmt1 using @i;
  SET @i=5;
  EXECUTE stmt1 using @i;
  删除预处理:DROP PREPARE stmt1;
6.mysql事务处理
  1)关闭自动提交功能
    SET AUTOCOMMIT=0;
    select @@autocommit; 查看它的值
  2)从表中删除一条记录
    DELETE FROM t1 where id=1;
  3)做一个还原点
    SAVEPOINT p1;
  4)再次从表中删除一条记录
    DELETE FROM t1 where id=2;
  5)再次做一个还原点
    SAVEPOINT p2;
  6)此时恢复到p1还原点,当然P2还原点会失效
    ROLLBACK TO p1;
  7)退回到最原始的还原点
    ROLLBACK;
  8)SHOW CREATE TABLE t1;查看t1表的创建语法,myisam不支持事务回滚
  9)提交操作,commit;提交之后不能再回滚。
7.mysql存储
  1)? procedure
  2)创建存储
    CREATE PROCEDURE p1()
    BEGIN
      set @i=1;
      while @i<=100 do
        insert into t1(name) values(concat(‘user‘, @i));
        set @i=@i+1;
      end while;
    END//
  存储中也要用到分号,有可能写的时候mysql认为是要结束,所以要将结束符修改为其他
  语句定界符默认是分号,可以使用 \d // 修改定界符为// 再使用\d ;恢复
  3)查看存储 SHOW PROCEDURE STATUS\G;查看存储的具体信息 SHOW CREATE PROCEDURE p1;
  4)执行存储 call p1();
8.触发器
  ...
9.重排auto_increment
  TRUNCATE TABLE table_name;或者清空表内容后ALTER TABLE table_name AUTO_INCREMENT=1;

MySQL基础

标签:

原文地址:http://www.cnblogs.com/houwentoa/p/4625408.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!