mysql数据库常用操作

 

 

目前最流行的数据库:

oracle、mysql、sqlserver、db2、sqline

--:单行注释

#:也是单行注释

/* 注释内容*/:多行注释

mysql -uroot -p密码:登录mysql

service mysqld restart
重启mysql

/etc/my.cnf
mysql的配置文件

/var/lib/mysql
mysql数据库的数据库文件存放位置

/var/log
mysql的数据库的日志输出存放位置

create database 库名 default character set =utf8;:创建数据库

show databases:查看所有数据库

drop database 数据库名:删除数据

备份的语法一:
Mysqldump –uroot –p 要备份哪个数据库 > 备份到哪去的路径;

备份语法二:
Mysqldump –uroot –p - -database 要备份哪个数据库 > 备份到哪去的路径;

source+sql文件:恢复数据库

use 数据库名称:使用业务数据库

show tables:查看业务数据库下有多少张表格

desc 表名:描述表结构

建表语法:
create table 表名字 (列名 数据类型,l列名2 数据类型,…,列名n 数据类型)Engine=INNODB charset=utf8;

表创建好过后添加一列或者多列:
ALTER TABLE 表名 ADD (列名 数据类型,…,列名n 数据类型);

换列名语法:
Alter table 表名 change column 原有的列名 新的列名 对应的数据类型

删除列:
alter table 表名 drop column 要删除的列

给列添加注释:
Alter table 表名 modify column 列名 对应数据类型 comment ‘你要注释的内容’

添加数据语法:
insert into 表名(列1,列2...列n) values(值1,值2,...值n)

一次增加多条数据:
Insert into 表名(列1,列2,..,列n) values (值1,值2,…..,值n), (值1,值2,…..,值n)

修改数据:
update 表名 set 列名=值 where 条件

Update 可以一次修改多列:
Update 表名 set 列1=值1,列2=值2 where 条件

删除数据:
delete from 表名 where 条件

删除整张表的数据:
truncate table 表名

删除数据库:
drop

添加默认值:
create table 表名(列名称 数据类型 default 默认值)

添加非空约束的语法:
alter table 表名modify column 列名 对应的数据类型 not null;

给表添加主键约束:
Alter table表名 add constraint primary key PK_表名_需要添加约束的列名 (要添加约束的列)

给表添加外键约束:
alter table 表名add constraint foreign key fk_表名 _列名 (需要添加约束的列)references 引用的表 (引用的是哪一列)

Select * from 表名: 查询这张表里面的所有数据

Select 列名1,…,列名n from 表名:多列查询

select 列名 from 表名:单列查询

Select 列名1 as 别名1,列名n as 别名n from 表名:查询的时候命名别名

Select distinct(需要去除重复的列) from 表名:去重查询(只能是单列去除重复)

select * from 表名 where 条件:带条件查询

 

SQL一共由四个部分组成:

DQL 数据查询语言 select

DML 数据操作语言 insert,update,delete

DDL 数据定义语言 create,drop,alter

DCL 数据控制语言 grant,revoke,commit,rollback


Between and : 在……之间

Select * from 表名 where 列名 in (范围):在范围内取值

Select * from 表名 where 列名 is null:判断该列是否有空值

Select * from 表名 where 列名 is not null:判断该列是否有非空的值;

select * from 表名 where 列名 like ‘_或者%值’:模糊查询
_只匹配一个字符
%匹配任意个字符

数据库里面的排序order by
Order by后面可以跟上两个单词 ASC DESC
语法:select * from 表名 order by 要排序的列;

select * from 表名 limit m,n:从m行开始 取n行显示

表连接语法:
内链接语法:Select * from 表1 join 表2 on 主键=外键
左外链接语法:Select * from 表1 left join 表2 on 主键=外键
右外链接语法:Select * from 表1 right join 表2 on 主键=外键

 

表连接:

第一步:看这几张有没有相同的列
第二步:确定这个列是哪张表的主键
第三步:确定好了过后直接写on 主键=外键
第四步:修改*,把*号换成一些需要显示列

自连接:

第一步:将张表以命名别名的方式拆分成两张表
第二步:找准筛选出垃圾数据的关系
第三步:分清左边的数据来自于哪张表,右边的数据来自于哪张表
第四步:才开始写 on 主键=外键
第五步:换*号,显示需要展示出来数据

字符函数:
concat(列1,'字符'); 合并函数
select concat(userName,userPwd) '用户名和密码' from user;
select concat('Hello','World') from dual;

日期函数:
sysdate(); 查询当前系统时间函数
select sysdate() from dual;
select * from user;
dual??
dual是数据库为了让我们试验函数的作用或者功能所提供的一张伪表;
伪表就是实际上不存在,但是在数据库当中依然可以使用,表名就叫dual
转换函数

