精华内容
下载资源
问答
  • mysql 取消主键

    千次阅读 2019-11-24 14:06:46
    alter table 表名 drop primary key; 或者 alter table 表名 modify 字段 int(11),drop primary key; 补充: modify: 只能修改字段类型或者约束,不能修改字段

    alter table 表名 drop primary key;

    或者

    alter table 表名 modify 字段 int(11),drop primary key;

    补充:
    modify: 只能修改字段类型或者约束,不能修改字段名

    展开全文
  • 可直接在ctrl +f 搜索想知道的语句 //创建一个表 creat table demo( id int primary key auto_increment comment '学号', name varchar(20) comment '姓名', ...//查询表的字段 注解 字段类型...

    可直接在ctrl +f 搜索想知道的语句

    //创建一个表

    creat table demo(
        id int primary key auto_increment comment '学号',
        name varchar(20) comment '姓名',
        time datatime comment '时间'
    )charset=utf-8;
    

    //查询表的字段 注解 字段类型
    //查询表的字段 注解 字段类型

    select column_name,column_comment,data_type 
    from information_schema.columns 
    where table_name = 'demo' and table_schema=test'';
    

    //向表中添加字段
    //向表中添加字段

    alter table demo add addContent varchar(10) not null;
    alter table demo add age int default 20 comment '年龄';
    

    //删除字段
    //删除字段

    alter table demo drop age;
    

    //修改
    //修改

    alter table demo change addContent age int default 20;
    alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];
    

    //设置某一行 缺省值
    //设置某一行 缺省值

    alter table demo alter column age set default 20;
    

    //删除某一行的默认值
    //删除某一行的默认值

    alter table demo alter column age drop default;
    

    //先按某一列排序 若相等按第二列排序
    //先按某一列排序 若相等按第二列排序

    select * from demo order by age ,id;
    

    //修改表名
    //修改表名

    alter table demo rename to demo1;
    

    DISTINCT 去除某个字段的重复值 只能查询出这一个字段
    //内连接
    //内连接

    select * from student inner join course using (sid);
    

    – 使用 using(sid) 的好处 去除重复的sid 只显示一个
    – 普通用法是用 on

    select * from student inner join course 
    on student.sid = course.sid;
    

    –若有有多个变直接写在后面就可以

    //保留小数位
    //四舍五入
    
    
    SELECT ROUND(13.14,1);
    
    
    //0 整数
    //-1 13 变为 10 
    //-2 10 变为 0 
    
    //直接截取,不进行四舍五入
    select truncate(13.15,1);
    //也支持负数
    
    //支持四舍五入
    
    format(10,3);  --10.000
    
    //返回的类型为字符串
    //超过三位 用逗号隔开
    

    //类型转换CONVERT

    CONVERT(VALUE,TYPE)函数 ps:支持四舍五入
    类型转换,相当于截取。
    type:
    二进制,同带binary前缀的效果 : BINARY
    字符型,可带参数 : CHAR()
    日期 : DATE
    时间: TIME
    日期时间型 : DATETIME
    浮点数 : DECIMAL
    整数 : SIGNED
    无符号整数 : UNSIGNED
    DECIMAL(10,2) -- 表示 总位数为10 ,小数点后位为2
    //位数从小数点后往前算
    SELECT CONVERT(20.3,DECIMAL(3,2)); -- 9.99
    

    //设置和删除索引

    //设置索引
    alter table demo add index idex (age);
    -- 设置test的age 为索引 索引名字为idex
    //删除索引
    drop index idex on  demo
    

    //添加外键

    alter table student  add foreign key (sid) 
    references course(id)
    

    //删除外键

    1.先找到外键名字
    show create table demo
    2.根据外键名字删除
    alter table demo drop foreign key `student_ibfk_1` 
    

    //查看主键

    select column_name from information_schema.KEY_COLUMN_USAGE
     where table_name = 'demo'
    
    展开全文
  • 首先说说如何设置主键,这里我给stuinfo表中的num字段设置了主键。 ALTER TABLE stuinfo add primary key auto_increment(num); 为字段设置自增长的前提是你得有一个字键,如果你没有为任何字段的话是不能设置的,...

    首先说说如何设置主键,这里我给stuinfo表中的num字段设置了主键。

    ALTER TABLE stuinfo 
    add primary key auto_increment(num);
    

    为字段设置自增长的前提是你得有一个字键,如果你没有为任何字段的话是不能设置的,然后设置自增长还要注意的是要把之前的格式全部打算去。就像这样~

    alter table stuinfo 
    modify num int(5) not null auto_increment;
    

    如果你要同时设置主键和自增长,可以参考下面这种写法

     alter table stuinfo 
     modify num int(5) not null auto_increment,
     add primary key(num);
    

    如果你在创建表的时候就想设置主键和自增长,则在类型后面写上即可。

    展开全文
  • 添加字段: ALTER TABLE 表名 ...ADD COLUMN 字段字段类型(及长度) 是否可以为空 DEFAULT 默认值 COMMENT '字段注释' AFTER `在哪个字段后面添加`; COMMENT 和AFTER 可以不写; ALTER TABLE `test`...

    转:https://www.cnblogs.com/huangxm/p/5736807.html

    添加字段:

     ALTER TABLE 表名

    ADD   COLUMN 字段名 字段类型(及长度)  是否可以为空  DEFAULT 默认值  COMMENT '字段注释' AFTER `在哪个字段后面添加`;

    COMMENT 和AFTER 可以不写;


     ALTER TABLE `test` 
            ADD COLUMN  res_project_name      varchar(200) NULL DEFAULT NULL COMMENT '物业项目名称',


            ADD COLUMN `over_date5` DATETIME NULL DEFAULT NULL COMMENT '经管中心' AFTER `over_date4`,


            ADD COLUMN `level` INT(3) NULL DEFAULT '0' COMMENT '级别' AFTER `day_scan_date`;

    修改字段属性:

    -- 修改字段属性
    -- ALTER TABLE tb_name MODIFY 字段名称 字段类型 [完整性约束条件]
    -- 将email字段 VARCHAR(50)修改成VARCHAR(200)
    -- 注意,修改时如果不带完整性约束条件,原有的约束条件将丢失,如果想保留修改时就得带上完整性约束条件
    ALTER TABLE user10 MODIFY email VARCHAR(200) NOT NULL DEFAULT 'a@a.com';
    
    -- 将card移到test后面
    ALTER TABLE user10 MODIFY card CHAR(10) AFTER test;
    
    -- 将test放到第一个,保留原完整性约束条件
    ALTER TABLE user10 MODIFY test CHAR(32) NOT NULL DEFAULT '123' FIRST;

    修改字段名称和属性:

    -- 将test字段改为test1
    -- ALTER TABLE 表名 CHANGE 原字段名 新字段名 字段类型 约束条件
    ALTER TABLE user10 CHANGE test test1 CHAR(32) NOT NULL DEFAULT '123';
    

    添加删除默认值:

    -- 创建新表
    CREATE TABLE user11(
    id TINYINT UNSIGNED KEY AUTO_INCREMENT,
    username VARCHAR(20) NOT NULL UNIQUE,
    age TINYINT UNSIGNED
    );
    
    -- 给age添加默认值
    ALTER TABLE user11 ALTER age SET DEFAUTL 18;
    -- 添加一个字段
    ALTER TABLE user11 ADD email VARCHAR(50);
    -- 给email添加默认值
    ALTER TABLE user11 ALTER email SET DEFAULT 'a@a.com';
    
    -- 删除默认值
    ALTER TABLE user11 ALTER age DROP DEFAULT;
    ALTER TABLE user11 ALTER email DROP DEFAULT;
    

    添加主键:

    -- 创建一个表
    CREATE TABLE test12(
    id INT
    );
    -- 添加主键
    -- ALTER TABLE tb_name ADD [CONSTRAINT [sysmbol]] PRIMARY KEY [index_type] (字段名称,...)
    ALTER TABLE test12 ADD PRIMARY KEY(id);
    
    
    -- 添加复合主键
    -- 先创建个表
    CREATE TABLE test13(
    id INT,
    card CHAR(18),
    username VARCHAR(20) NOT NULL
    );
    -- 添加复合主键
    ALTER TABLE test13 ADD PRIMARY KEY(id,card);

    删除主键:

    -- 删除主键
    ALTER TABLE test12 DROP PRIMARY KEY;
    
    -- 再给test12添加主键, 完整形式
    ALTER TABLE test12 ADD CONSTRAINT symbol PRIMARY KEY index_type(id);

    在删除主键时,有一种情况是需要注意的,我们知道具有自增长的属性的字段必须是主键,如果表里的主键是具有自增长属性的;那么直接删除是会报错的。如果想要删除主键的话,可以先去年自增长属性,再删除主键

    -- 再创建一个表,
    CREATE TABLE test14(
    id INT UNSIGNED KEY AUTO_INCREMENT
    );
    
    -- 删除主键,这样会报错,因为自增长的必须是主键
    ALTER TABLE test14 DROP PRIMARY KEY;
    
    -- 先用MODIFY删除自增长属性,注意MODIFY不能去掉主键属性
    ALTER TABLE test14 MODIFY id INT UNSIGNED;
    -- 再来删除主键
    ALTER TABLE test14 DROP PRIMARY KEY;
    

    把已有字段修改为主键

    1,先清除原有主键属性

    Alter table crm_def_worksheet drop primary key;

    2,再新加主键

    Alter table crm_def_worksheet add primary key(`id`, `create_date`);  

     

    创建索引:

    1.PRIMARY  KEY(主键索引)
            mysql>ALTER  TABLE  `table_name`  ADD  PRIMARY  KEY (  `column`  ) 
    2.UNIQUE(唯一索引)
            mysql>ALTER  TABLE  `table_name`  ADD  UNIQUE (`column` ) 
    3.INDEX(普通索引)
            mysql>ALTER  TABLE  `table_name`  ADD  INDEX index_name (  `column`  )
    4.FULLTEXT(全文索引)
            mysql>ALTER  TABLE  `table_name`  ADD  FULLTEXT ( `column` )
    5.多列索引
            mysql>ALTER  TABLE  `table_name`  ADD  INDEX index_name (  `column1`,  `column2`,  `column3`  )

     

    唯一索引:

    -- 添加唯一性约束
    -- ALTER TABLE tb_name ADD [CONSTANT [symbol]] UNIQUE [INDEX | KEY] [索引名称](字段名称,...)
    
    -- 创建测试表
    CREATE TABLE user12(
    id TINYINT UNSIGNED KEY AUTO_INCREMENT,
    username VARCHAR(20) NOT NULL,
    card CHAR(18) NOT NULL,
    test VARCHAR(20) NOT NULL,
    test1 CHAR(32) NOT NULL
    );
    
    -- username添加唯一性约束,如果没有指定索引名称,系统会以字段名建立索引
    ALTER TABLE user12 ADD UNIQUE(username);
    -- car添加唯一性约束
    ALTER TABLE user12 ADD CONSTRAINT symbol UNIQUE KEY uni_card(card);
    -- 查看索引
    SHOW CREATE TABLE user12;
    
    -- test,test1添加联合unique
    ALTER TABLE user12 ADD CONSTRAINT symbol UNIQUE INDEX mulUni_test_test1(test, test1);
    
    -- 删除唯一
    -- ALTER TABLE tb_name DROP {INDEX|KEY} index_name;
    -- 删除刚刚添加的唯一索引
    ALTER TABLE user12 DROP INDEX username;
    ALTER TABLE user12 DROP KEY uni_card;
    ALTER TABLE user12 DROP KEY mulUni_test_test1;
    

     

    修改表的存储引擎:

    -- 修改表的存储引擎
    -- ALTER TABLE tb_name ENGINE=存储引擎名称
    ALTER TABLE user12 ENGINE=MyISAM;
    ALTER TABLE user12 ENGINE=INNODB;

     

    修改自增长值:

    -- 修改自增长的值
    -- ALTER TABLE tb_name AUTO_INCREMENT=值
    ALTER TABLE user12 AUTO_INCREMENT=100;
    展开全文
  • MySQL增加或修改字段、修改主键

    千次阅读 2017-05-08 11:12:10
    1.在表格中增加新的字段 Alter TABLE 表名 ADD 字段名称 字段类型 例子: ALTER TABLE if_customer_order_tab ADD message_id DECIMAL(12,0) NOT NULL 将新增的字段排在第一位 ALTER TABLE if_customer_order...
  • 大家都知道对于分区字段必须是主键的一部分,那么建了复合主键之后,是否需要对分许字段再单独添加一个索引呢?有没有效果?来验证一下,下面话不多说了,来一起看看详细的介绍吧。 1、新建表effect_new(以创建时间...
  • 在创建表的时候,在所有的字段之后,使用primary key(主键字段列表)来创建主键(如果有多个字段作为主键,可以是复合主键) -- 复合主键 create table my_pri2( number char(10) comment '学号:itcast + 0000', ...
  • Mysql主键自增字段

    千次阅读 2020-07-06 10:21:34
    Mysql主键自增字段需求错误的方式正确的方式原因分析 需求 菜单表涉及到人为干预排序,设计表结构时,需要单独的字段(seq)用于排序。此字段仅用于排序,非主键字段。 错误的方式 SET NAMES utf8mb4; SET FOREIGN...
  • mysql设置非主键字段自增

    千次阅读 2018-04-04 15:19:53
    思路:首先把字段设置为key,然后更改为自增;例如:alter table asynch_task ADD KEY comp_index (code);alter table asynch_task modify code BIGINT(20) auto_increment; 
  • mysql在已有主键的表中新增自增长字段

    千次阅读 热门讨论 2019-09-08 21:11:32
    如标题所示,给数据表加自增长字段是很简单的事情,但是如果这个表已经有主键,并且存在数据的情况下,怎么给数据表加自增长主键呢?下面咱们来详细说一下这个东东。 1、目标需求: (1)数据表没有id字段,但是有个...
  • 1、添加PRIMARY KEY(主键索引) mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2、添加UNIQUE(唯一索引) mysql>ALTER TABLE `table_name` ADD UNIQUE ( `column` )  3、添加INDEX(普通索引) ...
  • 复制代码 代码如下: mysql_select_db(“hills_database_test”,$dbcon); $alterpkadd=”alter table hills_testcreatetable ... 您可能感兴趣的文章:深入探寻mysql自增列导致主键重复问题的原因mysql主键定义为自动
  • Mysql数据库根据主键关联更新指定字段 需求: ​ 两张表的主键相同,将一张表的某个字段copy到另一张表中 语句: ​ update person2 a inner join person b on a.id=b.id set a.name = b.name; 知识点扩展 inner ...
  • mysql 实现主键之外的多个字段自增

    千次阅读 2020-09-24 16:44:15
    通过sql实现编号自动增加,序号也是自动增加,一个编号下有20个序号,id是主键 尝试使用触发器 create trigger my_trigger before insert on test.test for each row begin set new.`编号`=(select if(`序号`=...
  • 一个数据表,需要两个字段联合起来一块做主键的时候。举例如下: 直接用sql语句的话如下 ALTER TABLE `表名` ADD PRIMARY KEY ( `表中字段名1` , `表中字段名2` ) ; 或者在phpmyadmin中操作,如下图: ...
  • mysql对于 A primary key must include all columns in the table's partitioning function的分析和解决
  • MySQL修改表的主键字段

    千次阅读 2018-12-13 14:16:30
    MySQL修改表的主键字段 1. 命令 ALTER TABLE sleep_device_day_temp DROP PRIMARY KEY ,ADD PRIMARY KEY ( id );
  • 先增加一个字段,然后删除以前表的主键,然后重新定义复合主键 1.alter table your_table add column your_column int(3) not null default 0 2.alter table your_table drop primary key 3.alter table your_...
  • 以下删除的各种约束,都是只删除... // 这里删除主键不需要具体指明字段,因为一个表只有一个主键 删除唯一约束时,先要查看索引,找到要删除唯一约束的索引名字,因为一个表中可以有多个唯一约束 ALTER TABLE
  • mysql数据库添加非主键自增字段

    千次阅读 2018-06-14 11:02:54
    我们直接向表中添加自增的非主键字段时会报错,错误信息如下: 该信息提示我们设为自增的字段必须作为键(并非一定是主键)。 所以我们可以这样做: (1)先添加字段,设置字段类型等基本属性:  alter ...
  • 查询表结构: SELECT column_name FROM information_schema.columns WHERE ...查询主键字段名 SELECT column_name FROM INFORMATION_SCHEMA.`KEY_COLUMN_USAGE` WHERE table_name='表名' AND constraint_name='...
  • 我们直接向表中添加自增的非主键字段时会报错,错误信息如下: 该信息提示我们设为自增的字段必须作为键(并非一定是主键)。 所以我们可以这样做: (1)先添加字段,设置字段类型等基本属性:  alter table ...
  • Mysql增加主键或者修改主键的sql语句

    万次阅读 多人点赞 2018-07-31 10:43:37
    Mysql增加主键或者更改表的列为主键的sql语句 添加表字段 alter table table1 add transactor varchar(10) not Null; alter table table1 add id int unsigned not Null auto_increment primary key 修改某个表...
  • mysql中添加一个主键 如果表中有主键,那么先删除表中的主键然后再添加新的主键#删除主键 alter table emp drop primary key #添加主键 alter table emp add primary key(id)添加主键之前要先将重复的主键字段名...
  • mysql 修改列为主键 自增

    千次阅读 2019-06-27 10:38:56
    altertabletb_namemodifyidintauto_incrementprimarykey
  • mysql的复合主键创建及删除

    万次阅读 2019-06-19 21:22:26
    摘要: mysql的联合主键:用2个字段(或者多个字段,后面具体都是用2个字段组合)来确定一条记录,说明,这2个字段都不是唯一的,2个字段可以分别重复,这么设置的好处,可以很直观的看到某个重复字段的记录条数。...
  • MySQL 主键详解

    千次阅读 2018-12-05 19:19:04
    首先主键索引是唯一的,所以他确定了数据的唯一性,该字段不能重复。 2.auto_increment 是递增的意思,每添加一条记录都会自动加 1 。 3.一般我们的主键都会加上not null ,让主键不可为空,好比一个人如果没有...
  • 问题:Mysql使用联合主键时,每个主键字段都能使用索引吗? 对于这个问题,很多mysql的初学者都是搞不清楚的,今天作者做了一个实验,来验证这个问题,防止在应用环境中不当的使用索引,导致mysql性能下降。 实验...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 196,276
精华内容 78,510
关键字:

mysql取消字段主键

mysql 订阅