mysql--增删改查

  • 修改表名
    • --创建用户表
      CREATE TABLE IF NOT EXISTS user7(
      id  SMALLINT UNSIGNED KEY AUTO_INCREMENT,
      username VARCHAR(50) NOT NULL UNIQUE,
      password CHAR(20) NOT NULL,
      email VARCHAR(20) NOT NULL DEFAULT '592681026@qq.com',
      age TINYINT UNSIGNED DEFAULT 18,
      sex ENUM('','','保密') NOT NULL DEFAULT '',
      addr VARCHAR(50) NOT NULL DEFAULT '上海',
      salary FLOAT(6,2),--这个是浮点型    6位数,保留两位小数
      regTime INT UNSIGNED,
      face CHAR(100) NOT NULL DEFAULT 'default.jpg'
      );
      
      INSERT user6(id,username,password,regTime) VALUES(1,'付志强','dazhi',1994);
      
      
      --重命名表名:user7变为user8
      ALTER TABLE user7 RENAME TO user8;
      ALTER TABLE user8 RENAME AS user7;--TO  和     AS   都可以省略
      ALTER TABLE user8 RENAME user7;
      
      RENAME TABLE 原表名 TO 新表名;--这个TO不能省略
  • 添加和删除字段
    • --添加字段,删除字段
      --添加:ALTER TABLE tbl_name ADD 字段名称  字段类型[完整性约束条件][FIRST|AFTER 字段名称](加在首部或者某个字段之后)   和写字段差不多  最后可以字段的位置
      --添加card字段 CHAR(18)
      ALTER TABLE user7 ADD card CHAR(18);
      ALTER TABLE user7 ADD test1 VARCHAR(100) NOT NULL UNIQUE;
      ALTER TABLE user7 ADD test2 VARCHAR(100) NOT NULL UNIQUE FIRST;
      
      
      --一次添加多个字段     选中一个表,完成多个操作
      ALTER TABLE user7
      
      ADD test5 VARCHAR(100) NOT NULL UNIQUE AFTER sex,
      ADD test6 SET('A','B','C');
      
      
      --删除指定字段   ALTER TABLE tab_name DROP 字段名称
       ALTER TABLE user7 DROP test6;
       
       --一次性的删除test1,test2,test3,test4,test5
       ALTER TABLE user7
       DROP test1, 
       DROP test2,
       DROP test3,
       DROP test4;
      
       --添加test字段 删除addr字段
       ALTER TABLE user7
       
       ADD test INT UNSIGNED NOT NULL DEFAULT 10 AFTER sex,
       DROP addr;
  • 修改字段
    • --修改字段      ALTER TABLE tab_name MODIFY  字段名称  字段类型[完整性约束条件][FIRST|AFTER 字段名称]
       --MODIFY   修改字段类型  将email 修改位VARCHAR(200)
       ALTER TABLE user7 MODIFY email VARCHAR(200);--这个修改的时候最好是带上全部的完整性约束条件
       ALTER TABLE user7 MODIFY email VARCHAR(50) NOT NULL DEFAULT '592681026@qq.com';--带上完整的约束性
       
       --将card字段移动到test字段之后
       ALTER TABLE user7 MODIFY card CHAR(18) AFTER test;--这里要带上card的完整的约束性条件
       
       --将test字段修改位CHAR(32) NOT NULL DEFAULT '123' 移动到第一个位置
       ALTER TABLE user7 MODIFY test CHAR(32) NOT NULL DEFAULT '1234' FIRST;
       
       --修改字段的名称(也能完成MODIFY的功能)      ALTER TABLE tab_name   原字段名称   新字段名称   字段类型  
       --将test字段改为test1
       ALTER TABLE user7 CHANGE test test1 CHAR(32) NOT NULL ;
  • 添加删除默认值
    • --添加删除默认值
       ALTER TABLE 表名 ALTER 字段名称 SET DEFAULT 默认值
       ALTER TABLE 表名 ALTER 字段名称 DROP DEFAULT
  • 添加删除主键
    • --添加和删除主键
       ALTER TABLE 表名 ADD [CONSTRAINT] PRIMARY KEY (字段名称,...)--...表示括号里面可以是多个字段,那就是复合主键了,如果是一个,那就是单一主键了
       ALTER TABLE 表名 DROP PRIMARY KEY
       
      CREATE TABLE test12(
      id INT
       );
      ALTER TABLE test12 ADD PRIMARY KEY (id);
      
      CREATE TABLE test13(
      id INT,
      card VARCHAR(50) NOT NULL
      );
      ALTER TABLE test13 ADD PRIMARY KEY (id,card);
      
      ALTER TABLE test13 DROP PRIMARY KEY;--删除
      ALTER TABLE test12 DROP PRIMARY KEY;--删除
      
      --注意:这里如果建表的时候自增长和主键同时存在的时候,你不能直接删除主键,而是应该先是删除AOTU_INCREMENT,然后再删除主键
      ALTER TABLE 表名 MODIFY id UNSIGNED NOT NULL;--这样自增长就没有了 
  • 添加删除唯一
    • --添加测试索引
      ALTER TABLE 表名 ADD UNIQUE(username);
      ALTER TABLE 表名 ADD  CONSTRAINT symbol UNIQUE  uni_id(username);--这里的uni_id 是一个索引的名称,如果不写这个系统会让字段名称变成默认的索引名称
      ALTER TABLE 表名 ADD  CONSTRAINT symbol UNIQUE  aa(card,username);--复合索引唯一
      
      --删除索引唯一
      ALTER TABLE 表名 DROP {INDEX|KEY} 唯一名称;
      
      --修改表的引擎
      ALTER TABLE 表名 ENGINE=MyISAM;
      
      --修改自增长值
      ALTER TABLE 表名 AUTO_INCREMENT=100;
  • 删除数据表
    • --删除数据表     
      DROP TABLE [IF  EXISTS]表名;--可以一次删除多个  也可以删除一个    类似于添加。
      当然手动删除也是可以的。必须先关闭mysql,在关闭mysql服务,最后在文件中手动删除数据表,
      
      --当我们进入mysql想登录的同时直接打开某个数据库的时候:
      mysql -uroot -p -D 数据库名称。
  • 更新删除   应用order by 和limit
    •   
      --更新用户名为4位的用户,让其已有的年龄-3
      UPDATE cms_user SET age=age-3 WHERE username LIKE '____';
      
      --更新前三条记录 ,让已有年龄+10
      UPDATE cms_user SET age=age+10 LIMIT 3;
      UPDATE cms_user SET age=age+10 LIMIT 0,3;
      
      --按照id降序排列 更新前三条
      UPDATE cms_user SET age=age+10 ORDER BY id DESC LIMIT 3;
      
      --删除用户性别为男的用户,按照年龄降序排序,删除前一条记录
      DELETE  FROM cms_user WHERE sex='' ORDER BY age DESC LIMIT 1; 
原文地址:https://www.cnblogs.com/Kobe10/p/5764153.html