详细说明增删改查
admin
2023-05-13 14:21:58
0次

2. 修改表(重点重点)

a) 修改表名

ALTER TABLE 表名 RENAME TO 新表名

b) 修改字段的数据类型

ALTER TABLE 表名 MODIFY 字段名  数据类型 属性 索引;

c) 修改字段名

ALTER TABLE 表名 CHANGE 老字段名 新字段名  数据类型 属性 索引;

d)  增加字段

ALTER TABLE 表名 ADD 字段名 数据类型 属性 索引 [FIRST|AFTER 字段名]

如果后面first和after 不写的情况下 默认是添加到字段末尾

e)  删除字段

ALTER TABLE 表名 DROP 字段名

ERROR 1091 (42000): Can't DROP 'phone'; check that column/key exists

删除不存在的字段 会报上面的错误

f) 修改字段的排列位置

ALTER TABLE 表名 MODIFY 字段1 数据类型 属性 索引 AFTER 字段2

g) 修改表引擎

 ALTER TABLE 表名 ENGINE = 引擎名

数据量大的时候 不建议像上面一样去修改表引擎 而是先创建一个和myuser表一样的表 然后把空表的引擎修改为我们要修改的引擎之后将数据导入到新表中即可

h) 将自增改为现在的最大值

==========================================================================================================================

                                                    举例说明 增 删 改 查

ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO myuser VALUES(NULL,'user1',md5('123456'),18,0,1510023998,'不抛弃,不放弃,勇于担当,敢于亮剑');
INSERT INTO myuser VALUES(NULL,'user2',md5('123456'),18,0,1510023998,'让学习成为一种习惯');
INSERT INTO myuser VALUES(NULL,'user3',md5('123456'),18,0,1510023998,'让我成为一个习惯');

-- 修改表名
ALTER TABLE myuser RENAME TO  user1;
ALTER TABLE user1 RENAME TO  myuser;

-- 修改字段数据类型
ALTER TABLE myuser MODIFY age INT NOT NULL DEFAULT 0;
ALTER TABLE myuser MODIFY age TINYINT UNSIGNED NOT NULL DEFAULT 0;


-- 修改字段名
ALTER TABLE myuser CHANGE age myage TINYINT UNSIGNED NOT NULL DEFAULT 0;
ALTER TABLE myuser CHANGE myage age TINYINT UNSIGNED NOT NULL DEFAULT 0;


-- 增加字段
ALTER TABLE myuser ADD city VARCHAR(255) NOT NULL DEFAULT '地球村';
ALTER TABLE myuser ADD lovegood SET('邱亮','avi','mp4','vob','girl') NOT NULL FIRST;
ALTER TABLE myuser ADD  tel CHAR(11) NOT NULL AFTER age;


-- 删除字段
ALTER TABLE myuser DROP lovegood;
ALTER TABLE myuser DROP city;
ALTER TABLE myuser DROP tel;
ALTER TABLE myuser DROP phone;

-- 字段排列位置
ALTER TABLE myuser MODIFY reg_time INT NOT NULL AFTER age;
ALTER TABLE myuser MODIFY reg_time INT NOT NULL AFTER sex;

-- 修改表引擎
ALTER TABLE myuser ENGINE =InnoDB;
ALTER TABLE myuser ENGINE =MyISAM;

-- 数据量大的时候 不建议像上面一样去修改表引擎 而是先创建一个和myuser表一样的表 然后把空表的引擎修改为我们要修改的引擎之后将数据导入到新表中即可

-- 将自增改为现在的最大值
ALTER TABLE myuser AUTO_INCREMENT =0;

