MySQL 基本语句(2)
1.创建数据库 :create database 名称 [charset 字符集 collate 校对规则] ; 如:
drop database if exists `mydb` ; # 若存在就删除
create database `mydb` default charset=utf8 collate=utf8_general_ci ;
2.查看校队规则 :show collation;
3.查看数据库/表 :show databases/tables;
4.显示创建的数据库/表 :show create database/table 数据库名/表名[\G];
5.查看当前使用的数据库 :select database();
6.创建表 :create table 表名(
字段名 数据类型 [该字段约束条件],
字段名 数据类型 [该字段约束条件],
......
)[engine=InnoDB default charset=utf8mb4 collate=utf8mb4_general_ci];
7.删除数据集/表 :drop database/table 名;
8.查看数据表 :describe 表名 ;
或者 desc 表名;
9.修改表名 :alter table 表名 rename 新表名;
或者 rename table 表名 to 新表名;
10.主键约束(非空+唯一) :primary key
外键约束:foreign key...reference...
唯一约束 :unique
非空约束 :not unll
检查约束 :check(条件)
11.添加数据 :insert into 表名(字段名,字段名,字段名...不写默认全部字段) values
(数据,数据,数据),
(数据,数据,数据),
...;
或者 :insert into 表名
set 字段名=值,字段名=值,...;
12.删除数据 :delete from 表名 where 过滤条件;
或者 truncate 表名;
13.更新数据 :update 表名 set 字段名=值,字段名=值...where 过滤条件;
14.查询 :select * from 表名;
select 字段名,字段名,...from 表名;
过滤:where 过滤条件
in(集合)、 between...and(范围)、 is null(空值) 、distinct(排除重复值)、 like '%*%' (模糊查询) 、and(并且)、 or(或者)
15.复制表 :create table 新表名 like 旧表名; (拷贝结构)
create table 新表名 as (select * from 旧表名); (拷贝结构和数据)
insert into 新表名 as (select * from 旧表名); (拷贝数据)
16.聚合函数 :count()返回某列的行数, sum()返回某列的和 avg()返回某列的平均值,max()返回某列的最大值, min()返回某列的最小值, IFNULL(参数,如果为空则改为的值)
17.排序 :order by 字段名 asc/desc;
asc为升序 desc为降序 默认为asc
18.分组 :group by 字段名 having 过滤条件;
19.限制查询结果 :limit a,b;
a代表开始的标号(第一条为0) b代表显示的条数
20.子查询 :select 字段名,(子查询) from 表名;
select * from (子查询);
select * from 表名 where (子查询);
子查询关键字:exists(子查询):只要里面的子查询返回了行,exists的值为真,外部查询就执行。
字段名 (比较运算符如>) all (子查询) :大于子查询里的每一个值。
字段名 (比较运算符如>)some或any (子查询) :大于子查询里的任何值,也就是最小值。
in(子查询) :存在。
21.联合操作 :select * from a
union
select * from b;
将两张表纵向连接起来,但是两张表的字段数必须相同
22.外键约束 :alter table 表名
add constraint 外键名 foreign key (外键字段名) references 外键表名 (主键字段名);
删除外键 :alter table 表名 drop foreign key 外键名
23.联表查询 :内连接 :select * from 表1 [inner] join 表2 [on/where 表1.关系字段=表2.关系字段]; (on是内联前过滤 ,where是产生笛卡尔乘积之后再过滤)
cross join(交叉连接,在MySQL中等价于inner join)
外连接(必须写关联条件) 左外: select * from 表1 left [outer] join 表2 on 表1.关系字段=表2.关系字段;
右外: select * from 表1 right [outer] join 表2 on 表1.关系字段=表2.关系字段;
全外: select * from 表1 full [outer] join 表2; (MySQL不支持,可以用union)
自连接 :select * from 表1 别名1 join 表1 别名2;
24.创建视图 :create view 视图名 as
select语句
查看视图 : ①desc 视图名
②show table statas like '视图名'
③show create view 视图名
修改视图 :create or replace view 视图名 as
select语句
或者 alter view 视图名 as
select语句
25.case when 字段=数据1 then '返回值1' when 字段=数据2 then '返回值2'... else '返回值3’ end [as] 字段别名
例如:select id,name,(case when ismale=1 then '男' when ismale=2 then '女' else '未知性别' end) as 性别 from employee;
26.备份
备份所有数据库:
mysqldump –u 用户名 –p –h 主机名 --all-databases > 备份文件名.sql
备份整个或多个数据库:
mysqldump –u 用户名 –p –h 主机名 --databases db1 db2 db3 … > 备份文件名.sql
备份某个数据库的某些表:
mysqldump –u 用户名 –p –h 主机名 数据库名 表1 表2 表3… > 备份文件名.sql
27.恢复
通过mysqldump,如果使用了"--all-databases"或"--databases"选项,则在备份文件中包含CREATE DATABASE和USE语句,故并不需要指定一个数据库名去恢复备份文件。
mysql –u 用户名 –p < 备份文件.sql
通过mysqldump,如果没有使用"--databases"选项,则备份文件中不包含CREATE DATABASE和USE语句,那么在恢复的时候必须指定数据库。
mysql –u 用户名 –p 数据库名 < 备份文件.sql
28.设置自动创建和自动更新时间(格式是:2018-01-01 00:00:00)
自动创建时间:`create_datetime` timestamp default current_timestamp
自动更新时间:`update_datetime` timestamp default current_timestamp on update current_timestamp
29.修改用户密码
alter user username@localhost identified by 'newpwd';
30.给用户授权
grant all privileges on dbname.* to username@localhost;
flush privileges; # 刷新生效
至此,转载请注明出处。

