高速写mysql_MySQL高速掌握之基础篇

mysql快速掌握之基础篇

-- mysql的复习与进阶

-- 创建一个结构完整的表

create table tab1(

id int(5) not null auto_increment primary key comment "这是ID",

name varchar(20) not null default "ran",

age int(2) not null

);

-- 在id不能加default

-- 复制表

create table tab2 select * from tab1;

-- 只复制结构,不复制内荣

create table tab2 like tab1;

-- 增加字段

alter table tab1 add sex varchar(2) not null;

-- 删除字段

alter table tab1 drop sex;

-- 修改字段

alter table tab1 change name myname varchar(20) not null;

-- 增加主键

alter table tab1 primary key (id);

-- 修改表明

alter table tab1 rename to tab11;

-- 插入数据

insert into tab1 values(null,"zhangran","23");

-- 查询数据

-- limit

select * from tab1 limit 1;

-- 从第一个开始显示,显示一个

select * from tab1 limit 1,1;

-- 排序

--order by asc|desc

select * from tab1 order by name asc;

-- 更新数据

update tab1 set name="zhangranran",age="111" where name="zhangran" [order by][limit]

-- 删除数据

delete from tab1 where name="zhangran";

-- 此处要注意一点,truncated也可以当delete使用,而且比delete要快,是一种数据定义语言,但是不能摆正数据的安全性

-- truncated之后的自增长是重新开始的。

-- 连接

-- 交叉连接

select * from tab1,tab2;

-- 所有的都能查出来,冗余的部分特别多

-- 内连接

select tab1.name,tab2.myname from tab1 join tab2 on tab1.id=tab2.id;

-- 加一个别名select * from tab1 a join tab2 b where tab1.id=tab2.id;

-- 左连接跟右连接此处略了啊

-- 自连接

-- 需要加一个别名

select a.name,b.name from tab1 a,tab1 b where a.id=b.id;

-- 子查询

select * from tab1 where name=(select name from tab2 where name="zhangran");

-- 子查询做派生表

select * e.name from (select name from tab2) as e;

-- 查询中的IN应用

select * from tab1 where name in(select name from tab2);

-- exists的使用,此时子查询作为条件,如果有返回值说明是真,无返回值是假

select * from tab1 where exists (select name from tab1 where id=1);

-- 事务处理

-- 把几条语句作为一个整体

-- 每一个都执行成功了才算是事务的成功处理

-- 否则返回最初状态

start transaction

insert into tab1 values(null,"zhangdayi",22);

update tab1 set age=11 where name="zhangdayi";

commit

-- 想要撤销这个事务

rollback

-- MySQL管理

-- 数据备份

-- 用户权限

-- 访问控制

-- 性能优化

-- 数据备份

-- 备份某个数据库的一个表

mysqldump -u root -p111111 wangluo tab1 >D:/mysql.sql

-- 备份某个数据库里面的所有的表

mysqldump -u root -p111111 wangluo >D:/mysql.sql

-- 一次性备份多个数据库

mysqldump -u root -p111111 --database db1 db2 >D:/mysql1.sql

-- 需要特别注意的是database是单数而且它的前面是双横杠

-- 将数据库中的所有的表备份

mysqldump -u root -p111111 --all --database >D:/mysql2.sql

-- 用户的权限及访问控制

-- 简单的举两个例子

grant all privileges on *.* to 'newuser' identified by '111111' with grant option;

grant update,select on *.* to 'newuser' identified by '111111';

-- 性能优化

-- 加索引,在查询操作时优化

-- 优化数据库服务

mysql -verbose -help

-- 记住,该指令不是在mysql环境下输入的是在cmd下输入的

-- MySQL的基础知识大概就这么多,关键是勤练,多琢磨,以后记得常回过头来看看!!!!!!!!!!!!!!!!!!!!

原创文章,转载请注明: 转载自搞代码

e7ce419cf2d6ad34d01da2ceb8829eed.png

微信 赏一包辣条吧~

023a57327877fb4402bcc76911ec18ea.png

支付宝 赏一听可乐吧~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值