mysql命令语句格式_mysql命令语句总览

MySQL命令

登录mysql账号

dos命令窗口:

-- mysql(或者是mysqlsh) -u账号名 -p密码

mysql -uroot -p123

use

-- 使用数据库

use db_name;

select

-- 查看当前使用的数据库

select database();

-- 查看当前数据库版本

select version();

show

-- 查看数据库目录

show databases;

-- 查看数据库中的表目录

show tables;

-- 查看其他库中的表

show tables from db_name;

-- 查看表的创建语句

show create table tb_name;

desc

-- 查看表结构

desc tb_name;

explain

-- 查看语句的执行状态(执行计划)

explain select ename,sal from emp where sal = 5000;

create

-- 创建一个数据库

create database db_name;

drop

-- 删除一个数据库

drop database db_name;

source

-- 加载 sql 文件,拖拽文件到dos窗口会自动生成路径

-- \source

source D:\AllCode\SQLCode\test.sql

limit

介绍:分页查询 limit ,

​startInsdex 表示起始位置,从 0 开始。

​lenght 表示取几个。

固定公式:每页显示 pageSize 条记录:

​limit (pageNo - 1) * pageSize, pageSize

# 例子,显示前五页的数据

-- 从 5 开始,取 5 个,将显示第 5~10 条的数据。

select ename,sal from emp order by sal desc limit 5,5;

其他命令

-- 终止一条语句

\c 或者按ctrl+c键

-- 退出 mysql

\q 或者 quit 或者 exit

DDL语句 数据定义语言

create

介绍:创建表

-- 建表语句的语法格式:

create table 表名(

字段名1 数据类型,

字段名1 数据类型,

字段名1 数据类型,

......

);

-- 将查询结果做一张表:create table 表名 as select语句;

create table t_test

as

select * from emp;

constraint(约束)

constraint

约束

介绍

not null

非空约束

约束的字段不能为null

unique

唯一约束

约束的字段不能重复,但可为null

primary key

主键约束

约束的字段既不能为null,也不能重复,一张表只能存其一

foreign key

外键约束

外键值可以为null,被引用的字段不一定是主键,但至少具有unique约束

-- 列级约束

-- not null 只有列级约束

drop table if exists t_class;

create table t_class(

cid int primary key, -- 主键约束

cname varchar(255) unique, -- 唯一约束

cpassword varchar(255) not null, -- 非空约束

)

-- 表级约束

drop table if exists t_student;

create table t_student(

sid int auto_increment, -- 自增

classid int,

sname varchar(255),

scode varchar(255),

spassword varchar(255),

-- 联合约束,两者其一俱备唯一性即可

unique(sname,scode),

-- 复合主键

primary key(sid,spassword)

-- 外键引用

foreign key(classid) references t_class(cid)

)

drop

-- 删除一张表

drop table 表名;

-- 如果表存在则删除,mysql特有语句

drop table if exists 表名;

alter

DML语句数据操作语言

insert

介绍:往表里添加数据。

-- 添加一行记录

insert into

表名(字段名1, 字段名2, ...)

values (数据1, 数据2, ...);

-- 添加一行记录,省略字段

insert into 表名

values (数据1, 数据2, ...);

-- 添加两行记录

insert into

表名(字段名1, 字段名2, ...)

values

(数据1, 数据2, ...),

(数据1, 数据2, ...);

-- 将查询结果插入到一张表中:insert into 表名 select语句;

insert into t_test select * from emp;

update

修改表中的数据

-- 语法格式:update 表名 set 字段名1=值1,字段名2=值2...where条件;

update

emp

set

ename = 'black', sal = 1234

where

deptno = 10;

delete

删除表中的数据

-- 语法格式:delete from 表名 where条件

delete from emp where deptno = 10;

truncate

介绍:永久截断(删除)表中的数据,不可回滚。

truncate table emp;

index(索引)

介绍:主键和具有unique约束的字段会自动添加索引。

# create index 索引名称 on 表名(字段名);

# drop index 索引名称 on 表名;

-- 给sal字段添加索引

create index emp_sal_index on emp(sal);

-- 删除索引

drop index emp_sal_index;

view(视图)

只能通过DQL语句创建视图对象。

可以对视图进行CRUD操作。

对视图进行增删改查,会影响到原表数据。

-- 创建视图

create view myview as select empno,ename from emp;

-- 删除视图

drop view myview;

DQL语句数据查询语言

select

select-- execute order 5

...

from-- execute order 1

where-- execute order 2

...

group by-- execute order 3

...

having-- execute order 4

...

order by-- execute order 6

...

limit-- execute order 7

...

条件查询运算符

运算符

说明

=

等于

<> 或 !=

不等于

<

小于

<=

小于等于

>

大于

>=

大于等于

