mysql-操作篇

# ### mysql
ctrl + l 清屏
ctrl + c 终止
[linux]
service mysql start 启动mysql
service mysql stop 停止mysql
service mysql restart 重启mysql

[windows] 在超级管理员权限下才能使用
net start mysql 启动mysql
net stop mysql 停止mysql

# ### part1
mysql -u用户名 -p密码 -hip地址

# (1) 登录到本地mysql 默认root 是最高权限账户
mysql -uroot -p123456
localhost => 127.0.0.1 本地IP地址
# (2) 退出mysql
exit 或者 q 退出
# (3) 远程连接mysql 服务器
mysql -uroot -p -h192.168.80.135

# ### part2
# 查询当前登录用户是谁
select user()
# 设置密码
set password = password("123456");
# 去除密码
set password = password("");


# ### part3
# mysql 创建用户 192.168.80.135
create user "ceshi01"@"192.168.111.222" identified by "111"; # 给具体某个ip设置账户(一般是公网ip)
create user "ceshi02"@"192.168.111.%" identified by "222"; # 给具体某个网段下的所有ip设置一个账户
create user "ceshi03"@"%"; # 所有ip都能登录,不需要密码

# 通过windows链接linux的mysql ,要通过vnet8 nat模式下的ip创建用户才可使用
create user "ceshi04"@"192.168.80.1" identified by "333";

# 查看用户权限
show grants for "ceshi03"@"%";
# GRANT USAGE ON *.* TO 'ceshi03'@'%' | USAGE 无任何权限
grant 权限 on 数据库.表名 to "用户名"%"ip地址" identified by "密码";
"""
# 权限:
select 查询数据库的权限
insert 插入数据库的权限
update 更新数据库的权限
delete 删除数据库的权限
* 代表所有
G 代表垂直分布查看
"""

grant select on *.* to "ceshi03"@"%" identified by "222"
# all 代表所有的权限
grant all on *.* to "ceshi03"@"%" identified by "222"
# 查看所有数据库
show databases
# 移除权限
revoke select on *.* from "ceshi03"@"%"
# 删除账户
drop user "ceshi03"@"%";
# 刷新权限
flush privileges

# ### part4
"""
linux
sudo find / -name db1
sudo su root 切换到root用户才可以
cd /var/lib/mysql
能看到对应的数据库
"""
# (1) 操作[数据库] (文件夹)

# 创建数据库
create database db1 charset utf8;

# 查看数据库
show databases
# 查看数据库的建库语句
show create database db1

# alter 更改数据库的字符集
alter database db1 charset gbk

# 删除数据库db1
drop database db1;

# (2) 操作[数据表] (文件)
"""选择使用哪个数据库创建表 use 数据库名称 """

# int 整型 char字符
# 字段名1 类型1 , 字段名2 类型2 ...
create table t1(id int , name char)

# 查询所有数据表
show tables
# 查看建表语句
show create table t1;
"""
CREATE TABLE `t2` (
`id` int(11) DEFAULT NULL,
`name` char(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
"""
# 查看表结构
desc t1

# modify 只能改变数据类型
alter table t1 modify name char(5)
# change 连带字段名和数据类型一起改变
alter table t1 change name NAME char(4)
alter table t1 change NAME name char(5)
# add 添加字段
alter table t1 add age int;
# drop 删除字段 column 列
alter table t1 drop column age;
# rename 更改表名
alter table t1 rename t1_1;


# 删除表t1_1
drop table t1_1

# (3) 操作记录 (文件内容)
"""mysql null 相当于 python None"""
增:
# 一次插入一条数据
insert into t1(id,name) values(1,"xboy1")
# 一次插入多条数据
insert into t1(id,name) values(2,"xboy2"),(3,"xboy3"),(4,"xboy4")
# 不指定具体字段,默认把所有字段值插入一遍
insert into t1 values(5,"xboy5")
# 可以具体指定某个字段进行插入
insert into t1(name) values("xboy6")

查:
# * 代表所有
select * from t1;
select id,name from t1;

改:
# update 表名 set 字段=值 where 条件
update t1 set name = "王文" where id = 1
# 如果不加条件,所有数据都改了
update t1 set name = "王文"

删:
# 删除id为1的这条数据
delete from t1 where id = 2
delete from t1
# 重置数据表 (包括重置id)
truncate table t1;

原文地址:https://www.cnblogs.com/zyling/p/11938692.html