学习资料笔记

小木的学习笔记

数据库操作

2020-4-2 小木 数据库

新增字段:
-- 添加字段
-- ALTER TABLE table_name ADD 字段名称 字段类型 [完整性约束条件] [FIRST|AFTER]

-- 给tb_user添加card字段 
ALTER TABLE tb_user ADD card CHAR(18);
-- 给card添加默认值
ALTER TABLE tb_user ALTER card SET DEFAUTL 1000001;
-- 删除默认值
ALTER TABLE tb_user ALTER card DROP DEFAULT;
-- 带完整性约束条件的
ALTER TABLE tb_user ADD test1 VARCHAR(100) NOT NULL UNIQUE;
-- 添加字段到第一位
ALTER TABLE tb_user ADD test2 VARCHAR(10) NOT NULL FIRST;
-- 添加字段到指定位置
ALTER TABLE tb_user add test3 INT NOT NULL DEFAUTL 100 AFTER username;
-- 批量添加,一次选中,多次添加
ALTER TABLE tb_user
ADD test4 INT NOT NULL DEFAULT 123 AFTER password,
ADD test5 FLOAT(6,2) Frist,
ADD test6 SET('A','B','C','D');


删除字段:

-- 删除字段
-- ALTER TABLE 表名 DROP 字段名
ALTER TABLE tb_user DROP test6;

-- 一次选中表,删除多个字段
ALTER TABLE tb_user
DROP test2,
DROP test3,
DROP test5;


彻底清空数据表:

-- 彻底清空数据表
-- TRUNCATE [TABLE] table_name
-- 清空数据,并重置AUTO_INCREMENT
TRUNCATE tb_user;


修改字段属性:
-- 修改字段属性
-- ALTER TABLE table_name MODIFY 字段名称 字段类型 [完整性约束条件]
-- 将email字段 VARCHAR(50)修改成VARCHAR(200)
-- 注意,修改时如果不带完整性约束条件,原有的约束条件将丢失,如果想保留修改时就得带上完整性约束条件
ALTER TABLE tb_user MODIFY email VARCHAR(200) NOT NULL DEFAULT 'a@a.com';

-- 将card移到test后面
ALTER TABLE tb_user MODIFY card CHAR(10) AFTER test;

-- 将test放到第一个,保留原完整性约束条件
ALTER TABLE tb_user MODIFY test CHAR(32) NOT NULL DEFAULT '123' FIRST;

修改字段名称和属性:
-- 将test字段改为test1
-- ALTER TABLE 表名 CHANGE 原字段名 新字段名 字段类型 约束条件
ALTER TABLE tb_user CHANGE test test1 CHAR(32) NOT NULL DEFAULT '123';


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

-- 添加复合主键
ALTER TABLE tb_user ADD PRIMARY KEY(id,card);


删除主键:

-- 删除主键
ALTER TABLE tb_user DROP PRIMARY KEY;

-- 再给tb_user添加主键, 完整形式
ALTER TABLE tb_user ADD CONSTRAINT symbol PRIMARY KEY index_type(id);
在删除主键时,有一种情况是需要注意的,我们知道具有自增长的属性的字段必须是主键,如果表里的主键是具有自增长属性的;那么直接删除是会报错的。如果想要删除主键的话,可以先去年自增长属性,再删除主键

-- 再创建一个表,
CREATE TABLE tb_user(
id INT UNSIGNED KEY AUTO_INCREMENT
);

-- 删除主键,这样会报错,因为自增长的必须是主键
ALTER TABLE tb_user DROP PRIMARY KEY;

-- 先用MODIFY删除自增长属性,注意MODIFY不能去掉主键属性
ALTER TABLE tb_user MODIFY id INT UNSIGNED;
-- 再来删除主键
ALTER TABLE tb_user DROP PRIMARY KEY;


唯一索引:
-- 添加唯一性约束
-- ALTER TABLE table_name ADD [CONSTANT [symbol]] UNIQUE [INDEX | KEY] [索引名称](字段名称,...)

-- username添加唯一性约束,如果没有指定索引名称,系统会以字段名建立索引
ALTER TABLE tb_user ADD UNIQUE(username);
-- car添加唯一性约束
ALTER TABLE tb_user ADD CONSTRAINT symbol UNIQUE KEY uni_card(card);
-- 查看索引
SHOW CREATE TABLE tb_user;

-- test,test1添加联合unique
ALTER TABLE tb_user ADD CONSTRAINT symbol UNIQUE INDEX mulUni_test_test1(test, test1);

-- 删除唯一
-- ALTER TABLE table_name DROP {INDEX|KEY} index_name;
-- 删除刚刚添加的唯一索引
ALTER TABLE tb_user DROP INDEX username;
ALTER TABLE tb_user DROP KEY uni_card;
ALTER TABLE tb_user DROP KEY mulUni_test_test1;


修改自增长值:
-- 修改自增长的值
-- ALTER TABLE table_name AUTO_INCREMENT=值
ALTER TABLE tb_user AUTO_INCREMENT=100;


标签: mysql