between ... and ...

两个值之间

is null

为空(is not null 不为空)

and

or

in( , )

包含(not in(,) 不包含)

not

取非

like

模糊查询(使用 % 与 _ 匹配)

order by

-- asc表示升序,desc表示降序,默认是升序

select 字段... from 表名 order by 字段 desc;

-- 多字段排序,越靠前的字段越起主导作用,优先满足前排字段的条件

# 例子,emp是员工表,ename是员工名,sal是员工工资

select ename,sal from emp order by sal desc, ename asc;

多行处理函数

函数

说明

count()

取得记录数

sum()

求和

avg()

取平均值

max()

获取最大值

min()

获取最小值

注意一:所有的多行处理函数都是对某一组数据进行操作

注意二:多行处理函数自动忽略 null

注意三:多行处理函数不能出现在where子句中

注意四:多行处理函数在group by语句后执行

# emp是员工表,sal 是员工工资

select sum(sal) from emp; -- 找出工资总和

select avg(sal) from emp; -- 算出平均工资

select max(sal) from emp; -- 找出最高工资

select min(sal) from emp; -- 找出最低工资

select count(*) from emp; -- 找出总条数

select count(sal) from emp; -- 找出不为null的条数

ifnull()

# emp是员工表,comm 是员工津贴

-- ifnull(可能为null的数据,被当做什么处理)

select ename,ifnull(comm,0) from emp;

distinct

-- 去除重复记录

select distinct 字段 from 表名;

-- distinct 修饰多个字段时,所有字段联合去重

select distinct 字段1,字段2... from 表名;

注意一:distinct 只能出现在所有字段的最前方

join...on...

语法格式

说明

inner join...on...

内连接,只会将参与连接的表A,表B相匹的数据查询出来。inner 关键字可省略。

left outer join...on...

外连接,优先查询主表,副表无匹配项时以 null 填充。left修饰左边的表为主表,outer关键字可省略。

right outer join...on...

外连接,优先查询主表,副表无匹配项时以 null 填充。right修饰右边的表为主表,outer关键字可省略。

union

介绍:可将两次查询的结果拼接成一张表,通常用于拼接两张毫不相干的表。

注意:参与拼接的表列数必须相同

-- 语法

select

...

from

...

union

select

...

from

...

TCL语句事务控制语言

介绍:事务(Transaction)

​和事务有关的语句只有 DML语句(insert, delete, update)

-- 开启事务

start transaction;

-- 回滚

rollback;

-- 提交

commit;

-- 设置回滚点, 回滚:rollback name;

savepoint name;

DCL语句数据控制语言

补充知识

在 sql 中,null 参与运算的结果必定为 null。

示例数据表的代码

-- 部门表

create table dept(

deptno int primary key auto_increment, -- 部门编号

dname varchar(14) , -- 部门名字

loc varchar(13) -- 地址

) ;

-- 员工表

create table emp(

empno int primary key auto_increment,-- 员工编号

ename varchar(10), -- 员工姓名-

job varchar(9),-- 岗位

mgr int, -- 直接领导编号

hiredate date, -- 雇佣日期,入职日期

sal int, -- 薪水

comm int, -- 提成

deptno int not null, -- 部门编号

foreign key (deptno) references dept(deptno)

);

insert into dept values(10,'财务部','北京');

insert into dept values(20,'研发部','上海');

insert into dept values(30,'销售部','广州');

insert into dept values(40,'行政部','深圳');

insert into emp values(7369,'刘一','职员',7902,'1980-12-17',800,null,20);

insert into emp values(7499,'陈二','推销员',7698,'1981-02-20',1600,300,30);

insert into emp values(7521,'张三','推销员',7698,'1981-02-22',1250,500,30);

insert into emp values(7566,'李四','经理',7839,'1981-04-02',2975,null,20);

insert into emp values(7654,'王五','推销员',7698,'1981-09-28',1250,1400,30);

insert into emp values(7698,'赵六','经理',7839,'1981-05-01',2850,null,30);

insert into emp values(7782,'孙七','经理',7839,'1981-06-09',2450,null,10);

insert into emp values(7788,'周八','分析师',7566,'1987-06-13',3000,null,20);

insert into emp values(7839,'吴九','总裁',null,'1981-11-17',5000,null,10);

insert into emp values(7844,'郑十','推销员',7698,'1981-09-08',1500,0,30);

insert into emp values(7876,'郭十一','职员',7788,'1987-06-13',1100,null,20);

insert into emp values(7900,'钱多多','职员',7698,'1981-12-03',950,null,30);

insert into emp values(7902,'大锦鲤','分析师',7566,'1981-12-03',3000,null,20);

insert into emp values(7934,'木有钱','职员',7782,'1983-01-23',1300,null,10);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值