MySQL常用命令

重排 auto_increment 
MYSQL 数据库自动增长的  ID 如何恢复
清空表的时候。不能用 delete from tablename;
而是要用: truncate table tablename;
这样 auto_increment   就恢复成 1
或者清空内容后直接用 ALTER 命令修改表  :
altertable tablename auto_increment =1;

一、mysql 表复制  以复制  t1 表为例
create table t2 like t1;           #  创建 t2 表,并学习  t1 的表结构
insert into t2 select * from t1;   #  复制 t1 表的数据
二、修改表
1 、修改表类型
ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
如:修改表 emp  ename  字段,将 varchar(10) 改为  varchar(20)
alter table emp modify ename varchar(20);
2 、增加表字段
ALTER TABLE tablename ADD [DOLUMN] column_definition [FIRST | AFTER col_name]
如:表 emp  上新增字段 age ,类型为  int(3);
alter table emp add column age int(3);
3 、删除表字段
ALTER TABLE tablename DROP [COLUMN] col_name
将字段 age  删除掉
alter table emp drop column age;
4 、字段改名
ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition [FIRST | AFTER col_name]
如:将 age  改名为 age1 ,同时修改字段类型为  int(4)
alter table emp change age age1 int(4);
注意: CHANGE  MODIFY  都可以修改表的定义,不同的是  change 后面需要写两次列名,不方便。但是
change 的优点是可以修改列名称,  modify 则不能。
5 、修改字段排列顺序
如:将新增的字段 birth date  加在  ename 之后。
alter table emp add birth date after ename;
2 :修改字段 age  ,将它放在最前面
alter table emp modify age int(3) first;
注意: CHANGE/FRIST|AFTER COLUMN   这些关键字都属于  MySQL 在标准  SQL 上的扩咱,在其他数据不一定适用。
6 、更改表名
ALTER TABLE tablename RENAME [TO] new_tablename
例:将表 emp  改名为 emp1
alter table emp rename emp1

三、删除记录
DELETE FROM tablename [WHERE CONDITION]
一次删除多个表的数据
DELETE t1,t2...tn FROM t1,t2...tn [WHERE CONDITION]
如:将表 emp  dept  deptno   3  的记录同时删除
delete a,b from emp a,dept b where a.deptno=b.deptno and a.deptno = 3
例子:

DELETE FROM demo WHERE H != '乌鲁木齐市'  

删除demo表中 H 字段不等于‘乌鲁木齐市’的信息,注意此时demo表中的H字段还留有为空的数据

DELETE FROM demo WHERE H != '乌鲁木齐市' OR H IS NULL 

 
四、连接查询
表连接:分为内连接和外连接
它们之间的区别:内连接仅选出两张表中互相匹配的记录,而外连接会选出其他不匹配的记录
 
其中外连接又分为左连接和右连接
左连接:包含所有的左边表的记录甚至是右边表中没有和它匹配的记录。
右连接:包含所有的右边表的记录甚至是左边表中没有和它匹配的记录。
 
现在有两张表内容如下,分别以内连接和外连接查询结果如图
SELECT * FROM emp;

SELECT * FROM dept;

内连接:
SELECT ename,deptname FROM emp,dept WHERE emp.deptno = dept.deptno
 
以左连接为例:
SELECT ename,deptname FROM emp LEFT JOIN dept ON emp.deptno=dept.deptno


五、权限管理
创建一个数据库用户 z1 ,具有对  sakila 数据库中所有表的  SELECT/INSERT 权限 
grant select,insert on sakila.* to ‘z1’@’localhost’ identified by ‘123’;
grant all on *.* to root@'%' identified by '123456';
grant select,insert,update,delete on *.* to user1@localhost Identified by "123456";
收回 z1  用户的 insert 权限
revoke insert on sakila.* from ‘z1’@’localhost’;

六、修改root密码
设置root密码

# mysqladmin -u root password "newpass"

如果root已经设置过密码,采用如下方法

# mysqladmin -u root password oldpass "newpass"

七、mysql支持远程连接

1、赋予任何主机访问数据库权限

root@ubuntu:~# mysql -uroot -p123456

mysql>grant all privileges on *.* to 'root'@'%' identified by 'password' with grant option;
mysql>flush privileges;

2、修改/etc/mysql/my.cnf

注释掉bind-addresss = 127.0.0.1

重启mysql 
service mysql restart  

八、查看当前的默认存储引擎

Show variables like ‘talbe_type’;

查看当前数据库支持的存储引擎

Show engines;

Show variables like ‘have%’;

 

其中Value显示为“DISABLED”的记录表示支持该存储引擎,但是数据库启动的时候被禁用。

查看数据表状态(包括表引擎等信息)

SHOW TABLE STATUS FROM 数据库名 WHERE NAME='数据表名';

或: mysqlshow -u 用户名 -p --status 数据库名 数据表名


show table status;

show table status like 'ct_wifi_VirtualAP%' \G;   //查看ct_wifi_VirtualAP前缀的表的状态

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值