前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MYSQL常用操作指令

MYSQL常用操作指令

作者头像
程序员海军
发布2021-10-11 11:10:34
1.1K0
发布2021-10-11 11:10:34
举报
文章被收录于专栏:前端笔记ing

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

Mysql

基本语句

命令行操作

创建数据库
代码语言:javascript
复制
create database shop charset utf8;
展示数据库
代码语言:javascript
复制
show databases;
使用/删除数据库
代码语言:javascript
复制
use shop ;

drop databases shop;

drop table tbale  删除表
drop databases if exists shop;  如果shop 存在,则删除,否则报错
查看数据库结构
代码语言:javascript
复制
show databases;
查看表结构
代码语言:javascript
复制
desc stduent;
创建表
代码语言:javascript
复制
create table  student (id int PRIMART KEY AUTO_INCREMENT,name varchar(20) not null);
插入语句
代码语言:javascript
复制
insert into  student set name = '张三';

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

创建表复制其他表结构
代码语言:javascript
复制
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表中
查询语句
代码语言:javascript
复制
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 在20 到 40之间的数据


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 的处理
代码语言:javascript
复制
select name,if(age,age,'没有数据') from shop;   查找shop表中name和age字段的数据,当age为空时, 显示 ‘没有数据’,有数据则为age
排序 order by
代码语言:javascript
复制
order by 字段 asc
asc  从小到大
desc 从大到小


select age,name from student order by age asc; 查找student表中,按年龄从小到大输出age和name的数据。
Limt 使用
代码语言:javascript
复制
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条数据
子查询
代码语言:javascript
复制
查询的条件依据另一条sql语句的结果查询

select * from student where age = (select age from student where class_id = 3 and age > 23 limit 1)
更新
代码语言:javascript
复制
update  student set class_id = 2 where class_id is null;

update student set price = price+10 where name = '海军'; 当name为海军时,将price+10分
删除
代码语言:javascript
复制
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值); 一次插入多个值

数据库表功能使用

修改表名字
代码语言:javascript
复制
alter table table1 rename table2
将表1 改成表2 名字

rename table table1 to table2
将表1 改成表2 名字
字段修改
代码语言:javascript
复制
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;

校对规则
代码语言:javascript
复制
mysql 默认是不区分大小写,想要改掉, 可以为字段添加排序规则为 utf8_bin
时间格式化
代码语言:javascript
复制
DATE_FORMAT(字段名,'显示格式')
TIME_FORMAT(字段名,'显示格式')

%Y年%m月%d %H时%i分%s秒  --->  1999年04月12 08时20分33秒
时间常用函数
代码语言:javascript
复制
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个小时
日期与实践差值计算
代码语言:javascript
复制
-- 计算日期的差值
DATEDIFF(now(),birthday)
--计算现在日期到出生日期经过了多少天

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

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


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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端自学社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Mysql
    • 基本语句
      • 命令行操作
        • 创建数据库
        • 展示数据库
        • 使用/删除数据库
        • 查看表结构
        • 创建表
        • 插入语句
        • 创建表复制其他表结构
        • 查询语句
        • Mysql 对Null 的处理
        • 排序 order by
        • Limt 使用
        • 子查询
        • 更新
        • 删除
        • 小结
      • 数据库表功能使用
        • 修改表名字
        • 字段修改
        • 小结
        • 校对规则
        • 时间格式化
        • 时间常用函数
        • 日期与实践差值计算
    相关产品与服务
    云数据库 SQL Server
    腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档