MySQL学习——基础
本文是MySQL的基础知识。
Linux启动MySQL服务命令 :
service mysql start
Linux关闭MySQL服务命令 :
service mysql stop
登录MySQL命令:
mysql -u <用户名>
查看数据库命令:
show databases;
切换数据库命令:
use <数据库名>[;]
查看表命令:
show tables;
退出MySQL命令:
quit/exit
创建数据库命令:
create database <数据库名>;
新建数据表命令:
create table <表名>
(列名1 数据类型(数据长度),
…………
列名n 数据类型(数据长度)
);
执行sql文件命令:
source <sql文件路径>;
MySQL数据类型
数据类型 | 大小(字节) | 用途 | 格式 |
int | 4 | 整数 | |
float | 4 | 单精度浮点数 | |
double | 4 | 双精度浮点数 | |
enum | 枚举,单选 | ENUM('a','b') | |
set | 多选 | set('1','2','3') | |
date | 3 | 日期 | yyyy-MM-dd |
time | 3 | 时间点或持续时间 | yyyy-MM-dd hh:ms:ss |
year | 1 | 年份值 | yyyy |
char | 0-255 | 定长字符串 | |
varchar | 0-255 | 变长字符串 | |
text | 0-65535 | 长文本数据 |
除此之外,还有tinyint、smallint、mediumint、bigint.
char与varchar区别:
char定长,字符不够时补齐;varchar变长,没有补齐的空字符
enum与set区别:
enum定义时要一一枚举;set是多选的
MySQL约束分类:
约束类型 | 主键 | 默认值 | 唯一 | 外键 | 非空 |
关键字 | PRIMARY KEY | DEFAULT | UNIQUE | FOREIGN KEY | NOT NULL |
主键约束命令:
<列名> <数据类型>[数据长度] PRIMARY KEY
或者
CONSTRAINT <主键名> PRIMARY KEY (<列名1>,…,<列名n>)
默认值约束命令:
<列名> <数据类型>[数据长度] DEFAULT <默认值>
唯一约束命令:
UNIQUE <(列名)>
外键约束命令:
CONSTRAINT <外键> FOREIGN KEY <(列名)> REFERENCES <表名><(列名)>
非空约束命令:
<列名> <数据类型>[数据长度] NOT NULL
插入数据命令:
insert into <表名>(<列名1>,…,<列名n>) values
(值1,…,值n),
…………
(值1,…,值n);
删除库命令:
drop database <库名>;
删除表命令:
drop table <表名>;
查询命令:
select <列名n> from <表名> where <限制条件>;
数学符号条件:
= < > <= >= <> !=
AND 并且
OR 或者
BETWEEN ...... AND ...... 两者之间
IN 在范围内
NOT IN 不在范围内
通配符:
_(下划线) : 代表一个未指定字符,占一位
% :代表不定个未指定字符
与 like 配合使用
结果排序:
order by [<关键字>];
ASC : 升序(默认)
DESC : 降序
内置函数:
count | sum | avg | max | min |
计数 | 求和 | 求平均值 | 最大值 | 最小值 |
count 可以用于任意数据类型; sum和avg 用于数字类数据类型;max和min 用于数值、字符、日期时间类型
AS : 别名
子查询
嵌套查询
连接查询命令
jion … on …
左连接(影响右表) : left jion … on …
右连接(影响左表) : right jion … on …
左右都有影响的连接 : inner jion … on …
表重命名命令
rename table <表原名> to <表新名>;
alter table <表原名> rename <表新名>;
alter table <表原名> rename to <表新名>;
增加列命令
alter table <表名> add [column] <列名> <数据类型> <约束>;
或者 alter table <表名> add <列名> <数据类型> <约束>;
删除列命令
alter table <表名> drop [column] <列名>;
列重命名命令
alter table <表名> change <列原名> <列新名> <数据类型> <约束>;
修改数据类型命令
alter table <表名> modify <列名> <新数据类型>;
修改值命令
update <表名> set 列1=值1,…,列n=值n where <条件>;
删除行记录命令
delete from <表名> where <条件>;
创建索引命令
alter table <表名> add index <索引名>(<列名>);
或者 create index <索引名> on <表名>(列名);
查看索引命令
show index from <表名>;
创建视图命令
create view <视图名>(列1,…,列n) as select 列1,…,列n from <表名>;
导入命令
将一个文件的数据导入到一张数据表里
load data infile <'文件路径和文件名'> into table <表名>;
导出命令
把某表中的数据保存到文件中
select 列1,…,列n into outfile <'文件路径和文件名'> from <表名>;
数据库备份命令
mysqldump -u <用户名,如root> <数据库名> > <文件路径和文件名>;
数据表备份命令
mysqldump -u <用户名,如root> <数据库名> <表名> > <文件路径和文件名>;
数据恢复命令
source <文件路径和文件名>;
或者 mysql -u <用户名,如root> <数据库名> < <文件路径和文件名>;
MySQL学习——基础的更多相关文章
- MySQL学习基础 之 起航篇
MySQL 学习来自慕课网<与MySQL的零距离接触> MySQL是一个开源的关系型数据库管理系统 MySQL分为社区版和企业版 MySQL登录和退出相关的命令 参数 描述 -D,--da ...
- MySQL学习基础
MySQL是被Sun公司收购了,所以也有热咖啡图标,不过MySQL的作者后来又做了一个MariaDB,小海豚图标,也很好用. MySQL学习: <MySQL网络数据库设计与开发>(电子工业 ...
- MySQL学习基础知识1
什么是数据库? 数据库就是存储数据的仓库. 存储方式: 变量 无法永久存储 文件处理,可以永久存储,弊端:文件只能在自己的计算机读写,无法被分享(局域网除外) 数据库分类: 1.关系型数据库 提供某种 ...
- MySQL学习基础知识2
1.基础语句 查 select(* | 字段名 | 四则运算 | 聚合函数) from 表名称; 加上as取别名 as可省略 如:select name, (math+english)/2 total ...
- Mysql学习---基础操作学习2
基本数据类型 Mysql基本数据类型:二进制,数值[整数,小数].字符串[定长,变长]. 二进制数据.时间和枚举集合 bit[(M)] 二进制位(101001),m表示二进制位的长度(1-64),默认 ...
- Mysql学习基础语法
-- Mysql 数 据 库 语 法 创建数据库 create database 数据库名; 创建表 ) ); 复制表和数据 create table 复制后新的表名 select * from 旧表 ...
- mysql学习基础知识3
1.视图 简化sql语句的编写,限制可以查看的数据 一张虚拟的表,不占任何内存,查视图时都是临时从所查的表中拿数据 特点: 对于视图的增删改查 都会同步到原始表 对原始表的修改,会同步到视图内可查看的 ...
- Mysql学习---基础操作学习
1.1. 基本操作 数据库引擎 Inodb:支持事务[原子性操作,完成一些列操作后才算完成操作,否则rollback] MyISAM: 支持全文索引,强调了快速读取操作,主要用于高负载的select ...
- 借助node.js + mysql 学习基础ajax~
很多小白不知道ajax怎么学,所以就弄了个node后台模拟下基本的ajax请求. 环境要求是安装node~ 先上linkMysql.js var mysql = require('mysql') va ...
随机推荐
- 笔记-python-functool-@wraps
笔记-python-functool-@wraps 1. wraps 经常看到@wraps装饰器,查阅文档学习一下 在了解它之前,先了解一下partial和updata_wrapper这两个 ...
- spark练习---ip匹配以及广播的特性
今天,我们还是在介绍spark的小练习,这次的小练习还是基于IP相关的操作,我们可以先看一下今天的需求,我们有两个文件, 第一个文件,是IP的字典,也就是我们上一篇介绍过的,就是表明了所有IP字段所属 ...
- 《Cracking the Coding Interview》——第9章:递归和动态规划——题目6
2014-03-20 03:27 题目:输出所有由N对括号组成的合法的括号序列.比如n=2,“()()”.“(())”等等. 解法:动态规划配合DFS,应该也叫记忆化搜索吧.一个整数N总可以拆成若干个 ...
- Xcode坑之一Invalid argument
Xcode坑之一Invalid argument 正在搞代码,运行程序时突然发现程序不能再次运行了,一运行就提示Invalid argument 然后FQ各种查啊,试了好多方法都不行,重启,重置,我用 ...
- window.parent 、window.top及window.self 详解
在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口. 1. window.self ...
- 更改maven本地仓库地址
1.进入maven安装conf文件中,编辑settings.xml文件,新增图中的圈出的内容(我想要存放的地址是D:\HMY\m2\repository) 2.复制settings.xml文件至D:\ ...
- Python全栈工程师(迭代器、字节串)
ParisGabriel 每天坚持手写 一天一篇 决定坚持几年 为了梦想为了信仰 Python人工智能从入门到精通 迭代器 Iterator: 用<&g ...
- 真的讨厌ClickOnce这东西
ClickOnce真的问题多. 升级问题,每次升级后都新建一个文件夹,旧的程序数据全都没有.迁移过来也一堆问题.还有录音问题,Win7下录音报错,最后查来查去就是将文件路径太太长,要控制长度.还有安装 ...
- icon fonts generator & svg
icon fonts generator https://icomoon.io/app/#/select https://icomoon.io/ http://fontastic.me/ http:/ ...
- [CF1000E]We Need More Bosses
题目大意:给一张无向图,要求找一对$s$和$t$,使得其路径上的割边是最多的,输出其数量. 题解:把边双缩点以后求树的直径. 卡点:无 C++ Code: #include <cstdio> ...