学习笔记—MySQL基础
数据库的介绍
mysql数据库介绍
开放源码的轻量级关系型数据库管理系统,体积小、速度快、操作便捷。
数据库的启动和连接
mysql数据库启动
在终端输入以下命令,启动mysql服务器
service mysql start
输入命令,查询mysql服务器状态
service mysql status
出现如下提示表示mysql服务器以启动成功

mysql数据库连接
输入账户和密码连接数据库


表示启动成功。
mysql数据库断开连接
输入exit,如果显示Bye表示断开成功。

数据库的操作
显示数据库
show databases;
创建数据库
create database 库名 default character set utf8;
删除数据库
drop database 库名;
使用数据库
use 库名;

表示以成功切换到study数据库。
数据表的操作
显示数据表
show tables;
创建数据表
## 创建表语句
create tables 表名(字段名 类型 约束,字段名 类型 约束,......);
## 注意:mysql是没有序列的,但是可以在创建表的时候直接指定主键是自赠的。
在字段后使用 auto_increment 表示自增。 ## MySQL常见字段类型
数值类型:
int(长度)表示整数类型的数据
float/double表示浮点数
字符类型:
varchar(长度)动态分配存储长度
char(长度)分配固定长度
日期类型:
date:格式为yyyy-mm-dd
datetime:格式为yyyy-MM-dd hh:mm:ss 占用8个字节
timestamp:特点:会自动进行时区的转换,占用4个字节
time:时间
year:年份
其他类型:
TEXT:字符数据
BLOB:二进制数据 ## 约束
主键约束:
在创建表时,在字段后使用 primary key 即可
在创建表语句的最后面使用 constraint 约束名 pirmary key(主键字段名)
非空约束:
在创建表的时候直接在字段后使用 nut null 即可
注意:
mysql的非空约束中空字符是可以存储进去的。
检查约束:
在mysql中是没有检查约束的,但是使用check关键字又不会报错。
解决:
使用代码逻辑进行无效的数据过滤。
使用 mysql 的存储过程。
唯一约束:
在字段名后直接使用 unique 即可
在创建表语句的最后面使用 constraint 约束名 unique(字段名)
外键约束:
在字段名后直接使用 references 父表名(父表主键名)
在创建表语句的最后面使用 constraint 外键约束名 foreign key(字段名) references 父表名(父表主键名) ## 在表外部添加约束
## 主键约束
alter table 表名 add constraint 约束名 pirmary key(主键字段名);
## 唯一约束
alter table 表名 add constraint 约束名 unique key(字段名);
## 非空约束
alter table 表名 modify 字段名 类型 not null;
## 外键约束
alter table 表名 constraint 外键约束名 foreign key(字段名) references 父表名(父表主键名)on delete set null on update cascase;
修改数据表
添加字段:
alter table 表名 add 字段名 类型 约束;
删除字段:
alter table 表名 drop 字段名;
修改字段类型:
alter table 表名 modify 字段名 新的类型;
修改字段名:
alter table 表名 change 字段名 新的字段名 类型;
修改表名:
alter table 表名 rename as 新的表名;
删除数据表
drop table 表名;
查看表创建语句
show create table 表名;
表数据的操作
查询数据
## 单表查询
## 查询全部
select * from 表名;
## 别名
直接在字段后使用即可
select 字段,字段 别名,字段 from 表名;
## 连接符
使用concat(字段名,“连接的字符”)
## 去除重复
使用 distinct 关键字即可
## 排序
order by 字段名
## where字句
select * from 表名 where 判断条件;
## 分组
group by 字段名
注意:
分组可以和字段一起使用
## having
分组后筛选
## 多表查询
select * from 表名1 别名1,表名2 别名2 where 别名1.字段名 判断条件 别名2.字段名; select * from 表名1 别名1 inner join 表名2 字段名2 on 别名1.字段名 判断条件 别名2.字段名;
## 子查询
select * from 表名 where 字段名 in (select 字段名 from 表名 where 查询条件);
增加数据
insert into 表名 values(值1,值2,值3,...); 全字段插入
insert into 表名(主键字段名,字段,字段,...) values(值1,值2,值3,...); 部分字段插入
删除数据
delete from 表名 where 条件;
修改数据
update 表名 set 字段名=值,字段名=值,... where 条件;
分页查询
select * from 表名 limit x,y;
x:从第几条数据开始查询
y:每页显示多少条数据 ## 每页显示n条,查询第m页的信息
select * from 表名 limit m*n-n,n;
数据库的备份
导出
## 导出整个数据库
mysqldump -u root -p 数据库名>/目录/文件名.sql;
## 只导出一个表
mysqldump -u root -p 数据库名 表名>/目录/文件名.sql;
导入
## 方法一 连接数据库之后输入
mysql>source /目录/文件名.sql;
## 方法二 连接数据库之前输入
mysql -u root -p 数据库名<文件名.sql;
学习笔记—MySQL基础的更多相关文章
- 数据库学习笔记 - MySQL基础知识
一.数据库基础知识 1.1 Whats's 数据库 数据库(Database,DB):将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合.如:大型-银行存储的信息,小型-电话簿. 数据 ...
- MyBatis:学习笔记(1)——基础知识
MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...
- mybatis学习笔记之基础框架(2)
mybatis学习笔记之基础框架(2) mybatis是一个持久层的框架,是apache下的顶级项目. mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成满足s ...
- bootstrap学习笔记之基础导航条 http://www.imooc.com/code/3111
基础导航条 在Bootstrap框中,导航条和导航从外观上差别不是太多,但在实际使用中导航条要比导航复杂得多.我们先来看导航条中最基础的一个--基础导航条. 使用方法: 在制作一个基础导航条时,主要分 ...
- Django学习笔记(基础篇)
Django学习笔记(基础篇):http://www.cnblogs.com/wupeiqi/articles/5237704.html
- MySQL学习笔记-MySQL体系结构总览
MySQL体系结构总览 不管是用哪种数据库,了解数据库的体系结构都是极为重要的.MySQL体系结构主要由数据库和数据库实例构成. 数据库:物理操作系统文件或者其它文件的集合,在mysql中,数据库文件 ...
- C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)
一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字 ...
- C#学习笔记(基础知识回顾)之值传递和引用传递
一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的 ...
- C#学习笔记(基础知识回顾)之值类型和引用类型
一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...
随机推荐
- Python之父重回决策层
在Guido van Rossum(吉多·范罗苏姆)卸任BDFL(“终身仁慈独裁者”)一职半年多之后,Python社区迎来了新的治理新方案:指导委员会模式,而经过投票Guido van Rossum也 ...
- Solr 17 - Solr的时间为什么比本地少8小时 (附修改方法)
目录 1 为什么少8小时 2 如何查看Solr的时区 3 修改Solr的时区 3.1 Solr从数据库中同步数据的原理 3.2 为什么要修改时区 3.3 如何修改时区 1 为什么少8小时 (1) 原因 ...
- 我敢说你不一定完全理解try 块,catch块,finally 块中return的执行顺序
大家好,今天我们来讲一个笔试和面试偶尔都会问到的问题,并且在工作中不知道原理,也会造成滥用. 大家可能都知道,try 块用来捕获异常,catch块是处理try块捕获的异常,finally 块是用来关闭 ...
- 联发科AIoT平台i500处理器简介
i500是一款强大而高效的AIoT平台,专为便携式.家用或商用物联网应用而设计,这些应用需要大量的边缘处理.先进的多媒体功能.多台高分辨率相机.相连的触屏显示器和多任务操作系统. 该平台集成了Arm ...
- Liunx小白须知
最近在学习Liunx,从装虚拟机到敲命令出了一些问题,95%的问题从搜索引擎都可以找到.本来想写个虚拟机安装步骤结果忘记截图了,不过没事,网上一大把.写写博文勒就是记录下自己的成长,虽然现在还是个小白 ...
- getopt与getopt_long
如何通过命令行,为程序传入参数,可以使用函数getopt与getopt_long. 函数的声明如下: #include <unistd.h> int getopt(int argc, ch ...
- 远程连接身份验证错误,又找不到加密Oracle修正
远程连接服务器出现了错误,错误信息为:远程连接身份验证错误,又找不到加密Oracle修正. 服务器系统:Windows Server2016 客户端系统:Windows10家庭版和专业版 出错原因 ...
- 巧妙地使用typora编辑有道云笔记
设置方法 找到有道云笔记本地保存路径: 找到有道云笔记的保存的路径:启动有道云 - 设置 - 有道云笔记(本地文件) - 打开文件夹 使用typora打开有道云笔记目录: typora 菜单栏 - O ...
- PHP Iterator迭代对象属性
foreach用法和之前的数组遍历是一样的,只不过这里遍历的key是属性名,value是属性值.在类外部遍历时,只能遍历到public属性的,因为其它的都是受保护的,类外部不可见. class Har ...
- #Java学习之路——基础阶段二(第一篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...