boost调用mysql_MySQL学习笔记_9_MySQL高级操作(上)

本文介绍了MySQL的高级操作,包括如何复制表结构和数据,创建、删除、修改索引,以及视图的创建、查看、删除。详细讲解了不同类型的索引创建方式,并给出了查看索引的命令。此外,还讨论了视图的概念及其在数据查询中的作用。
摘要由CSDN通过智能技术生成

MySQL高级操作(上)

一、MySQL表复制

create table t2 like t1;               #复制表结构,t2可以学习到t1所有的表结构

insert into t2 select * from t1;    #复制表数据,但是这样还是会有缺陷,因为没有考虑到列的对应,因为t1与t2的表结构完全一致,所以此次操作才不会出错!

建议:

insert into t3(name) select name from t1; #指定复制的列

二、MySQL索引

1、直接创建索引

create index index_name on table_name(column_list);                #创建普通索引

create unique index index_name on table_name(colume_list);    #创建唯一索引,请在创建唯一索引之前确保该列没有重复值,不然,创建不成功!

2、直接删除索引

drop index index_name on table_name;

3、修改-创建索引

alter table table_name add index [index_name](colum_list);                #创建普通索引

alter table table_name add unique [index_name](column_list);            #创建唯一索引

alter table table_name add primary key [index_name](column_list);   #创建主键索引,如果不添加index_name,则使用column_list作为默认索引名

4、修改-删除索引

alter table table_name drop index index_name;            #删除普通/唯一索引

alter table table_name drop primary key;                      #删除主键索引

【推荐使用方式3、4】

【附】

1、查看索引:show index from t1 \G

2、alter table table_name modify id int not null;

三、MySQL视图

视图:通过一个条件,把一部分数据从一张表里面提取出来,形成一张中间表,这张表就是视图

注意:视图随着主表的改变而改变

1、创建视图

create view view_name as select *from table_naem where id > 4 and id <= 10;

3、查看创建了哪些视图

showtables; #视图就是一个中间表

3、查看视图中数据

select* from view_name; #与查看表数据相同

4、删除视图

drop view view_name;

四、MySQL内置函数补充

查看函数作用及简单示例:? function_name

e.g. ? lcase;

1、字符串函数

1)lcase(“string”)/ucase(“string”)           #转换成小写/大写,与lower(str)/upper(str)作用相同

2)length(“string”)                                   #返回字符串的长度

3)repeat(“string”,n)                                #将字符从重复n次

4)space(n)                                               #生成n个空格

2、数学函数

1)bin(decimal_number)                          #十进制转二进制

2)ceiling(n)                                             #作用与ceil相同,向下取整

3)sqrt(n)                                                  #开平方

4)max(col)/min(col)                               #取最大/最小值,聚合时使用

5)rand()                                                   #生成随机数

select * from table_name order by rand(); #使用rand函数作为排序基准

3、日期函数

1)datediff(expr1,expr2)                             #返回expr1和expr2相差的天数,如果expr1> expr2,则返回正值

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值