CREATE TABLE IF NOT EXISTS info(
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    age TINYINT UNSIGNED NOT NULL DEFAULT 0,
    sex  TINYINT NOT NULL DEFAULT 0,
    city VARCHAR(255) NOT NULL DEFAULT '北京'
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 对所有字段的所有值添加数据
INSERT INTO info VALUES(NULL,'马洪祥',45,0,'南京');
INSERT INTO info VALUES(NULL,'文卓',38,0,'南宁');
INSERT INTO info VALUES(NULL,'杰杰',0,26,'成都');

-- 列出所有字段
INSERT INTO info(id,name,age,sex,city) VALUES(NULL,'琳琳',16,0,'成都');
INSERT INTO info(id,name,age,sex,city) VALUES(NULL,'德宝',78,1,'杭州');

-- 指定字段插入
INSERT INTO info(name,age,sex) VALUES('李想',150,2);
INSERT INTO info(name,age,sex) VALUES('薛琳',17,3);
INSERT INTO info(name,age,sex) VALUES('茜茜',14,0);
INSERT INTO info(name,age,sex) VALUES('李帅想',14,0);


-- 同时插入多条数据
INSERT INTO info(id,name,age,sex,city) VALUES(NULL,'燕燕',16,0,'郑州'),(NULL,'文帅',24,1,'深圳'),(NULL,'良良',98,2,'济南'),(NULL,'骚里',84,1,'宁波'),(NULL,'小王子马黎',56,1,'西安'),(NULL,'张三皮',110,2,'徐州'),(NULL,'天意哥',7,2,'沈阳');
INSERT INTO info(id,name,age,sex,city) VALUES(NULL,'洁辉',2,1,'郑州'),(NULL,'芳芳',18,0,'西安'),(null,'王小二',18,1,'酒店'),(null,'王中王',255,4,'双汇'),(null,'小王八',255,4,'河里'),(null,'隔壁老王',43,1,'隔壁');
INSERT INTO info(id,name,age,sex,city) VALUES(NULL,'球球',18,1,'东京hot'),(null,'眼袋哥',18,1,'大阪'),(null,'白哥',18,1,'北海道'),(null,'黑哥',18,1,'欧美');

-- 修改数据
UPDATE info SET age=66,sex=0 WHERE id=3;

-- 删除数据
DELETE FROM info WHERE id=26;


-- 列出所有字段
SELECT id,name,age,sex,city FROM info ;

-- 使用*查询
SELECT * FROM info;

-- 查询指定字段
SELECT id,name FROM info;

-- 比较: = < > <= >= != <>
-- 指定范围: BETWEEN AND   NOT BETWEEN AND
-- 指定集合: IN  NOT IN
-- 匹配字符  LIKE  NOT LIKE
-- 是否为空值  IS NULL  IS NOT NULL
-- 多个条件查询   AND OR

-- 比较: = < > <= >= != <>
SELECT  id,name,age,sex,city FROM info WHERE id =10;
SELECT  id,name,age,sex,city FROM info WHERE id <10;
SELECT  id,name,age,sex,city FROM info WHERE id >10;
SELECT  id,name,age,sex,city FROM info WHERE id <=10;
SELECT  id,name,age,sex,city FROM info WHERE id >=10;
SELECT  id,name,age,sex,city FROM info WHERE id !=10;
SELECT  id,name,age,sex,city FROM info WHERE id <>10;

-- 指定范围: BETWEEN AND   NOT BETWEEN AND id大于等于15而且 小于等于20
SELECT id,name,age,sex,city FROM info WHERE age BETWEEN 15 AND 20;
SELECT id,name,age,sex,city FROM info WHERE age NOT BETWEEN 15 AND 20;

-- 指定集合: IN  NOT IN
SELECT id,name,sex,age,city FROM info WHERE id IN(22,7,14,15,2);
SELECT id,name,sex,age,city FROM info WHERE id NOT IN(22,7,14,15,2);


-- 匹配字符  LIKE  NOT LIKE
-- 模糊查询 字符 _代表一个字符  %代表0 1 多个字符
SELECT id,name,sex,age,city FROM info WHERE name LIKE '李_';
SELECT id,name,sex,age,city FROM info WHERE name LIKE '李__';

-- 以指定字符开头
SELECT id,name,sex,age,city FROM info WHERE name LIKE '王%';

-- 以指定字符结尾
SELECT id,name,sex,age,city FROM info WHERE name LIKE '%王';

-- 所有带中间字符的都出来!!!!
SELECT id,name,sex,age,city FROM info WHERE name LIKE '_王%';


SELECT id,name,sex,age,city FROM info WHERE name NOT LIKE '%王%';


-- 是否为空值  IS NULL  IS NOT NULL
-- is NULL
SELECT id,name,sex,age,city FROM info WHERE name IS NULL;

-- IS NOT NULL
SELECT id,name,sex,age,city FROM info WHERE name IS NOT NULL;

-- 多个条件查询   AND OR
-- 查询出所有带王字的并且年龄要大于17
-- AND
SELECT id,name,sex,age,city FROM info WHERE name LIKE '%王%' AND age>17;

--  查询出所有带李字的或者性别为0的数据全部出来
-- OR
SELECT id,name,sex,age,city FROM info WHERE name LIKE '%李%' OR  sex=0;

-- 值查询性别
SELECT sex FROM info ;
-- 去除查出结果中重复的内容 DISTINCT

SELECT DISTINCT sex FROM info;

-- 请查询出我们班级中人物的所在地位置

SELECT DISTINCT city FROM info;

-- ORDER BY 排序
-- ASC 从小到大
SELECT id,name,sex,age,city FROM info ORDER BY age ASC;

-- DESC 从大到小
SELECT id,name,sex,age,city FROM info ORDER BY age DESC;

-- ID小于25的 按照id 从大到小排序
-- 如果有where 条件 orderby 需要写在where条件后面
SELECT id,name,sex,age,city FROM info WHERE id < 25 ORDER BY age DESC;
SELECT id,name,sex,age,city FROM info WHERE id < 25 ORDER BY age DESC,id DESC;

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...