1.1 mysql表复制
create table t2 like t1;
insert into t2 select * from t1;
1.2 mysql 索引
1、ALTER TABEL 用来创建普通索引,UNIQUE索引或者PRIMARY KEY索引
ALTER TABLE table_name ADD INDEX index_name(column_list)
ALTER TABLE table_name ADD UNIQUE index_name(column_list)
ALTER TABLE table_name ADD PRIMARY KEY (column_list)
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name t1 modufy id
ALTER TABLE table _name MODIFY id int unsigned not null auto_increment;
2.CREATE INDEX index_name ON table_name(column_list)
CREATE INDEX index_name ON table_name(column_list)
CREATE UNIQUE INDEX index_name ON table_name(column_list)
3.drop index
DROP INDEX index_name ON table_name
4.alter table table_name drop
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY (先去掉自增ALTER TABLE table _name MODIFY id int unsigned not null )
1.3 mysql 视图
创建视图
create view v_t1 as select * from t1 where id > 4 and id < 11;
drop view v_t1;
1.4 mysql 内置函数
1.CONCAT(string2 [, ...])//连接字符串
select concat ("hello ", "word") as myname;
2.LCASE(string2) //转换成小写
select lcase("MYSQL");
3.UCASE(string2) //转换成大写
select ucase("mysql");
4.LENGTH(string2) //取长度
select length("124566")
5.LTRIM(string2) // 去除前端空格
select ltrim(" 124566")
6.RTRIM(string2) // 去除后端空格
select ltrim("124566 ")
7.REPEAT(string2, count) //重复count数
select repeat("abc", 10);
8.REPLACE(str, search_str, replace); //替换
select replace("abc123", "abc", "cba");
9.SUBSTRING(str, position [,length]) // 从str的position开始去字符串,从一开始
select substring("abc12345", "5", "5")
10.SPACE(count) //生成多少个空格
select space(10);
数学函数
1.BIN(decimal_number) //十进制转二进制
select bin(192);
2.CEILING(number2) //向上取整
select ceiling(5.4);
3.FLOOR(number2) //向下取整
select floor(10.01);
4.MAX(col);//取最大值,聚合时使用
5.MIN(col);//取最小值,聚合时使用
6.SQRT(number) //开平方
7.RAND();//返回0-1内的随机数字
日期函数
1.CURDATE();
2.CURTIME();
3.NOW();
4.UNIX_TIMESTAMP(date);//返回当前date的unix时间戳
5.FROM_UNIXTIME(1459440000);返回unix时间戳的日期值
6.WEEK(date);//返回日期date为一年中的第几周
7.YEAT(date);//返回日期date的年份
8.DATEDIFF(expr, expr2);//返回起始时间expr和结束时间expr2间天数
1.5 mysql 预处理语句
设置stmt1预处理,传递一个数据作为一个where判断条件
>prepare stmt1 from 'select * from t1 where id > ?'
设置一个变量
>set @i=1;
执行stmt1预处理
>execute stmt1 using @i;
设置@i为5
>set @i=5;
删除预处理
>drop prepare stmt1;
优点:不需要每次都去请求mysql
1.6 mysql的事务处理
关闭自动提交
mysql>set autocommit=0;
>show create table t1;
>alter table t1 engine=innodb;
从t1表删除
mysql>delete from t1 where id = 7;
此时做一个p1还原点
mysql>savepoint p1;
再次从表中删除一条数据
mysql>delete from t1 where id = 6;
再做一个p1还原点
mysql>savepoint p2;
恢复到p1
mysql>rollback p1;
退回到最原始的还原点
mysql>rollback;
提交
mysql>commit;
1.7 mysql的存储
? procedure;
mysql>\d //
mysql>create procedure p1();
msyql>begin
msyql>set @i=0;
msyql>while @i<10 do
msyql>select @i;
msyql>set @i=@i+1;
msyql>end while;
msyql>end//
执行存储p1();
mysql>\d;
mysql>call p1();
查看procedures p1() 的status信息
mysql>show procedure status\G
查看procedure p1()的具体信息
mysql>show create procedure p1\G
1.8 mysql触发器
插入
修改delimiter为//
mysql>\d //
根据一个名字为tg1的触发器,向表t1表中插入数据时,就向t2表中插入一条数据
mysql>create trigger tg1 before insert on t1 for each row
mysql>begin
mysql>insert into t2(name) values(new.name);
mysql>end//
mysql>\d ;
mysql>insert into t1(name) values("user1");
删除
mysql>\d //
根据一个名字为tg1的触发器,向表t1表中删除数据时,就向t2表中删除一条数据
mysql>create trigger tg1 before delete on t1 for each row
mysql>begin
mysql>delete from t2 where name = old.name
mysql>end//
mysql>\d ;
mysql>delete from t1 where name = "user2";
修改
mysql>\d //
根据一个名字为tg1的触发器,向表t1表中修改数据时,就向t2表中修改一条数据
mysql>create trigger tg1 before update on t1 for each row
mysql>begin
mysql>update t2 set name=new.name where name = old.name
mysql>end//
mysql>\d ;
mysql>update t1 set name="username2" where name = "user2";
第一章、mysql基本操作
最新推荐文章于 2024-07-01 14:45:07 发布