chapter05_ALTER和字符串函数

  • FIRST关键字可以把新添加的列放在表的最前面,主键一般作为表的第一列

  • ALTER的几种操作

    第二行:添加新列,并把这列置为表的第一列

    第三行:添加主键

    第四行:添加新列,并把这列放在contact_id列的后面(默认是放在最后一列)

    第五行:修改表名

    第六行:改变列的属性

    第七行:改变列的属性和名称

    第八行:卸除主键

    第九行:卸除某一列(同时删除改列的数据)

    示例

      ALTER TABLE my_contacts
      ADD COLUMN contact_id INT(4) NOT NULL AUTO_INCREMENT FIRST,
      ADD PRIMARY KEY (contact_id), 
      ADD COLUMN phone VARCHAR(10) AFTER contact_id,
      RENAME TO bochen_contacts,
      MODIFY COLUMN phone VARCHAR(11),
      CHANGE COLUMN phone phone_number VARCHAR(12),
      DROP PRIMARY KEY,
      DROP COLUMN contact_id;
    
  • ALTER 的各种操作可以写在一条语句里面,不同的改变操作用逗号,连接

  • 使用 MODIFY 和 CHANGE 改变数据类型时,两种数据类型兼容时SQL才会执行;

    有时虽然两种数据类型兼容,但是要考虑数据的截断问题

  • MODIFY和CHANGE的区别

    (1) MODIFY 只能改变列的属性;CHANGE 可以改变列的属性和列的名称

    (2) MODIFY 只需要写一次列名;CHANGE 无论是否想要改变列名,都要写 原列名 现列名

  • 增删改查都是不需要用TABLE关键字的,而ALTER是ALTER TABLE xxx

    增 INSERT INTO xxx (,) VALUES (,);

    删 DELETE FROM xxx WHERE ……;

    改 UPDATE xxx SET … = …, …=… WHERE ……;

    查 SELECT …, … FROM xxx WHERE ……;

  • 有用的字符串函数(部分)

      RIGHT(string, lenth) <--> string.substring(string.length() - length, string.length());
    
      LEFT(string, lenth)  <--> string.substring(0, length);
    
      UPPER(string)        <--> string.toUpperCase();
    
      LOWER(string)        <--> string.toLowerCase();
    
      SUBSTRING_INDEX(string, char, existingIndex)  <--> 找到出现过第existingIndex次的字符char前的所有内容,并返回
    
      SUBSTRING(string, start_index, length) <--> string.substring(start_index, start_index + length);
    
      REVERSE(string)      <--> 反转字符串
    
      LTRIM(string)        <--> 去掉左侧的空白字符
    
      RTRIM(string)        <--> 去掉右侧的空白字符
    
      LENGTH(string)       <--> string.length();
    

    SUBSTRING INDEX是比较独特的java没有内置的字符串处理函数

上一篇:如何修改Oracle中表的字段长度?


下一篇:BZOJ3165: [Heoi2013]Segment(李超线段树)