MySQL-DBA运维实战-SQL2

DML

目的

		在MySQL管理软件中,DDL已经定义了数据库结构。
		那么如何对其中的数据进行管理呢?
		可以通过SQL语句中的DML语言来实现数据的操作,包括使用
			INSERT	实现数据的	插入
			DELETE	实现数据的	删除
			UPDATE	实现数据的	更新。

插入数据INSERT

		完整插入
			语法
				INSERT INTO 表名                          VALUES (值1,值2,值3…值n);
			操作
				略
		部分插入
			语法
				INSERT INTO 表名(列名,列名)  VALUES (值1,值2);
			操作
				略

更新数据UPDATE

		语法
				UPDATE   表名   SET   列名=值   WHERE   CONDITION;
		示例
			准备一张表
				mysql> create table t6(id int, name varchar(20));
				mysql> insert into t6 values (1,'aa');
				mysql> insert into t6 values (2,'bb');
			更新数据
				需求:把bb改成cc
				mysql> update   t6   set   name='cc' where id=2;
			查询结果
				mysql> select * from t6;

删除数据DELETE

		语法:
			DELETE   FROM    表名   WHERE   CONDITION;
		示例:
			需求:删除id为2 的用户记录。
			mysql> delete from t6 where id=2;
			请思考不加where条件会如何。

DQL

目的

		在MySQL管理软件中,可以通过SQL语句中的DQL语言来实现数据的
			SELECT 查询操作
			互联网用户查询余额,查询装备,查询商品的操作。

MySQL查询

		准备环境
			准备一张表,包含
				三列信息
					id  int  序号
					name  varchar  姓名
					age int  年龄
				示例
					create   table   t3   (id   int,name   varchar(20),age  int);
			再插入测试数据
				insert   into   t3   values  (1,"zhangsan",23);
				insert   into   t3   values  (2,"lisi",24);
				insert   into   t3   values  (3,"wangwu",18);
		一、简单查询
			简单查询
				查看所有列
					前提是需要进入数据库。
						不进入数据库,就请输入库名。
					SELECT    *    FROM   表名;
				查部分列
					SELECT   列1,列2,列3    FROM     表名;
		二、单条件查询
			例如:只查张三的信息
			SELECT   *     FROM    表名  	WHERE      name=‘zhangsan’;
				注意等号的右边是字母,需要加单引号
				注意等号的右边是数字,不能加引号
		三、查询排序
			例如以年龄升序排列
				SELECT    *     FROM     表名   ORDER       BY     年龄的列名     ASC;
			例如以年龄降序排列
				SELECT    *     FROM     表名   ORDER BY     年龄的列名     DESC;
		四、限制查询的记录数
			年级最长的前3名
				SELECT    *     FROM   表名    ORDER BY    年龄的列名   DESC      LIMIT  3;	  

DCL

权限级别

	1.  Global level
		所有库,所有表的权限。
	2. Database level
		某个数据库中的所有表的权限。
	3 .Table level
		库中的某个表的权限
	4. Column level
		表中的某个字段,的权限。

mysql用户管理

	1. 创建用户
		示例
			CREATE         USER          user1@'localhost'        IDENTIFIED       BY      'QianFeng@123456';
				验证
					select * from mysql.user\G;
			注释
				CREATE  创建(关键字)
				USER 用户(关键字)
				user1   用户名称(自定义)
				@ 分隔符(关键字)
				‘localhost’   允许登录的主机
				IDENTIFIED BY 身份认证(关键字)
				‘QianFeng@123456’   用户密码
	2. 删除用户
		示例
			DROP USER 'user1'@'localhost';
			操作示例
				select * from mysql.user\G;
				drop user 'user1'@'localhost';
				select * from mysql.user\G;
					或者select user from mysql.user;
	3. 修改用户密码
		root修改自己密码
			示例
				# mysqladmin      -uroot      -p'123'         password       'new_password'
					前提是拥有系统权限
						update也可以哦。不过比较复杂
							    UPDATE mysql.user SET authentication_string=password(‘new_password’)  WHERE user=’root’ AND host=’localhost’;
							    FLUSH PRIVILEGES;
					123为旧密码
			示例2
				SET PASSWORD=password('new_password');
				    FLUSH PRIVILEGES;
					刷新权限
		丢失root用户密码
			1.前言
				当root用户,忘记了密码。可以使用破解的方式来登录系统。修改密码。
				原理:使系统在启动时,不加载密码文件。
			2.修改mysql启动设置
				    # vim /etc/my.cnf
