好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

MySQL学习笔记_9_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 ,则返回正值

MySQL学习笔记_9_MySQL高级操作(上)

标签:mysql   sql   视图   索引   函数   

查看更多关于MySQL学习笔记_9_MySQL高级操作(上)的详细内容...

  阅读:28次