MySQL数据库常用命令大全(完整)(表格形式)
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
本文目录
注意sql语句以分号结尾分号是英文的分号mysql是不见“;”不执行“;”表示结束 \c用来终止一条命令的输入。
本地登录相关命令
本地登录 | mysql -uroot -p密码 |
---|
本地登录隐藏密码的形式 | mysql -uroot -p 然后回车输入密码 |
mysql服务启动和关闭
关闭 | net stop 服务名称; |
---|
启动 | net start 服务名称; |
数据库相关命令
查看有哪些数据库 | show databases; |
---|
选择使用某个数据库 | use 数据库名; |
创建数据库 | create database 数据库名字; |
创建数据库并且指定字符编码 | create database 数据库名字 charset=utf8; |
删除数据库 | drop database 数据库名字; |
查看当前使用的是哪个数据库 | select database(); |
查看mysql数据库的版本号 | select version(); |
导入数据库表先进到某个数据库下 | source 文件路径; 路径不要出现中文 |
查看某个数据库下有哪些表 | show tables; |
查看表的结构 | desc 表名; //第一列都是字段名 |
增删改查等相关命令
查询一个、多个、所有字段
查询一个字段(列) | select 字段名 from 表名; //字段也就是列那一列的内容 |
---|
查询多个字段 | select 字段名1,字段名2,字段名3 from 表名; //中间用逗号隔开 |
查询所有字段 | 方式1select * from 表名; |
查询所有字段 | 方式2select 字段名1,字段2…. from 表名; |
列(字段)起别名和参与数学运算
列(字段)起别名 | select 字段名 as 新名字 from 表名; 注意as只作用于左边那一个字段。as可以用空格代替;起的别名有空格要用单引号。别名是中文要用单引号括起来新版已经不需要括起来了。 |
---|
字段(列)参与数学运算 | 例如select 字段名*12 from 表名; //注意只作用于那次查询不会对源数据修改。//结论字段可以使用数学表达式 |
条件查询和多字段排序
条件查询 | select 字段n from 表名 where 条件; 注意条件有 = , !=<> , < , <= , > , >= , between…and\等同于<=and<= , is null\is not null , and , or , in , not , like |
---|
多个字段排序 | select 字段名 from 表名 order by 要排序的字段名 排序方式 , 要排序的字段名 排序方式; 注意排序字段名在前起主导只有前面的相等的时候才会考虑启用后面的排序 |
表的创建
表的创建 | create table 表名(字段名1 数据类型, 字段名2 数据类型, 字段名3 数据类型); // default可以设置默认值 例如 sex char(1) default ‘m’, |
---|
表的删除
表的删除 | drop table 表名; // 当这张表不存在的时候会报错 |
---|
表的删除 | drop table if exists 表名;// 如果这张表存在的话删除。不会有报错的风险 |
查看建表语句
查看建表语句 | show create table 表名; |
---|
insert 插入数据
insert 插入数据 | insert into 表名(字段名1,字段名2,字段名3…) values(值1,值2,值3);注意字段名和值要一一对应。什么是一一对应数量要对应。数据类型要对应。 //注意除了数字其他都要加单引号 |
---|
insert 插入多条数据 | 语法insert into 表名(字段名1,字段名2) values(),(),(),(); |
update修改数据
update修改数据 | update 表名 set 字段名1=值1,字段名2=值2,字段名3=值3… where 条件;注意没有条件限制会导致所有数据全部更新。 |
---|
delete删除数据
delete删除数据 | delete from 表名 where 条件;注意没有条件整张表的数据会全部删除 |
---|
快速删除表中的数据 | truncate table 表名; |
指定存储引擎
在建表的时候可以在最后小括号的")"的右边使用 | ENGINE来指定存储引擎CHARSET来指定这张表的字符编码方式。 |
---|
约束相关命令
非空约束 | not null |
---|
唯一性约束 | unique |
主键约束 | primary key 简称PK |
外键约束 | foreign key简称FK |
单行处理函数相关命令
单行处理函数 | 使用方法 也可以用在where条件里面 |
---|
lower 转换成小写 | select lower(字段名) from 表名; |
upper 转换成大写 | select upper(字段名) from 表名; |
substr 取子串 | select substr(被截取的字符串 ,起始下标,截取长度) from 表名 ;//注意起始下标从1开始。 |
concat 字符串拼接 | select concat(字段名,字段名) from 表名; |
length 获取长度 | select length(字段名) from 表名; |
format 设置千分位 | format(数字, ‘格式’) 例如:select ename,format(sal, ‘$999,999’) as sal from emp; |
round 四舍五入 | ect round(字段名,0) from 表名; //可以不写字段名写数字那么它就对这个数字进行四舍五入而且还是借助表名的结构输出。后面是0表示保留一位小数2表示保留两位小数-1表示保留到十位-2保留到百位依次后推。 |
rand 生成随机数 | select round() from 表名; //生成随机数 |
100以内的随机数 | select round(rand()*100,0); |
ifnull() 将null转为具体的值。只要有null参与的数学运算结果一定是null | ifnull(数据,被当做哪个值) 如果数据为null把这个数据当做哪个值。 |
多行处理函数分组函数相关命令
多行处理函数(分组函数) | 也就是说一列数据 输出一个值。 |
---|
sun 求和 | select sun(字段) from 表名; //输出这个字段的和 |
max 最大值 | select max(字段) from 表名; //输出这个字段的最大值 |
min 最小值 | select min(字段) from 表名; //输出这个字段的最小值 |
avg 平均值 | select avg(字段) from 表名; //输出这个字段的平均值 |
count 计数 | select count(字段) from 表名; //输出这个字段的数据(也就是有多少行)的数量 |
分组查询等相关命令
分组查询 | select 字段… from 表名 group by 要分组的字段; //在一条select语句当中如果有group by语句的话select后面只能跟参加分组的字段以及分组函数。其它的一律不能跟。 |
---|
联合分组查询 | select 字段… from 表名 group by 要分组的字段1,字段2; //两个字段联合成1个字段看。两个字段联合分组 |
having 分组后再过滤 | 使用having可以对分完组之后的数据进一步过滤。having不能单独使用having不能代替wherehaving必须和group by联合使用。优化策略where和having优先选择wherewhere实在完成不了了再选择having。having 是跟 group by后面用的可以用分组函数。where后面可不能用。例如select deptno,avg(sal) from emp group by deptno having avg(sal) > 2500; |
distinct去重 | distinct只能出现在所有字段的最前方distinct出现在job,deptno两个字段之前表示两个字段联合起来去重。例如:select distinct job from emp;select distinct job,deptno from emp;错误写法 select ename,distinct job from emp; distinct只能出现在所有字段的最前方 |
连接查询多表联查等相关命令
连接查询 内连接 | select e.ename,d.dname from emp e join dept d on e.deptno = d.deptno; //join连接的意思 on是连接条件 |
---|
连接查询 外连接 | select e.ename,d.dname from dept d left join emp e on e.deptno = d.deptno; //left 是join左边的表是主表。right代表什么表示将join关键字右边的这张表看成主表主要是为了将这张表的数据全部查询出来捎带着关联查询左边的表。在外连接当中两张表连接产生了主次关系。 |
多表联查 | 语法select … from a join b on a和b的连接条件 join c on a和c的连接条件 right join d on a和d的连接条件//一条SQL中内连接和外连接可以混合。都可以出现 |
union合并查询结果集 | 例如select ename,job from emp where job = ‘MANAGER’ union select ename,job from emp where job = ‘SALESMAN’; //要求结果集合并时列和列的数据类型也要一致。 |
limit取出部分数据 | 完整用法limit startIndex, length; // startIndex是起始下标length是长度。起始下标从0开始。缺省用法limit 5; 这是取前5。例如select ename,sal from emp order by sal desc limit 2, 3; |
通用分页查询公式 | limit (pageNo-1)*pageSize , pageSize //pagNo是第多少页 pageSize是每行显示多少条数据 |
事务相关的命令
关闭自动提交事务 | start transaction |
---|
提交事务 | commit |
事务回滚 | rollback |
查看隔离级别 | SELECT @@tx_isolation //注意新版mysql 应该换语句了 |
修改隔离级别 | set global transaction isolation level 级别名; |
索引创建与删除
索引的创建 | 例create index emp_ename_index on emp(ename);// 给emp表的ename字段添加索引起名emp_ename_index |
---|
索引的删除 | 例drop index emp_ename_index on emp;//将emp表上的emp_ename_index索引对象删除。 |
查看一个SQL语句是否使用了索引进行检索 | explain select * from emp where ename = ‘KING’;//在sql语句前面添加explain |
视图对象的创建与删除
创建视图对象 | create view 视图对象的名字 as select * from 表名; |
---|
删除视图对象 | drop view 视图对象的名字; |
退出