MySQL 基本语句(2)的更多相关文章
- MySQL的语句执行顺序
MySQL的语句执行顺序 MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作.其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入 ...
- strace追踪mysql执行语句
一.strace参数 strace是Linux环境下的一款程序调试工具,用来监察一个应用程序所使用的系统调用及它所接收的系统信息.追踪程序运行时的整个生命周期,输出每一个系统调用的名字,参数,返回值和 ...
- MySQL 基础语句
MySQL 基础语句 多个知识点 ----------------------------------------------------------------------------------- ...
- MySQL DELETE语句和TRUNCATE TABLE语句的区别
MySQL DELETE语句和TRUNCATE TABLE语句的区别 2010-10-08 16:05 佚名 互联网 字号:T | T 在MySQL数据库中,DELETE语句和TRUNCATE TAB ...
- 使用 xlrd 模块实现对excel 的读取、excel转json 、excel 转 mysql insert 语句
#-*- coding:utf-8 -*- # 处理 excel 中的 area 为 Mysql insert 语句 import xlrd, json, codecs, os # data = xl ...
- MySQL update语句和insert插入语句写法完全不一样啊,不要搞混
1.mysql update 语句: update user set name = 'xiaoming',age = 18 where uid = 3000; 更新记录时update操作也不需要写ta ...
- 最常用的MySQL命令语句
e良师益友网导读:MySQL数据库是应用最广的数据库之一,在MySQL数据库中有各种各样的命令调用语句,在平常工作中非常实用的命令,对于初学者来说,掌握文中的MySQL命令语句,是非常实用的,下面我们 ...
- MySQL 常用语句 (汇集)
原文地址:MySql常用语句作者:wuyanle 一.mysql常用语句 创建,删除和最基本查询: 显示数据库 mysql->show databases; 创建数据库 mysql-> ...
- mysql 插入语句
mysql 插入语句 什么时候用单引号,什么时候不用? 1.先创建一个表 create table user(username varchar(255),age int,marry boolean,b ...
- MySQL查询语句执行过程及性能优化(JOIN/ORDER BY)-图
http://blog.csdn.net/iefreer/article/details/12622097 MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY) 标签 ...
随机推荐
- python不同开根号速度对比
import time import math import numpy as np def timeit1(): s = time.time() for i in range(750000): z= ...
- 用dos命令导出一个文件夹里面所有文件的名字(装逼利器)
首先,当然是在相关的文件夹打开dos命令窗口. 然后,输入如下命令:dir/b >a.txt 如果你非常了解dos命令,那么你一定会觉得这个东西简单到爆,而且我的理解和猜想都有些无知. 但如果你 ...
- Hadoop学习笔记(一):安装与配置
1. 查看VM的网络配置 2. 打开虚拟机,配置网络: a). vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 注意:这里的192.168.9 ...
- Java线程池ThreadPoolExecutor使用和分析(一)
相关文章目录: Java线程池ThreadPoolExecutor使用和分析(一) Java线程池ThreadPoolExecutor使用和分析(二) - execute()原理 Java线程池Thr ...
- 使用Laya引擎开发微信小游戏(下)
本文由云+社区发表 6. 动画 6.1 创建伞兵对象 在src目录下创建一个新目录role,用来存放游戏中角色. 在role里创建一个伞兵Soldier.ts对象文件. module role{ ex ...
- https跨域到http问题解决
整体结构 用户--https-->Nginx--http-->Tomcat 页面中包含了iframe,iframe的src也是Https的,但是当frame里面的内容表单提交后tomcat ...
- 【详解JavaScript系列】JavaScript之变量
一 概述 本篇文章将讲解JavaScript中的变量,大致内容归结为: 1.变量定义 包括变量声明和变量初始化 2.变量种类 包括局部变量和全局变量 3.变量链式作用域及访问 二 内容 (一)变量 ...
- tcp_wrapper过滤
1.1 wrap简介 wrap工作在内核空间和应用程序中间的库层次中.在内核接受到数据包准备传送到用户空间时都会经过库层次,对于部分(只是部分)应用程序会在经过库层次时会被wrap库文件阻挡下来检查一 ...
- Go Web:数据存储(1)——内存存储
数据可以存储在内存中.文件中.按二进制序列化存储的文件中.数据库中等. 1.内存存储 2.CSV文件存储 3.gob序列化存储 内存存储 将数据存储到内存中.此处所指的内存是指应用程序自身的内存空间( ...
- 基于 LWIP 建立 TCP Server 与主机通信实验
LWIP 版本:2.0.3 上一篇文章是写如何将 LWIP 移植到板子上,今天晚上记录基于 LWIP 实现与主机的网络通信. 先是打开了原子的实验例程,大概浏览了一遍,觉得 TCP 网络网络通信也就是 ...