数字函数

其它函数

统计函数,又称聚合函数,专门为了统计某一列的值而研发出来的函数
count 统计某一列的非空总行数
sum 统计某一列的总和
max 统计某一列的最大值
min 统计某一列的最小值
avg 统计某一列的平均值

count可以忽略列的数据类型
avg sum max min 只能用于数字类型只上;


having 与where的区别:
相同点:having和where都是用于条件筛选
不同点:having多与group by 结合使用,用于分组过后的条件筛选where用于分组之前的筛选

 

子查询语法:
Select * from 表名 where 列名 in (Select 相同列 from 表名)
Select * from 表名 where 列名 比较运算符 (select 数字列 from 表名)
注意点:如果在where后面嵌套了子查询,一定要记得把 * 号换成where 后面的那个列名

 

添加索引的语法:
Alter table 表名 add 索引的类型 索引的名字 (需要添加索引的列)
ALTER TABLE `orderdetail`
ADD INDEX `orderdetailNum` (`orderdetailNum`) ;
删除索引的语法:
Alter table 表 drop 索引类型 索引的名字

 

事务:
Set autocommit=0;
关闭自动提交,开启事务
Set autocommit=1;
开启自动提交,关闭事务;
start transaction; -- 开启一个事务点;记录原有表中的数据,如果一旦出错,直接回到这个事务点之上
set autocommit=0; -- 开启事务

 

视图:就是一张虚拟表格里面存储了查询结果;
特点:隐藏真正的表名,让人不知道你的表名或者列名真正叫什么

创建试图的语法:create view 视图名字 as 查询语句

删除视图语法:drop view 视图名字

 

 

 

 mysql查询表内所有列名,并用逗号分隔:

SELECT GROUP_CONCAT(COLUMN_NAME SEPARATOR ",") FROM information_schema.COLUMNS 
WHERE TABLE_SCHEMA = '数据库名称' AND TABLE_NAME = '表名'

 

 

当行内容过长时,尾部+\G 将结果以垂直方向输出。

mysql> select * from db_archivelog\G

 

 

清空自增列的值:

 alter table mr_city AUTO_INCREMENT=1;

 

 

转载于:https://www.cnblogs.com/yc-c/p/8867239.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250502.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数码相机控制点的自动定位检校

为简化控制场相机检校中的人工量测控制点的繁琐工作,提高相机检校精度,本文提出一种方法:只需均匀量测少量控制点的像方坐标获取相机检校初始参数,便可通过动态模板匹配实现单影像相机检校的控制点高精度自动定位检校。实验证明此方法检校精度与人工量测检校精度相近。 https:/…

Java 常用类

Java 常用类 字符串相关类 String类:构造字符串对象 常量对象:字符串常量对象是用双引号括起的字符序列。 例如:”你好”、”12.97”、”boy”等。 字符串的字符使用Unicode字符编码,一个字符占两个字节 String类较常用构…

koa --- restful规范及其栗子

遵循Restful规范的简单的栗子 前端代码: <html><head><script src"https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script src"https://unpkg.com/element-ui/lib/index.js"></script><script src&qu…

软工五:四则运算

题目要求 本次作业要求两个人合作完成&#xff0c;驾驶员和导航员角色自定&#xff0c;鼓励大家在工作期间角色随时互换&#xff0c;这里会布置两个题目&#xff0c;请各组成员根据自己的爱好任选一题。 题目一&#xff1a; 我们在刚开始上课的时候介绍过一个小学四则运算自动生…

Tomcat 配置Https

https://www.cnblogs.com/wanghaoyuhappy/p/5267702.html JDK1.8 keytool 生存证书 C:\keys\tomcat.keystore 1:证书生成 命令如下: keytool -genkey -alias tomcat -keypass 123456 -keyalg RSA -keysize 1024 -keystore C:/keys/tomcat.keytore -storepass 123456 keytool 使…

koa --- 使用koa-multer和element-ui组件上传头像

文件上传 前端代码 <script src"https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src"https://unpkg.com/element-ui/lib/index.js"></script> <linkrel"stylesheet"href"https://unpkg.co…

PKUSC2018训练日程(4.18~5.30)

(总计:共66题) 4.18~4.25&#xff1a;19题 4.26~5.2&#xff1a;17题 5.3~5.9: 6题 5.10~5.16: 6题 5.17~5.23: 9题 5.24~5.30: 9题 4.18 [BZOJ3786]星系探索(伪ETT) [BZOJ4337][BJOI2015]树的同构(树的最小表示法) [BZOJ3551][ONTAK2010]Peaks(加强版)(Kruskal重构树,主席树) …

笔记:less的三种使用方法

