mysql四:数据操作
一、介绍
MySQL数据操作: DML
========================================================
在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括
- 使用INSERT实现数据的插入
- UPDATE实现数据的更新
- 使用DELETE实现数据的删除
- 使用SELECT查询数据以及。
========================================================
二、插入数据INSERT
1. 插入完整数据(顺序插入) 语法一: INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n); 语法二: INSERT INTO 表名 VALUES (值1,值2,值3…值n); 2. 指定字段插入数据 语法: INSERT INTO 表名(字段1,字段2,字段3…) VALUES (值1,值2,值3…); 3. 插入多条记录 语法: INSERT INTO 表名 VALUES (值1,值2,值3…值n), (值1,值2,值3…值n), (值1,值2,值3…值n); 4. 插入查询结果 语法: INSERT INTO 表名(字段1,字段2,字段3…字段n) SELECT (字段1,字段2,字段3…字段n) FROM 表2 WHERE …;
往一张表里插记录可以用select代替values,把查的结果直接传给表相应的字段,查出来的结果必须和表的字段一一对应。
三、更新数据UPDATE
语法: UPDATE 表名 SET 字段1=值1, 字段2=值2, WHERE CONDITION; 示例: UPDATE mysql.user SET password=password(‘123’) where user=’root’ and host=’localhost’;
更新mysql库下的user表,设置字段password=password('123'),用来将密码加密,where指定需要改掉密码的记录,用户为root且地址为localhost的记录。定位到记录后,把符合条件的password都进行修改。
四、删除数据DELETE
语法: DELETE FROM 表名 WHERE CONITION; 示例: DELETE FROM mysql.user WHERE password=’’; 练习: 更新MySQL root用户密码为mysql123 删除除从本地登录的root用户以外的所有用户
删除符合条件的一些记录用delete。
如果要删除整张表,可以用truncate。# 应该用truncate清空表,比起delete一条一条地删除记录,truncate是直接清空表,在删除大表时用它。
语法: truncate 表名; 示例: truncate student1;
五、查询数据SELECT
单表查询:http://www.cnblogs.com/xiugeng/p/9028541.html
多表查询:http://www.cnblogs.com/xiugeng/p/9030720.html
六、权限管理和Navicat工具
1、权限管理
授权:对文件夹,对文件,对文件某一字段的权限。授权操作只能通过root用户!!
查看帮助:help grant
常用权限有:select,update,alter,delete all可以代表除了grant之外的所有权限。
#授权操作只能通过root用户!!
set global validate_password_policy=0;
set global validate_password_length=1;
# 安全设置问题,查看这个:http://www.jb51.net/article/95399.htm
创建账号:
# 本地账号
create user 'egon'@'localhost' identified by '1234'; # mysql -uegon -p123
# 远程账号
create user 'egon'@'192.168.31.10' identified by '1234'; # mysql -uegon -p123 -h 服务端ip
# 让一个网段内所有机器都可以登录
create user 'egon'@'192.168.31.%' identified by '1234';
# 让所有能Ping通机器都可以登录
create user 'egon'@'%' identified by '1234';
授权级别
user:*.* 对所有库所有表
db:db1.* 对db1库里所有表
table_priv:db1.t1 对某一个表开放权限
columns_priv:id,name 对某一个字段开放权限
授权方法
# user级别 select * from mysql.user\G;可以查看授权情况
# 授权
grant select on *.*; 授权所有库所有表的select
grant select on *.* to 'egon'@'localhost';
grant all on *.* to 'egon'@'localhost'; 授权对所有库下所有表的权限(all不包含grant权限)
# 收回权限
revoke select on *.* from 'egon'@'localhost';
# db级别 select * from mysql.db\G;可以查看授权情况
# 授权
grant selcect on db1.* to 'egon'@'localhost';
# 收回权限
revoke select on db1.* from 'egon'@'localhost';
# table select * from mysql.tables_priv\G;查看授权情况
# 授权
grant select on db1.t2 to 'egon'@'localhost';
# 收回权限
revoke select on db1.t2 from 'egon'@'localhost';
# 字段级别
# 授权
grant select(id,name), update(age) on db1.t2 to 'egon'@'localhost'; # 字段的查看、字段的更新权限
# 收回权限
revoke select(id,name),update(age) from db1.t2 to 'egon'@'localhost';
2、Navicat
在生产环境中操作MySQL数据库还是推荐使用命令行工具mysql,但在我们自己开发测试时,可以使用可视化工具Navicat,以图形界面的形式操作MySQL数据库
官网下载:https://www.navicat.com/en/products/navicat-for-mysql
网盘下载:https://pan.baidu.com/s/1bpo5mqj
需要掌握的基本操作
掌握:
#1. 测试+链接数据库
#2. 新建库
#3. 新建表,新增字段+类型+约束
#4. 设计表:外键
#5. 新建查询
#6. 备份库/表
#注意:
批量加注释:ctrl+?键
批量去注释:ctrl+shift+?键