MySql学习笔记----简单命令

来源:互联网 发布:实体店怎么加入淘宝 编辑:程序博客网 时间:2024/04/28 02:10

操作数据库

  1. 显示数据库列表

    show databases;

  2. 显示库中的数据表:

    use mysql;
    show tables;

  3. 显示数据表的结构:

    describe 表名;

  4. 建库与删库:

    create database 库名;
    drop database 库名;

  5. 建表:

    use 库名;
    create table 表名(字段列表);

create table test(    id int(4) not null primary key auto_increment,    name char(20) not null,    degree double(16,2));
  1. 删除表中的所有行,而不记录单个行删除操作

    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则不会被撤销。

  2. 清空表中记录:

    delete from 表名;

  3. 清除某条记录

    delete from 表名 where id=n

  4. 表插入数据

    insert into 表名(字段名) values(1,’Tom’,96.45);

  5. 修改表中数据

    update 表名 set name=’Mary’ where id=1;

  6. 增加字段

    alter table 表名 add 类型

  7. 修改字段

    alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];
    alter table 表名称 modify 字段名称 字段类型 [是否允许非空];

  8. 查看日志开启情况

    show variables like ‘log_%’;

mysql权限机制

第一阶段:服务器首先会检查你是否允许连接。因为创建用户的时候会加上主机限制,可以限制成本地、某个IP、某个IP段、以及任何地方等,只允许你从配置的指定地方登录。
第二阶段:如果你能连接,MYSQL会检查你发出的每个请求,看你是否有足够的权限实施它。比如你要更新某个表、或者查询某个表,MYSQL会检查你对哪个表或者某个列是否有权限。再比如,你要运行某个存储过程,MYSQL会检查你对存储过程是否有执行权限等。

  1. 查看所有用户
mysql> select distinct concat('User: ''',user,'''@''',host,''';') as query from mysql.user;

select * from mysql.user;

  1. 创建一个超级用户

    grant all privileges on * .* to user1@’localhost’ identified by ‘1234’ WITH GRANT OPTION;

  2. 指定一个网段

    grant all privileges on * .* to user2@’192.168.1.%’ identified by ‘1234’;

  3. 刷新权限

    flush privileges
    使用这个命令使权限生效,尤其是对那些权限表user、db、host等做了update或者delete更新的时候。

  4. 查看用户权限

    show grants for ‘user1’@’localhost’;

  5. 回收权限

    revoke delete on * .* from ‘user1’@’localhost’;

  6. 删除用户,并除去对应权限

    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取消它.

1 0