社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

开发者必备Mysql命令

MacroZheng • 4 年前 • 386 次点击  
阅读 38

开发者必备Mysql命令

摘要

开发者必备Mysql常用命令,涵盖了数据定义语句、数据操纵语句及数据控制语句,基于Mysql5.7。

数据定义语句(DDL)

数据库操作

  • 登录数据库:
mysql -uroot -proot
复制代码
  • 创建数据库:
create database test
复制代码
  • 查看所有数据库:
show databases
复制代码

展示图片

  • 选择数据库并使用:
use test
复制代码
  • 查看所有数据表:
show tables
复制代码
  • 删除数据库:
drop database test
复制代码

表操作

  • 创建表:
create table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2))  
复制代码
create table dept(deptno int(2),deptname varchar(10))
复制代码

展示图片

  • 查看表的定义:
desc emp
复制代码

展示图片

  • 查看表定义(详细):
show create table emp \G
复制代码

展示图片

  • 删除表:
drop table emp
复制代码
  • 修改表字段:
alter table emp modify ename varchar(20)
复制代码
  • 添加表字段:
alter table emp add column age int(3)
复制代码
  • 删除表字段:
alter table emp drop column age
复制代码
  • 字段改名;
alter table emp change age age1 int(4)
复制代码
  • 修改表名:
alter table emp rename emp1
复制代码

数据操纵语句(DML)

插入记录

  • 指定名称插入:
insert into emp (ename,hiredate,sal,deptno) values ('zhangsan','2018-01-01','2000',1)
复制代码
  • 不指定名称插入:
insert into emp values ('lisi','2018-01-01','2000',1)
复制代码
  • 批量插入数据:
insert into dept values(1,'dept1'),(2,'dept2')
复制代码

修改记录

update emp set sal='4000',deptno=2 where ename='zhangsan'
复制代码

删除记录

delete from emp where ename='zhangsan'
复制代码

查询记录

  • 查询所有记录:
select * from emp
复制代码
  • 查询不重复的记录:
select distinct deptno from emp
复制代码
  • 条件查询:
select * from emp where deptno=1 and sal<3000
复制代码
  • 排序和限制:
select * from emp order by deptno desc limit 2
复制代码
  • 分页查询(查询从第0条记录开始10条):
select * from emp order by deptno desc limit 0,10
复制代码
  • 聚合(查询部门人数大于1的部门编号):
select deptno,count(1) from emp group by deptno having count(1) > 1
复制代码
  • 连接查询:
select * from emp e left join dept d on e.deptno=d.deptno
复制代码
  • 子查询:
select * from emp where deptno in (select deptno from dept)
复制代码
  • 记录联合:
select deptno from emp union select deptno from dept
复制代码

数据控制语句(DCL)

权限相关

  • 授予操作权限(将test数据库中所有表的select和insert权限授予test用户):
grant select,insert on test.* to 'test'@'localhost' identified by '123'
复制代码
  • 查看账号权限:
show grants for 'test'@'localhost'
复制代码

展示图片

  • 收回操作权限:
revoke insert on test.* from 'test'@'localhost'
复制代码

展示图片

  • 授予所有数据库的所有权限:
grant all privileges on *.* to 'test'@'localhost'
复制代码
  • 授予所有数据库的所有权限(包括grant):
grant all privileges on *.* to 'test'@'localhost' with grant option
复制代码
  • 授予SUPER PROCESS FILE权限(系统权限不能指定数据库):
grant super,process,file on *.* to 'test'@'localhost'
复制代码
  • 只授予登录权限:
grant usage on *.* to 'test'@'localhost'
复制代码

帐号相关

  • 删除账号:
drop user 'test'@'localhost'
复制代码
  • 修改自己的密码:
set password = password('123')
复制代码
  • 管理员修改他人密码:
set password for 'test'@'localhost' = password('123')
复制代码

其他

字符集相关

  • 查看字符集:
show variables like 'character%'
复制代码

展示图片

  • 创建数据库时指定字符集:
create database test2 character set utf8
复制代码

展示图片

时区相关

  • 查看当前时区(UTC为世界统一时间,中国为UTC+8):
show variables like "%time_zone%"
复制代码

展示图片

  • 修改mysql全局时区为北京时间,即我们所在的东8区:
set global time_zone = '+8:00';
复制代码
  • 修改当前会话时区:
set time_zone = '+8:00'
复制代码

展示图片

  • 立即生效:
flush privileges
复制代码

公众号

mall项目全套学习教程连载中,关注公众号第一时间获取。

公众号图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/34558
 
386 次点击