MYSQL常用操作指令

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MYSQL常用操作指令

        前两章介绍了PHP7的基本语法和面向对象开发,本章将介绍Mysql的基本使用和一些常用指令,PHP + Mysql 是一对孪生兄弟,两个结合就可以为网站或者APP 做后端。MYsql 的操作熟练,决定了你能否写出一手好CURD,也为你使用PHP做接口开发更丝滑了。那么我们开始吧。

Mysql

基本语句

命令行操作

创建数据库

create database shop charset utf8;

展示数据库

show databases;

使用/删除数据库

use shop ;

drop databases shop;

drop table tbale  删除表
drop databases if exists shop;  如果shop 存在,则删除,否则报错
查看数据库结构
show databases;

查看表结构

desc stduent;

创建表

create table  student (id int PRIMART KEY AUTO_INCREMENT,name varchar(20) not null);

插入语句

insert into  student set name = '张三';

insert into student (name,age) values('张三',20);
insert into student (name,age) values('张三',20),('张三',20); 一次插入多个值

创建表复制其他表结构

create table school like  student;   #创建表school结构来源于studetn表

insert into school select * from student;  复制student表数据到school中

insert into school (name) select name from student;  将student表中字段为name的值复制到 school 表中


create table class select * from student  在创建表时将student的所有数据复制到class表中



create table bclass (id INT PRIMARY KEY AUTO_INCREMENT,name varchar(30) ) select name from  student  在创建bclass表时,将stdent表中字段为name的值复制到 bclass表中

查询语句

select * from class;

select name,id from class;

select * from  class where name = '张三' ; 查找name为张三的所有数据

模糊查询
select * from class where name like '%三%'  and age > 22; 查询name字段中包括三并且age>22 的数据

select * from class where name not like '%三%'  and age > 22; 查询name字段中不包括三并且age>22 的数据


连接字段使用

select concat(name,age) as info from  student;    将student 表中的name ,age 字段合并 返回字段为info 的所有数据


select * from student where info = 2 and age >22;  查询student表中info等于2并且age>22的所有数据


select * from  shop where price between 20 and 40;  查找shop表中price 在2040之间的数据


select * from shop where price = 20 or prince = 30   查找shop表中price等于20 或者 等于30

select * from  shop where pricle not in (20,30)  查找shop表中price不在20 30 这个范围

Mysql 对Null 的处理

select name,if(age,age,'没有数据') from shop;   查找shop表中name和age字段的数据,当age为空时, 显示 ‘没有数据’,有数据则为age

排序 order by

order by 字段 asc
asc  从小到大
desc 从大到小


select age,name from student order by age asc; 查找student表中,按年龄从小到大输出age和name的数据。

Limt 使用

limit 开始索引,取得数量;

select * from student order by asc limit 1,2;  从student表中按从小到大取2个数据


select age form student where class_id = 2 and age is not null order by age asc limit 1;查找student表,条件为class_id为2并且age不为空,年龄按从小到大排序,只显示age字段为1条数据

子查询

查询的条件依据另一条sql语句的结果查询

select * from student where age = (select age from student where class_id = 3 and age > 23 limit 1)

更新

update  student set class_id = 2 where class_id is null;

update student set price = price+10 where name = '海军'; 当name为海军时,将price+10

删除

delete from student where price < 60 and place is not '北京';

小结

数据的增删改查的结构几乎相近,结构为
select * from 表 where 按条件查询 ---------------- 按条件查询
update 表 set 字段 where 条件语句 ---------------- 按条件更新
delete from 表 where 条件语句 --------------- 按条件删除具体语句
insert into 表 set 字段 = 值 ;
insert into 表 (字段1,字段2) values (字段1值,字段2值);
insert into 表 (字段1,字段2) values (字段1值,字段2值),(字段1值,字段2值),(字段1值,字段2值);
一次插入多个值

数据库表功能使用

修改表名字

alter table table1 rename table2
将表1 改成表2 名字

rename table table1 to table2
将表1 改成表2 名字

字段修改

modify  修改类型
alter table table1 modify name varchar(20) not null;
修改table1中的字段为name,类型改为varchar

change 修改字段名和类型
alter table table1 change name sname char(20) not null;
修改table1表中的字段为name,改为sname,类型修改为char


