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;

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

 

原文地址:https://www.cnblogs.com/XXXX001/p/11650131.html