zoukankan      html  css  js  c++  java
  • MYSQL语句及客户端工具

     

    sql语句分类:

    1.数据定义语言(DDL)

    创建、修改或删除数据库中各种对象,包括表、视图、索引等

    命令:CREATE TABLE (创建表) , CREATE VIEW(创建视图), CREATE INDEX(创建索引) 、ALTER TABLE (后期修改表属性),DROP TABLE(删除) , DROP VIEW(删除视图), DROP INDEX (删除索引)

    2.查询语言(DQL)

    按照指定的组合、条件表达式或排序检索已存在的数据库中数据,

    不改变数据库中数据。

    命令:SELECT…FROM…WHERE…

    3.数据操纵语言(DML)

    对已经存在的数据库进行元组的插入、删除、修改等操作

    命令:INSERT (向表里插入新的数据局) 、UPDATE(更新表中的数据)、DELETE (删除表内数据)

    4.数据控制语言(DCL)

    用来授予或收回访问数据库的某种特权、

    控制数据操纵事务的发生时间及效果、对数据库进行监视

    命令:GRANT(授权)、REVOKE(回收权限)、COMMIT(事务提交)、ROLLBACK (回滚 )

    ======================================================================================

    设置数据库初始密码:

     mysqladmin  -u  root password '123456'

    后期修改数据库用户的密码:

    [root@localhost ~]# mysqladmin  -u  root -p旧的密码 password '新的密码'

    [root@localhost ~]# mysqladmin  -u  root -p'TvC:Rm1ZlxtG' password '123456'

     mysql破解root管理员密码:

    systemctl stop mariadb  //关闭应用服务

    netstat -lnpt | grep 3306  //查询端口查看是否还有存在服务

    mysqld_safe --skip-grant-tables &  //跳过加载授权过程

    mysql  //连接mysql

    update mysql.user set authentication_string=password('000000') where user='root';  //将root密码改为000000

    flush privileges;  //刷新授权表

    exit  //退出(p也可退出)

    通过ps查看mysqld进程,并杀死所有进程

    systemctl stop mysqld

    systemctl start mysqld

    mysql -u root -p123abc

    显示当前连接用户:

    select user();

    查看数据库服务的基本信息:

    status

    mysql是一套关系型数据库管理系统,在每台mysql服务器中,均支持运行多个数据库(文件系统的目录)(分类、按照产品划分)。每个库相当于一个容器,其中存放着许多数据表,表中的每一行包含一条具体的数据关系信息,这些信息被称为数据记录。
    数据库的基本概念:

    数据

    描述事物的符号记录称为数据(Data)

    包括数字,文字、图形、图像、声音、档案记录等

    以“记录”形式按统一的格式进行存储

    数据表

    将不同的记录组织在一起,就形成了 “表”

    是用来存储具体数据的

    数据库

    数据库就是表的集合,是存储数据表的仓库

    以一定的组织方式存储的相互有关的数据

     查看当前服务器中有哪些库:

    show databases;

    切换数据库:

    use mysql;

     显示当前操作的数据库:

    select database();

     查看有哪些表:

      show tables;  //在mysql下执行

      mysql数据库的数据文件存放在/usr/local/mysql/data中,每个子目录对应一个数据库。在mysql存储引擎时每个表对应三个文件夹。

    [root@localhost ~]# ls /usr/local/mysql/data/mysql |grep ^user

    user.frm 表的结构定义

    user.MYD 表的数据

    user.MYI 表的索引

    显示数据库的结构(字段(列)):

    DESCRIBE  [数据库名.]表名 = desc

    describe user;

      describe mysql.user;

     创建新的数据库:

    create database crushlinux;

     删除指定的数据库:(谨慎使用)

    DROP DATABASE 数据库名

    drop database crushlinux;

     创建新的数据表:

    CREATE TABLE 表名 (字段1名称 类型,字段2名称 类型,……primary key(字段名称));

    用户名不超过16字节的字符串,不能为空;密码字串不能超过48个字符,插入记录时使用MySQL函数加密,默认值为空;考虑到查询的主要用户名不能重复,因此将user_name这列设置为主键。

    CREATE TABLE users (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', PRIMARY KEY (user_name));

    删除指定的数据表:

    drop table 表名;

    drop table users;

    向数据表中插入新的数据记录:

    INSERT INTO 表名(字段1, 字段2, ……)  VALUES(字段1的值, 字段2的值, ……) ;

     INSERT INTO users(user_name,user_passwd) VALUES('zhangsan', PASSWORD('123456')

    INSERT INTO users VALUES('lisi', PASSWORD('654321'));

    select * from users;

    );

     从数据表中查询符合条件的数据记录:

    SELECT 字段名1,字段名2 ……  FROM 表名 WHERE 条件表达式

     SELECT user_name,user_passwd FROM users where user_name= 'zhangsan';

     修改、更新数据表中的数据记录:

    UPDATE 表名 SET 字段名1=新值1[,字段名2=新值2]  WHERE 条件表达式;

     在数据库中修改root用户密码:

    select user,authentication_string,host from mysql.user;

    update user set password=password('000000') where user='root'; 

     flush privileges;  //刷新授权表后退出,密码修改完毕

     在数据表中删除指定的数据记录:

    DELETE FROM 表名 WHERE 条件表达式;

    DELETE FROM users WHERE user_name='lisi';

     设置用户权限(用户不存在时,则自动建立新的用户):

    GRANT 权限列表 ON 数据库名.表名 TO 用户名@来 源地址[ IDENTIFIED BY ‘密码’ ];

    权限列表:用于列出授权的各种数据库操作,通过逗号进行分割,如:select,insert,update等,all表示所有权限,可以执行任意操作。

     库名.表名:用于指定授权操作的数据库和表的名称,可以使用通配符(*)表示所有

     用户名@来源地址:用于指定用户和允许访问的客户机地址;来源地址可以是IP地址,域名,%通配符表示所有(但不能表示localhost

    MySQL通配符:

     _:任意单个字符  192.168.1._(表示1-9)

     %:任意长度的任意字符 192.168.1.%(表示1网段的都可以)

    GRANT select ON crushlinux.* TO 'wangermazi'@'localhost' IDENTIFIED BY '123456';

     

     只是可以查的权限,不可修改。

    查看用户权限:

    SHOW GRANTS FOR 用户名@域名或IP

     SHOW GRANTS FOR 'wangermazi'@'localhost'; 

     撤销用户权限:

    REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@域名或IP

    revoke select on crushlinux.* from 'wangermazi'@'localhost';

     用于显示广泛的服务器状态信息:

    show status;

    查看命令的帮助:

    help create database

    help create table

    查看当前登录用户:

    show grants;

    show grants for 名字;  //查看某一个人的

    显示服务器错误或警告信息:

    show errors

    show warnings

    显示当前时间:

    select now();

     显示当前用户及时间:

    select CURRENT_USER(),CURRENT_TIMESTAMP;

    select user(),now(); 

    授权Windows客户机地址拥有访问权限:

     grant all on *.* to 'root'@'192.168.96.1' IDENTIFIED BY '123456';  //授予了一个所有库所有表的一个管理员权限

      flush privileges;

    如果连接不上关闭防火墙即可

     

  • 相关阅读:
    14_java之变量|参数|返回值|修饰符
    NYOJ 202 红黑树 (二叉树)
    NYOJ 138 找球号(二) (哈希)
    NYOJ 136 等式 (哈希)
    NYOJ 133 子序列 (离散化)
    NYOJ 129 树的判定 (并查集)
    NYOJ 117 求逆序数 (树状数组)
    NYOJ 93 汉诺塔 (数学)
    HDU 2050 折线分割平面 (数学)
    天梯赛L2-008 最长对称子串 (字符串处理)
  • 原文地址:https://www.cnblogs.com/XXXX001/p/11650131.html
Copyright © 2011-2022 走看看