直接在浏览器端使用 第一步&#xff0c;引入 .less 文件&#xff08;注意要将 rel 属性设置为“stylesheet/less”&#xff09; <link rel"stylesheet/less" type"text/css" href"styles.less" /> 第二步&#xff0c;引入Less.js文件 <…

koa --- nunjucks在Koa中的使用、中间件的配置

Nunjucks在Koa中的应用 app.js const koa require(koa); const app new koa(); const router require(./router) const nunjucks require(koa-nunjuncks-2); app.use(nunjucks({ext: html, // 指定视图文件默认后缀path: path.join(__dirname, views), // 指定视图目录…

2018福大软工实践第六次作业

目录 NABCD分析引用N(Need&#xff0c;需求)&#xff1a;A(Approach&#xff0c;做法)&#xff1a;B(Benefit&#xff0c;好处)&#xff1a;C(Competitors&#xff0c;竞争)&#xff1a;D(Delivery&#xff0c;交付)&#xff1a;初期中期个人贡献分评定原则评定细则本组现场答辩…

day32—CSS多列布局学习

转行学开发&#xff0c;代码100天——2018-04-17 关于多列布局&#xff0c;前期已经梳理过&#xff0c;今天的培训课程学习中再次提及&#xff0c;趁此也做个总结和检验。 多列布局的介绍参考&#xff1a; day08—css布局解决方案之多列布局关于多列布局的类型和方法&#xff1…

JDBC 事物处理

JDBC 事物处理 •事务&#xff1a;指构成单个逻辑工作单元的操作集合 •事务处理&#xff1a;保证所有事务都作为一个工作单元来执行&#xff0c;即使出现了故障&#xff0c;都不能改变这种执行方式。当在一个事务中执行多个操作时&#xff0c;要么所有的事务都被提交(commit…

centos6上安装mysql8.0版本

本博客是采用yum源的方式安装&#xff0c;非常的方便和快捷。(redhat 与centos7 等操作系统都可以采用此方法&#xff0c;步骤大体一致) mysql官网地址: https://dev.mysql.com 开始安装&#xff1a; 1.清理环境&#xff0c;查看有没有之前安装过的mysql记录&#xff0c;清理…

koa --- 使用koa-multer上传文件+elementUI

核心代码 const upload require(koa-multer) ({dest: ./public/images}); router.post(/upload, upload.single(file), ctx>{console.log(file, ctx.req.file);console.log(body, ctx.req.body);ctx.body 上传成功; })目录结构如下 基本思路 1.通过浏览器访问url: http:…

[bzoj4003][JLOI2015]城池攻占_左偏树

城池攻占 bzoj-4003 JLOI-2015 题目大意&#xff1a;一颗n个节点的有根数&#xff0c;m个有初始战斗力的骑士都站在节点上。每一个节点有一个standard&#xff0c;如果这个骑士的战斗力超过了这个门槛&#xff0c;他就会根据城池的奖励增加自己的战斗力。具体地&#xff1a;每一…

Java Web Servlet

Java Web Servlet Servlet是在服务器上运行的小程序。一个Servlet就是一个Java类&#xff0c;并且可以通过“请求-响应”编程模型来访问的这个驻留在服务器内存里的Servlet程序。 Servlet可完成以下功能&#xff1a; 读取客户端&#xff08;浏览器&#xff09;发送的显式的数…

第二篇 python基础知识总结:数据、运算符

引子 我们跟任何人交流&#xff0c;说的每一句都是都一些文字组成&#xff0c;包含名词、动词、语句、标点符号等&#xff0c;组成我们说普通话构成的基本要素。同理我们学习python语言也要明白这些基本要素&#xff0c;也就是我们常说的基本语法&#xff0c;这是我们必须掌握的…

【BZOJ1797】[AHOI2009]最小割(网络流)

【BZOJ1797】[AHOI2009]最小割&#xff08;网络流&#xff09; 题面 BZOJ洛谷 题解 最小割的判定问题&#xff0c;这里就当做记结论吧。&#xff08;源自\(lun\)的课件&#xff09; 我们先跑一遍最小割&#xff0c;求出残量网络。然后把所有还有流量的边拿出来跑\(Tarjan\)缩\(…

koa --- 使用Sequelize连接mysql

Sequelize介绍 为了快捷开发,社区出现了一系列的ORM(Object Relational Mapping)类库ORM的字面意思为对象关系映射,它提供了概念性的、易于理解的模型化数据的方法。通过ORM,可以降低操作数据库的成本。开发者不需要通过编写SQL脚本来操作数据库,直接通过访问对象的方式来查询…

Java Web Jsp

Java Web Jsp JSP全称Java Server Pages&#xff0c;是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。 JSP是一种Java servlet&#xff0c;主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHT…