开发者社区> 优惠券发放> 正文

MySql数据库基本命令大全

简介: MySql数据库基本命令大全 创建数据库test1 create database test1; 1数据库查询 show databases; 1选择要操作的数据库 use test1 1查看 test1 数据库中创建的所有数据表 show tables; 1创建表 # CREATE .
+关注继续查看

MySql数据库基本命令大全

创建数据库test1

create database test1;
  • 1

数据库查询

show databases;
  • 1

选择要操作的数据库

use test1
  • 1

查看 test1 数据库中创建的所有数据表

show tables;
  • 1

创建表

# CREATE TABLE   tablename (column_name_1 column_type_1 constraints,column_name_2  column_type_2  constraints , ……column_name_n  column_type_n constraintscreate table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2));
  • 1
  • 2

int(2)表示当数值宽度小于2位时,在数字前用0填满宽度,如果只用int,不指定宽度则默认为int(11)。 
decimal(10,2)decimal表示十进制,(10,2)表示该值一共显示10位数字,其中有2位在小数点后面,10和2又称为精度和标度。decimal在不指定精度时,默认的整数位为 10,默认的小数位为 0

查看表

desc emp;
  • 1

删除表

drop table emp;
  • 1

修改表类型

# ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
alter table emp modify ename varchar(20);
  • 1
  • 2

增加表字段

# ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST | AFTER col_name]
alter table emp add column age int(3);
  • 1
  • 2

删除表字段

# ALTER TABLE tablename DROP [COLUMN] col_name
alter table emp drop column age;
  • 1
  • 2

字段改名

# ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name]
alter table emp change age agel int(4);
  • 1
  • 2

注意:change 和 modify都可以修改表的定义,不同的是 change 后面需要写两次列名,不方便。但是 change 的优点是可以修改列名称,modify则不能。

修改字段排列顺序

alter table emp add birth date after ename;
alter table emp modify age int(3) first;
  • 1
  • 2

表改名

# ALTER TABLE   tablename RENAME [TO] new_tablename
alter table emp rename emp1;
  • 1
  • 2

插入记录

# INSERT INTO   tablename (field1,field2,……fieldn) VALUES(value1,value2,……valuesn);
insert into emp(ename,hiredate,sal,deptno) values('zzx1','2000-01-01','2000',1);
  • 1
  • 2
也可以不用指定字段名称,但是 values 后面的顺序应该和字段的排列顺序一致,如:
insert into emp values('lisa','2003-02-01','3000',2);
  • 1
对某些属性未插入时,自动显示为NULL,如:
insert into emp  (ename,sal) values('dony',1000);
  • 1

修改字段排列顺序

alter table emp add birth date after ename;
alter table emp modify age int(3) first;
  • 1
  • 2

一次性插入多条记录

INSERT INTO   tablename   (field1, field2,……fieldn)
VALUES(record1_value1, record1_value2,……record1_valuesn),
(record2_value1, record2_value2,……record2_valuesn),
……(recordn_value1, recordn_value2,……recordn_valuesn);
# 一次插入两条记录
insert into dept values(5,'dept5'),(6,'dept6');
select * from dept;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

更新记录

#UPDATE tablename SET field1=value1,field2.=value2,……fieldn=valuen [WHERE CONDITION]
update emp set sal=4000 where ename='lisa';

##同时更新多个表中数据
#UPDATE t1,t2…tn set t1.field1=expr1,tn.fieldn=exprn   [WHERE CONDITION]
update emp1 a,dept b set a.sal=a.sal*b.deptno,b.deptname=a.ename where a.deptno=b.deptno;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

注意:多表更新的语法更多地用在了根据一个表的字段,来动态的更新另外一个表的字段

删除记录

# DELETE FROM tablename [WHERE CONDITION]
delete from emp where ename='dony';

##一次删除多个表的数据
#DELETE t1,t2…tn FROM t1,t2…tn [WHERE CONDITION]
delete a,b from emp a,dept b where a.deptno=b.deptno and a.deptno=3; # ????
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

注意: 不管是单表还是多表, 不加 where 条件将会把表的所有记录删除, 所以操作时一定要小心。

查询记录

# SELECT * FROM tablename [WHERE CONDITION]
select * from emp;
  • 1
  • 2

其中“*”表示要将所有的记录都选出来,也可以用逗号分割的所有字段来代替,例如

select ename,hiredate,sal,deptno from emp;
  • 1
查询不重复的记录
# 查询emp表中deptno的非重复属性
select distinct deptno from emp;
  • 1
  • 2
条件查询
# 查询emp表中deptno=1时对应的项
select * from emp where deptno=1;
# 多字段条件查询
select * from emp where deptno=1 and sal<3000;
  • 1
  • 2
  • 3
  • 4
排序和限制
# SELECT  *  FROM  tablename  [WHERE  CONDITION] [ORDER  BY  field1  [DESC|ASC] , field2  [DESC|ASC],……fieldn [DESC|ASC]]
#把 emp 表中的记录按照sal高低排序
select * from emp order by sal;
# 对deptno 相同的前两条记录,按照sal由高到低排序
select * from emp order by deptno,sal desc;
  • 1
  • 2
  • 3
  • 4
  • 5

聚合

#SELECT [field1,field2,……fieldn] fun_name FROM tablename [WHERE where_contition] [GROUP BY field1,field2,……fieldn [WITH ROLLUP]] [HAVING where_contition]
'''
fun_name 表示要做的聚合操作,也就是聚合函数,常用的有 sum (求和)、 count(*) (记录数)、max(最大值)、min(最小值)。
GROUP BY 关键字表示要进行分类聚合的字段, 比如要按照部门分类统计员工数量, 部门就应该写在 group by 后面。
WITH ROLLUP 是可选语法,表明是否对分类聚合后的结果进行再汇总。
HAVING 关键字表示对分类后的结果再进行条件的过滤
'''
#要 emp 表中统计公司的总人数
select count(1) from emp;
#在此基础上,要统计各个部门的人数
select deptno,count(1) from emp group by deptno;
#既要统计各部门人数,又要统计总人数
select deptno,count(1) from emp group by deptno with rollup;
#统计人数大于 1 人的部门
select deptno,count(1) from emp group by deptno having count(1)>1;
#统计公司所有员工的薪水总额、最高和最低薪水
 select sum(sal),max(sal),min(sal) from emp;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

表连接

select ename,deptname from emp,dept where emp.deptno=dept.deptno;
# 可以列出另一列中不存在的name
select ename,deptname from emp left join dept on emp.deptno=dept.deptno;
  • 1
  • 2
  • 3

子查询

select * from emp where deptno in(select deptno from dept);
#如果子查询记录数唯一,还可以用=代替 in
select * from emp where deptno = (select deptno from dept limit 1);
  • 1
  • 2
  • 3

记录联合

mysql> select deptno from emp 
         -> union all
         -> select deptno from dept;
# 将结果去掉重复记录后显示
mysql> select deptno from emp 
        -> union
        -> select deptno from dept;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

按照层次查看帮助

#用 “?contents” 命令来显示所有可供查询的的分类
? contents
#用“?  类别名称”的方式做进一步查看
 ? data types
#快速查询某项语法
 ? show
#看 CREATE TABLE 的语法
? create table

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23607 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
22388 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
19994 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
12001 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
22627 0
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
14807 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
36500 0
+关注
优惠券发放
阿里云优惠码阿里云推荐券bieryun.com
456
文章
25
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载