文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Mysql用法记录

2017-06-15 21:32

关注

Mysql用法记录

查询有多少个 item_uid。

关键字 distinct

select count(distinct item_uid) from supply_order where item_name like "%移动%" ;

select count(distinct item_uid) from supply_order where item_name like "%移动%"and item_area like "江苏";

正常使用 update语句即可

update tell_tellphone set toperation = "移动"  where topid =600030;

alter table supply_order drop column biz_order_id;

alter table supply_order drop column biz_order_id,drop column stock_id,drop column user_id;
其他用法:
alter table test(旧) rename test1(新); --修改表名
alter table test add  column name varchar(10); --添加表列
alter table test drop  column name; --删除表列
alter table test modify address char(10) --修改表列类型||alter table test change address address  char(40)
alter table test change  column address address1 varchar(30)--修改表列名

mysql修改字段类型:

--能修改字段类型、类型长度、默认值、注释

--对某字段进行修改

ALTER  TABLE 表名 MODIFY COLUMN 字段名 新数据类型 新类型长度  新默认值  新注释; -- COLUMN可以省略
ALTER  TABLE 表名 MODIFY COLUMN 字段名 新数据类型 新类型长度  新默认值  新注释; -- COLUMN可以省略
alter  table table1 modify  column column1  decimal(10,1) DEFAULT NULL COMMENT "注释"; -- 正常,能修改字段类型、类型长度、默认值、注释
mysql修改字段名:
ALTER  TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;     
alter  table table1 change column1 column1 varchar(100) DEFAULT 1.2 COMMENT "注释"; -- 正常,此时字段名称没有改变,能修改字段类型、类型长度、默认值、注释
alter  table table1 change column1 column2 decimal(10,1) DEFAULT NULL COMMENT "注释" -- 正常,能修改字段名、字段类型、类型长度、默认值、注释
alter  table table1 change column2 column1 decimal(10,1) DEFAULT NULL COMMENT "注释" -- 正常,能修改字段名、字段类型、类型长度、默认值、注释
alter  table table1 change column1 column2; -- 报错  

ALTER TABLE 表名 MODIFY COLUMN 字段名 新数据类型 新类型长度 新默认值 新注释; -- COLUMN可以省略

alter table table1 modify column column1 decimal(10,1) DEFAULT NULL COMMENT "注释"; -- 正常,能修改字段类型、类型长度、默认值、注释

mysql修改字段名:

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;

alter table table1 change column1 column1 varchar(100) DEFAULT 1.2 COMMENT "注释"; -- 正常,此时字段名称没有改变,能修改字段类型、类型长度、默认值、注释

alter table table1 change column1 column2 decimal(10,1) DEFAULT NULL COMMENT "注释" -- 正常,能修改字段名、字段类型、类型长度、默认值、注释

alter table table1 change column2 column1 decimal(10,1) DEFAULT NULL COMMENT "注释" -- 正常,能修改字段名、字段类型、类型长度、默认值、注释

alter table table1 change column1 column2; -- 报错

mysql中的 substr() 函数和 hibernate 的 substr() 参数都一样,就是含义有所不同。

tr(string string,num start,num length);

string为字符串;

start为起始位置;

length为长度。

区别:

mysql中的start是从1开始的,而hibernate中的start是从0开始的。

现需求,test表中,value和value2字段都是 char类型(字符串),

现在需要将value的字段的前三位,赋值给value2

update test set value2 = substr(value,1,3);

ALTER TABLE 表名 MODIFY 字段名1 数据类型 FIRST|AFTER 字段名2

参数说明

FIRST,可选参数

将字段1,修改为表的第一个字段。

AFTER 字段名2

将字段1,插入到字段2的后面。

alter table grade modify username varchar()  first//将数据表grade的username字段,修改未表的第一个字段

拷贝表1的全部数据到表2
方法一:
INSERT INTO table2 SELECT * FROM table1
拷贝第n条
INSERT INTO table2 SELECT * FROM table1  WHERE id=5
拷贝指定字段
INSERT INTO table2 ( name , price ) SELECT name , price  FROM table1  WHERE id=5
    
方法二:
创建表3, 同时拷贝表1的数据和结构到表3
CREATE TABLE table3 SELECT * FROM table1 limit A ,B;
注:A:查询起点 B:行数
    
方法三:
创建表4,只拷贝表1的结构到表4,不拷贝数据
CREATE TABLE table4 LIKE table1


1. 表结构完全一样
  insert into 表1
  select * from 表2
2. 表结构不一样(这种情况下得指定列名)
  insert into 表1 (列名1,列名2,列名3)

select 列1,列2,列3 from 表2
3.不同数据库,需要在表前面加数据库前缀,database.表名。																				

1、要删除重复的记录,就要先查出重复的记录,这个很容易做到

select * from cqssc group by expect having count(expect) > 1;--cqssc(表名)expect(字段名)数据量大会比较慢

注意:这是查出所有重复记录的第一条记录,需要保留,因此需要添加查询条件,查出这三条的重复记录

2、查询重复的数据(除去第一条要保留的,待之后删除)

select 
    id,expect 
from 
    cqssc --表名
where 
    expect -- 字段名
in 
    (select expect from cqssc group by expect having count(expect)>1) -- 查询有重复数据的记录的字段名
and 
    id 
not in
    (select min(id) from cqssc group by expect having count(expect)>1) --查询出同名中ID最小的记录ID

以上得到的结果就是我们需要删除的记录!

在Mysql中是不能删除查询出来的记录的,这里很容易错,当时在这里纠结了很久,而是要通过一张【临时表】来解决。

3、删除非第一条的重复数据

delete from cqssc where id in -- 在删除数据中删除 id条件
      (select id from --要删除的数据的id--供删除--针对临时表 tmpresult
        (select id from cqssc where expect in --待删除数据的 id(多条可能有重复的)
            (select expect from cqssc group by expect having count(expect)>1) and id not in (select min(id) from cqssc group by expect having count(expect)>1)) -- 某一字段重复的数据--待删除的数据
                as tmpresult)

需要查询到要删除的数据的id

需要查询出要删除的数据,才能得到id

第一步:查询要删除的数据(重复的非第一条的数据)

第二步:查询出 这些数据的id

第三步:

第四步:通过得到的id删除


delete from cqssc where id in (select id from (select id from cqssc where expect in (select expect from cqssc group by expect having count(expect)>1) and id not in (select min(id) from cqssc group by expect having count(expect)>1)) as tmpresult)

select sum(money) from test where place like "%四川%";

select * from 表 where 编号 in (1,2,3,4)

或者

select * from 表 where 编号=1 or 编号=2 or 编号=3 or 编号=4

通过"外键"(也可以不是外键,一个关联字段而已 ),将从表的值赋予给主表某一个字段赋值(修改)

第一种:update

update kunce_temp as t,kunce_part as p set t.place_name = p.province_name where t.mobile_part = p.mobile_part;

update 
kunce_temp as t,kunce_part as p  // 表别名
set 
t.place_name = p.province_name  // 从表值赋予给主表
where t.mobile_part = p.mobile_part; //当满足某一条件

select * from 
    table 
limit 
    num1,num2;
// 查询 从第num1行开始,查询num2 条数据

select * from 
    table
limt
    num1
offset
    num2;
// 从 num2 行开始,限制了 num1 行

select * from table limit a,b; 从a开始,b条数据

select * from table limit a offset b; 从b开始,查询 a 条数据

select * from kunce_temp where place_name ="江苏" limit 0,5;

需要先 where ,再limit

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