操作数据库
显示数据库列表
show databases;
显示库中的数据表:
use mysql;
show tables;显示数据表的结构:
describe 表名;
建库与删库:
create database 库名;
drop database 库名;建表:
use 库名;
create table 表名(字段列表);
create table test(
id int(4) not null primary key auto_increment,
name char(20) not null,
degree double(16,2));
删除表中的所有行,而不记录单个行删除操作
TRUNCATE TABLE name
ps: TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。
对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
TRUNCATE TABLE 不能用于参与了索引视图的表。
如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。清空表中记录:
delete from 表名;
清除某条记录
delete from 表名 where id=n
表插入数据
insert into 表名(字段名) values(1,’Tom’,96.45);
修改表中数据
update 表名 set name=’Mary’ where id=1;
增加字段
alter table 表名 add 类型
修改字段
alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];
alter table 表名称 modify 字段名称 字段类型 [是否允许非空];查看日志开启情况
show variables like ‘log_%’;
mysql权限机制
第一阶段:服务器首先会检查你是否允许连接。因为创建用户的时候会加上主机限制,可以限制成本地、某个IP、某个IP段、以及任何地方等,只允许你从配置的指定地方登录。
第二阶段:如果你能连接,MYSQL会检查你发出的每个请求,看你是否有足够的权限实施它。比如你要更新某个表、或者查询某个表,MYSQL会检查你对哪个表或者某个列是否有权限。再比如,你要运行某个存储过程,MYSQL会检查你对存储过程是否有执行权限等。
- 查看所有用户
mysql> select distinct concat('User: ''',user,'''@''',host,''';') as query from mysql.user;
或
select * from mysql.user;
创建一个超级用户
grant all privileges on * .* to user1@’localhost’ identified by ‘1234’ WITH GRANT OPTION;
指定一个网段
grant all privileges on * .* to user2@’192.168.1.%’ identified by ‘1234’;
刷新权限
flush privileges
使用这个命令使权限生效,尤其是对那些权限表user、db、host等做了update或者delete更新的时候。查看用户权限
show grants for ‘user1’@’localhost’;
回收权限
revoke delete on * .* from ‘user1’@’localhost’;
删除用户,并除去对应权限
drop user ‘user1’@’localhost’;
GRANT命令说明:
ALL PRIVILEGES 是表示所有权限,你也可以使用select、update等修改权限。
ON 用来指定权限针对哪些库和表。
. 中前面的号用来指定数据库名,后面的号用来指定表名。
to 表示将权限赋予某个用户。
user@’localhost’ 表示本地用户,@后面接限制的主机,可以是IP、IP段、域名以及%,%表示任何地方。注意:这里%有的版本不包括本地,以前碰到过给某个用户设置了%允许任何地方登录,但是在本地登录不了,这个和版本有关系,遇到这个问题再加一个localhost的用户就可以了。
IDENTIFIED BY 指定用户的登录密码。
WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。注意:经常有人在创建操作用户的时候不指定WITH GRANT OPTION选项导致后来该用户不能使用GRANT命令创建用户或者给其他用户授权。
ps:如果你决定不想执行正在输入过程中的一个命令,输入\c取消它.