add  字段添加
alter table table1 add sex char(20) not ull;
修改table表,添加一个字段为sex,类型为char;

add ***  after   指定字段在哪个字段前增加
alter table table1 add sex char(20) not null after name;
修改table表,添加一个字段为sex,类型为char,并且顺序在name的后面


alter***drop  删除字段
alter table table1 drop name  
删除table1表字段为name;

小结

任何修改操作都是这样的结构:alter table 表名 功能函数 作用语句
eg: alter table student modify age int not null;
alter table student change name username varchar(20) not null;

校对规则

mysql 默认是不区分大小写,想要改掉, 可以为字段添加排序规则为 utf8_bin

时间格式化

DATE_FORMAT(字段名,'显示格式')
TIME_FORMAT(字段名,'显示格式')

%Y年%m月%d %H时%i分%s秒  --->  19990412 082033

时间常用函数

now()  获取当前时间  -----> 2020-03-13 22:22:38
CURRENT_DATE() 获取当前日期  ------> 2020-03-13
TIME_TO_SEC(time)   将时间转为秒
SEC_TO_TIME(seconds) 将秒转为时间
addTime(now(),'08:00:00')   ----> 在现在的时间上加8个小时

日期与实践差值计算

-- 计算日期的差值
DATEDIFF(now(),birthday)
--计算现在日期到出生日期经过了多少天

--计算时间的差值
timediff(time(now()),time(birthday)-- 生日时间到现在经过的时间差值

#常用#-- 根据单位来获取时间的差值,例如获取差值多少小时,多少年  --
timestampdiff(day,birthday,now())
--出生到现在所经历了多少天  ,day可以更换单位, year 年

以上介绍了Mysql的基本增删改查,和一些使用技巧,只要你多实操就会越来越熟练。Mysql掌握差不多了,就可以使用结合PHP来开发一些动态网站了。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
SQL 存储 算法
mysql常用指令操作
mysql常用指令操作
|
3月前
|
SQL 关系型数据库 MySQL
MySQL数据库——索引(4)-SQL性能分析-profile详情、explain(profile查看指令,explain执行计划中各个字段的含义)
MySQL数据库——索引(4)-SQL性能分析-profile详情、explain(profile查看指令,explain执行计划中各个字段的含义)
42 2
|
关系型数据库 MySQL Linux
linux下mysql数据库操作指令(流程)
MySQL 是最流行的关系型数据库管理系统之一,属于 Oracle 旗下产品
202 0
|
SQL JavaScript 前端开发
ChatGPT工作提效之在程序开发中的巧劲和指令(创建MySQL语句、PHP语句、Javascript用法、python的交互)
ChatGPT工作提效之在程序开发中的巧劲和指令(创建MySQL语句、PHP语句、Javascript用法、python的交互)
208 0
|
SQL 关系型数据库 MySQL
mysql DCL 数据权限操作指令
mysql DCL 数据权限操作指令
122 0
|
关系型数据库 MySQL 数据库
MySQL数据库,常用指令详解
本期讲解:mysql中常用指令详解
|
SQL 监控 关系型数据库
Intel PAUSE指令变化如何影响MySQL的性能
x86、arm指令都很多,无论是应用程序员还是数据库内核研发大多时候都不需要对这些指令深入理解,但是 Pause 指令和数据库操作太紧密了,本文通过一次非常有趣的性能优化来引入对 Pause 指令的理解,期望可以事半功倍地搞清楚 CPU指令集是如何影响你的程序的。
Intel PAUSE指令变化如何影响MySQL的性能
|
关系型数据库 MySQL 数据库
MySQL数据库常用的指令 -- 持续更新
MySQL数据库常用的指令 -- 持续更新
111 0
MySQL数据库常用的指令 -- 持续更新
|
SQL 关系型数据库 MySQL
MySQL 指令
SQL 指令是用于访问和处理数据库的标准的计算机语言。对于 MySQL 等常用数据库都可以通过使用 SQL 访问和处理数据系统中的数据。
119 0
|
SQL 存储 算法
MySQL高级指令
事务 开启事务后,所有输入的 SQL 语句将被认作一个不可分割的整体,在提交时统一执行。 如果在输入过程中出现问题,可以手动进行回滚。在输入过程中可以设置保存点。
120 0

热门文章

最新文章