【Mysql】

近日工作也不是很忙,所以抽出空整理一下工作中常用到的sql语句,当是一片笔记,记录下

来方便时常查阅,也算巩固巩固。若后续有新知识点,继续完善。

前言:使用dos命令进入mysql监视器

mysql -u 用户名 -p密码 若是不想要密码暴露出来,可以执行mysql -u 用户名 -p 回车后,直接输入密码就行


MYSQL三种类型

mysql根据处理内容不同,可分为3种类型

数据操作语句(Data Manipulation Language,DML)

这个包括从表种进行检索的select语句,插入用的insert语句,更新update,删除delete语句

对数据库表进行增删改查是经常要用到的,整理一下

select 列名1,列名2..... from 表名 where 条件表达式

insert into 表名(列名1,列名2.....) values(数据1,数据2....)

update 表名 set 列名1=数据1,列名2=数据2....  where 条件表达式

delete from 表名 where 条件表达式

多表连接

内连接:表之间主键和外键相连,只取得键值一致的数据

select 列名1... from 表1

        inner join 表2

        on 表1.外键=表2.主键

        [where/order by语句等]

举一个例子,需要从基本订单表(order_basic)与用户表(user)种取得订单号和用户名

select user.name,order_basic.oid 

from order_basic

inner join user on order_basic.uid=user.uid

左连接

select 列名1.... from 表1

        left outer join 表2

        on 表1.外键=表2.主键 (where/order by语句等)

同样举个例子,需要取得与用户相关的订单信息,即没有任何订单信息的用户也会被检索出来,这里表名我使用了别名

select u.name,ob.oid 

from user as u

left outer join order_basic as ob on u.uid=o.oid

右连接

select 列名1.... from 表1

        right outer join 表2

        on 表1.外键=表2.主键 (where/order by语句等)

例子:需要取得所有的订单信息,即没有用户的订单信息也会被检索出来

select u.name,ob.oid 

from user as u

right outer join order_basic as ob on u.uid=o.oid

基本子查询

select 列名1..... from 表名

where 列名 比较运算符 (select 命令)

比如说 查询产品表中查询超过均价的产品

select * from poduct

where price > (select avg(price) from product)

数据定义语句(Data Definition Language,DDL)

包括数据库对象:表、索引、视图等,创建使用的create语句,对象删除drop语句,对象定义修改使用的alter语句

desc 表名  --查看表结构

create table 表名(列名1 数据类型 列选项,列名2 数据类型 列选项......)--创建表

drop table 表名 -- 删除表

alter table 表名 modify 列名 数据类型 -- 修改列定义

alter table 表名 add 列名 数据类型 --添加列

alter table 表名 change 旧列名 新列名 数据类型 --修改列名及列定义

alter table 表名 drop 列名

create table 新表名 select * from 旧表名 -- 复制表构造和数据来创建新表

insert into 新表名 select * from 含有数据的表名 --复制表内容

create table 新表名 like 旧表名 -- 复制表结构创建新表

drop table 新表名 --删除新表

索引(概念就不赘述了哈 自行百度肯定比我讲得更全面)

create [unique] index 索引名 on 表名(列名1,....) --创建索引

若是使用unique关键字,则就是创建不可重复的索引,也称唯一性索引

show index from 表名 --显示表中所有索引信息

drop index 索引名 on 表名 --删除索引

explain 调查对象 select 语句 --确认索引使用情况

视图

create view 视图名(列名,....) as select 语句[with check point]   --创建视图

drop view 视图名 --删除视图

show fields from 视图名 --显示视图中所有的列信息

数据控制语句(Data Control Language,DCL)

这个就包括数据库用户权限追加grant,删除revoke语句,事务处理开始(begin)、提交(commit)、复原也称回滚(rollback)语句

存储过程

创建存储过程

create procedure 存储过程名(参数种类 参数名 参数类型,[参数种类 参数名2 参数类型])

begin

处理内容

end

参数种类有输入参数(IN)和输出参数(OUT)  INOUT既可以作为输入参数也可以作为输出参数

show procedure satus  --查看存储过程

call 存储过程名(参数1,@变量名...) --调用存储过程  其中@主要调用参数的返回变量

select @变量名 --可以查看输出的变量

select 列名1,... into 变量1,... from  表名 where语句  --设置检索结果到变量中

declare 变量名 变量类型[初始值]  --声明局部变量

set 变量名=值   --给变量赋值

创建例子

补充:delimiter ; 以;作为结束符号  delimiter // --以//作为结束符号

函数

create functiom 函数名(参数名 参数类型,.....)

returns 返回值类型

begin

执行函数sql语句

return  返回值

end

show function status  --查看函数

select 函数名(参数)  --调用函数

触发器

create trigger 触发器名 发生时刻 事件名

on 表名 for each row     --for each row 在oracle或postgresql中表示不管处理影响多少行数据,触发器只执行一次

begin

任意sql语句

end

show triggers --查看触发器

补充:关键字 old new  insert不能使用old关键字 delete不能使用new关键字

drop trigger 触发器名

补充:

load data infile   文件路径  into table 表名 选项  --文件导入

选项有:FIELDS TERMINATED BY分隔字符(默认为[\t],即tab字符)
LINES TERMINATED BY换行字符(默认为[\n])
IGNORE最初跳过的行LINES(默认为0)

select * into outfile 文件路径 选项 from 表名 --以文本文件的形式导出数据

source 文本文件名 --运行保存sql语句的文件

tee 输出的文件名 --将执行结果保存到文件中

mysqldump -u 用户名 -p密码 数据库名>输出文件名  --转储数据库

mysql -u 用户名 -p密码 数据库名<文件名 --恢复数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值