mysql基础操作

1.表复制:
create table t1(
id int unsigned not null auto_increment(自增长) primary key,
name varchar(20)
);
desc table;查看表结构
create table t1 like t2;(把t2表结构复制一份且表明为t1);
insert into t2 select 字段 from t1(把t2表的数据复制到t1中去);

2索引:
创建,删除和查看索引
创建:creat (unique 创建唯一索引,列字段不能有重复值) index index_name on table(column);(不能创建住建索引)
 alter table table_name add index/unique/primary key index_name(column);(可以创建主键索引)  
删除: drop index index_name on table_name; 
 alter table table_name drop index index_name;
  
删除主键索引:
先把 table_name表主键的不为空先删除:
alter talble table_name t1 modify id int unsigned not null;
在把自增长删除
alter table tablr_name drop primary key;
添加主键且自增索引:
alter table t2 add index primary key(id);
alter table t2 modify in int unsigned not null auto_increment;
查看:show index form table_name;

alter table t1 change:可以修改类型,重命名,列默认值,自增长
alter tablle t1 modify:除了给列重命名外其余和change一样
alter table t1 rename to t2;
show index from table_name;查看索引
show tables;
show databases;
show create table table_name;
show create view view_name;
show status;
show table status form table;
show grants for table_name;
show columns from  table_name;


3.视图:
创建视图和删除视图(中间表,临时表)
创建:create view v_t1 as select * from t2 where XXXXX;(v_t1会根据t2的变化而变化,而复制表是不会变化的)
删除:drop view view_name;

4.内置函数:
字符串,数学,日期函数
字符串:
concat("str1","str2"):将str1和str2连接   eg:select concat("hello ","wubo");
lcase("WUBO"):小写
ucase("wubo"):大写
length("str"):长度
ltrim("         str"):去除前段空格
rtrim("str         "):去除后端空格
repeat(str,count):重复strcount次数
replace(str,search_str,replace_str):从str中索取search_str然后替换为replace_str
substring(str,position,[length]);从str中position开始截取lenngth个字符
space(count):生成count个空格
数学:
bin():十进制转二进制
ceiling():向上取整
floor(number):向下取整
Max():最大
min():最小
sort():开平方
rand ():0到1的随机数

日期函数:
curdate():返回当前日期
curtime():返回当前时间
now():返回当前的日期时间
unix_timestamp(date):返回date的unix的时间戳
from_unixtime():返回unix时间戳的日期值
week(date):一年中的第几周
year():返回日期的date年份
datediff(expr,expr2):返回起始时间expr和结束时间expr2的天数
5.mysql预处理语句,作用:提高效率,减少mysql重新执行msyql语句
定义预处理语句:prepare prepare_name from "select * from t1 where if >?"
设置变量:set @i=1;
执行预处理:execute prepare_name using @i;
删除预处理:drop prepare prepare_name;


6.mysql事物处理
1.关闭自动提交:set autocommit=0;

7.重排auto_increment:
mysql数据库自增长的ID如何恢复到从1开始增长的状态
不能用delete from table_nme;
要用:truncate table table_name;
这样就恢复成为1了
或者清空后用:alter tablename auto_increment=1;
8.group by with rollup:对分组聚合后在分组聚合,不可以和order by一起使用 
select cname,pname,count(pname) from t1 group by cname,pname with rollup;:显示每一个信息在显示统计后的信息
9.帮助信息:? contents;最全的信息    \s:系统信息  \c:  \G:  \d:
10.优化顺序:

你可能感兴趣的:(mysql,优化)