[mysqld]
skip-grant-tables
			3.重启mysql,无密码登录
				重启mysql程序
					    # systemctl    restart   mysqld
				无密码登录
					    # mysql -uroot
				修改自己的密码
					mysql>UPDATE mysql.user SET authentication_string=password('QianFeng@123456789')  where  user='root'  and  host='localhost';
					mysql> FLUSH PRIVILEGES;
			4.修改mysql启动设置
				注释掉跳过密码
	4. 登录MySQL
		mysql   -P 3306 -u root -p123 mysql -e ‘show tables’
			    -h	指定主机名                       【默认为localhost】
		    -P	MySQL服务器端口              【默认3306】    大P
		    -u	指定用户名                       【默认root】
		    -p	指定登录密码                    【默认为空密码】
		此处mysql为指定登录的数据库 
		    -e	接SQL语句
		示例
			免登录查询数据库
				mysql -uroot -p'QianFeng@123' -hlocalhost -P 3306 mysql -e 'show tables'

mysql权限原理

	语法格式
		 grant 权限列表  on 库名.表名 to '用户名'@'客户端主机'  [identified by '密码'  with option参数];
		==权限列表
			all: 所有权限(不包括授权权限)
			select,update	 查询更新
		==数据库.表名
			*.*
				所有库下的所有表
			web.*
				web库下的所有表
			web.stu_info
				web库下的stu_info表
			grant SELECT (id), INSERT (name,age) ON mydb.mytbl to 'user8'@'localhost' identified by 'QianFeng@123'; 
				     Column level
		==客户端主机
			 %
				所有主机
			192.168.2.%		    192.168.2.0网段的所有主机
			192.168.2.168		    指定主机
			localhost                指定主机
		==with_option参数
			    GRANT OPTION
				授权选项

mysql权限示例

	赋予权限
		授权目标
			授予admin3 对bbs库 所有的表,具有所有权限(不包含授权)
			GRANT ALL ON bbs.* TO admin3@'%' IDENTIFIED BY 'QianFeng@13910604684';
		赋权示例
			1.准备测试账户
				root账户创建
					CREATE USER admin3@'%' IDENTIFIED BY 'QianFeng@123';
			2.授权账户
				root账户授权
					GRANT ALL ON bbs.* TO admin3@'%' IDENTIFIED BY 'QianFeng@13910604684';
			3.使用测试账户操作数据库
				[root@localhost ~]# mysql -uadmin3 -p'QianFeng@123'
				mysql> create database bbs;
				试试创建别的库
					mysql> create database bba;
					ERROR 1044 (42000): Access denied for user 'admin3'@'%' to database 'bba'
				进入bbs库,创建数据表和插入数据。
					授权验证完毕
	回收权限
		查看权限
			查看自己的权限
				SHOW GRANTS\G
			查看别人的权限
				SHOW GRANTS FOR admin3@'%'\G
		回收权限REVOKE
			语法
				REVOKE 权限列表 ON 数据库名 FROM 用户名@‘客户端主机’
			示例
				    REVOKE ALL PRIVILEGES  ON bbs.*  FROM admin3@’%’;  		                    //回收所有权限
		删除用户的版本问题
			5.6之前,先   revoke all privilege        再  drop user
			5.7之后,直接	drop user
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值