MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,而MySQL AB 公司被 Oracle 公司收购,故 MySQL 现在属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性

MySQL 是开源的,所以你可以免费使用它。

MySQL 支持大型的数据库,可以处理拥有上千万条记录的大型数据库。但是根据实际生产经验,当单表的数据量达到三千万之后,数据库性能急剧下降,甚至整个数据库都瘫痪了,登录不上。

MySQL 使用标准的 SQL 数据语言形式,结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

MySQL 安装好了之后,就可以登录使用了。最主要就是使用 SQL 进行增删改查的操作。

1、查看数据库

# mysql -u root -p'P@ssw0rd'

mysql> show databases;

2、切换数据库

mysql> use mysql;

注意:

1:information_schema  # 这个数据库保存了 MySQL 服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型不访问权限等。

2:performance_schema # MySQL 5.5开始新增一个数据库:PERFORMANCE_SCHEMA,主要用于收集数据库服务器性能参数。并且库里表的存储引擎均为 PERFORMANCE_SCHEMA,而用户是不能创建存储引擎为 PERFORMANCE_SCHEMA 的表。

3:mysql 库是系统库,里面保存有账户信息,权限信息等。

4:mysql5.7 增加了sys 系统数据库,通过这个库可以快速的了解系统的元数据信息。元数据是关于数据信息的数据,如数据库名或表名,列的数据类型,或访问权限等。

3、创建数据库

语法:create database 数据库名;

创建数据库注意事项:

1、在文件系统中,MySQL 的数据存储区将以目录方式表示 MySQL 数据库。因此,上面命令中的数据库名字必须与操作系统的约束的目录名字一致。例如不允许文件和目录名中有 \,/,:,*,?,”,<,>,| 这些符号,在 MySQL 数据库名字中这些字母会被自动删除。<遵从目录的约束>

2、数据库的名字不能超过64个字符,包含特殊字符的名字或者是全部由数字或保留字组成的名字必须用反引号``包起来。

3、数据库不能重名。

mysql> create databases 'YF-test';    # 使用单引号,建库失败

mysql> create databases `YF-test`;   # 使用反引号,建库成功

# ls /var/lib/mysql/  #查看数据库存放目录

4、查看自己所处的位置及默认所在的位置

mysql> select database();

+------------+

| database() |

+------------+

| NULL       |

+------------+

1 row in set (0.00 sec)

# 如果什么数据库也没有选择,默认显示的是NULL,Null意味着没有选择数据库

mysql> use mysql;

Database changed

mysql> select database();

+------------+

| database() |

+------------+

| mysql      |

+------------+

1 row in set (0.00 sec)

5、删除数据库

删除数据库没有任何提示,要慎重操作;最好操作的时候,旁边有人看着你操作。

方法1:mysql> drop database `create`;

方法2:直接到数据库存放目录移出就行。

6、查看库有哪些表,查看表,要进入到数据库再查看

7、创建表:

语法:create table 表名 (字段名 类型, 字段名 类型, 字段名 类型);

mysql> create database test;

mysql> use test;

mysql> create table student(id int(20),name char(40),age int);

8、查看表的结构

9、删除表

mysql> drop table student;

10、修改表名称alter

语法:alter table 表名 rename 新表名;

11、修改表中的字段类型

语法:alter table 表名 modify 要修改的字段名 要修改的类型;

mysql> alter table students modify id int(10);

12、修改表中的字段类型和字段名称

语法:alter table 表名 change 原字段名 新字段名 新字段类型;

注意:mysql 不支持同时修改多个字段,

MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name]

注:CHANGE 和MODIFY的区别:

CHANGE 对列进行重命名和更改列的类型,需给定旧的列名称和新的列名称、当前的类型。MODIFY 可以改变列的类型,此时不需要重命名(不需给定新的列名称)。

13、在表中添加字段

语法:alter table 表名 add 字段名 字段类型;

mysql> alter table students add sex enum('M','W');

14、指定位置添加字段,在第一列添加一个字段

mysql> alter table students add uid int(10) first;

> alter table students add address char(40) after age;

15、删除表中字段:

语法:alter table 表名 drop 字段名 ;

mysql> alter table students drop address;

16、插入字段<记录>insert

语法:insert into 表名values (字段值1,字段值2, 字段值3);

mysql> create table student(id int(20),name char(40),age int);

mysql> insert into student values(1,'zhangs',21);

插入记录时要对应相对的类型

mysql> insert into student values(2,'lis',24),(3,'wange',26);

同时插入多条,使用,分开

mysql> insert into student (id,name)values(4,'hangl');

17、查询表中记录:

语法:select * from 表名称;

mysql> select * from student;     # *表示所有

当字段比较多的时候我们也可以使用\G

mysql> select * from student\G

只查询表中某个字段的内容:

mysql> select name from student;

18、查看别的数据库的表或者不在本数据库上进行查看

语法:SELECT 字段 FROM 数据库名.表名;

mysql> select *from HA.student;

# 查看某个数据库下指定的表内容,数据库名.表名

19、删除记录

删除id为3的行

mysql> delete from students where id=3;

删除age为空的行

mysql> delete from students where age is null;

20、更新记录

mysql> update students set sex='M' where id=2;

mysql> update students set id=2;          # 所有的都变为2

mysql> update students set stname='zhangsan',age=21 where uid=1;

# 同时更新多个字段时候用,逗号隔开

21、SQL基础条件查询语句

语法:select 字段名1,字段名2 from 表名 [where 条件];

(1)查询students表中的name,age

mysql> select name,age from student;

(2)去重复查询distinct

mysql> select distinct name,age from student;

mysql> select  distinct id,name,age from student where id=3;

mysql> select distinct * from students;  # mysql的distinct可以对*使用

(3)使用and和or进行多条件查询

or和and 同时存在时,先算and的两边值,逻辑与先执行

mysql> select id,name,age from student where id>3 and age>25;

mysql> select id,name,age from student where id>3 or age>25;

mysql> select * from students where stname='zhangsan' and (age=21 or age=24);

注意and和or都是用的时候的逻辑关系

(4)MySQL区分大小写查询

MySQL查询默认是不区分大小写的,对比如下:

mysql> select name from student where name='jk';

mysql> select * from student where binary name='jk';

# BINARY是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写。

(5)MySQL查询排序:

语法:select distinct 字段1,字段2 from 表名order by 字段名;

默认为升序  asc

mysql> select distinct id from student order by id asc;

mysql> select distinct id from student order by id desc;

欢迎大家关注微信公众号,一起学习交流!

我的公众号!

https://mp.weixin.qq.com/s/KqlrX13DSQdZb3BVT2dqfA

MySQL 数据库的基本使用的更多相关文章

  1. nodejs进阶(6)—连接MySQL数据库

    1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...

  2. 当忘记mysql数据库密码时如何进行修改

    因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...

  3. MySQL数据库和InnoDB存储引擎文件

    参数文件 当MySQL示例启动时,数据库会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等.在默认情况下,MySQL实例会按照一定 ...

  4. 一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库

    说起Oracle数据库,以前没用过Oracle不知道,但是这1年用Oracle后,发现真的是想狂吐槽,特别是那个.NET驱动和链接字符串,特别奇葩.总归是和其他数据库不一样,标新立异,不知道为何.另外 ...

  5. CentOS下mysql数据库常用命令总结

    mysql数据库使用总结 本文主要记录一些mysql日常使用的命令,供以后查询. 1.更改root密码 mysqladmin -uroot password 'yourpassword' 2.远程登陆 ...

  6. [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率

    使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢?在JDBC编程接口中Statement 有两个方法特别值得注意:通过使用addBatch( ...

  7. mysql数据库主从同步

    环境: Mater:   CentOS7.1  5.5.52-MariaDB  192.168.108.133 Slave:   CentOS7.1  5.5.52-MariaDB  192.168. ...

  8. PDO连接mysql数据库

    1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...

  9. mysql数据库开发常见问题及优化

    mysql 数据库是被广泛应用的关系型数据库,其体积小.支持多处理器.开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高.在使用 mysql 的过程中不规范的 SQL 编写.非最优的 ...

  10. 如何在删除ibdata1和ib_logfile的情况下恢复MySQL数据库

    昨天,有个朋友对公司内部使用的一个MySQL实例开启binlog,但是在启动的过程中失败了(他也没提,为何会失败),在启动失败后,他删除了ibdata1和ib_logfile,后来,能正常启动了,但所 ...

随机推荐

  1. C#多线程(16):手把手教你撸一个工作流

    目录 前言 节点 Then Parallel Schedule Delay 试用一下 顺序节点 并行任务 编写工作流 接口构建器 工作流构建器 依赖注入 实现工作流解析 前言 前面学习了很多多线程和任 ...

  2. Spring Boot devtool的使用

    文章目录 添加Spring Boot devtool依赖 默认属性 自动重启 Live Reload 全局配置 Spring Boot devtool的使用 Spring Boot为我们提供了一个便捷 ...

  3. 在IBM Cloud中运行Fabric

    文章目录 打包智能合约 创建IBM Cloud services 创建fabric网络 创建org和相应的节点 创建order org和相应节点 创建和加入channel 导入智能合约 上篇文章我们讲 ...

  4. js之 DOM与BOM

    JavaScript HTML DOM (文档对象模型)(Document Object Model) 什么是DOM? DOM是W3C标准. DOM定义了访问文档的标准: “W3C文档对象模型(DOM ...

  5. while循环脚本

    [root@oldboy ~]# (while :;do date;sleep 5;done)& fg ctrl c退出 fg ( while :; do date; sleep 5; don ...

  6. Element UI表格组件技巧:如何简洁实现跨页勾选、跨页统计功能

    业务场景 在使用Element UI的Table组件时,常常面对这样的业务需求: 表格数据的每一项都要提供勾选框,当切换分页时,能够记忆所有页面勾选的数据,以实现批量提交不同页面勾选数据的功能.并且, ...

  7. jQuery里面click、this事件遇到(Django模型里for)相同的id名和class名想获取值

    遇到的原型是这样的!下面我把它简化一下; click事件: 在浏览器里面只能获取横线上面的值,和下面的第一个值!! 这是因为id等级比class高,而且js要求id不能重复! 当 转载于:https: ...

  8. Intellij IDEA 使用Spring-boot-devTools

    转载地址:https://blog.csdn.net/u013938484/article/details/77541050 转载于:https://blog.51cto.com/881206524/ ...

  9. 在Jetson TX2上安装caffe和PyCaffe

    caffe是Nvidia TensorRT最支持的深度学习框架,因此在Jetson TX2上安装caffe很有必要.顺便说一句,下面的安装是支持python3的. 先决条件 在Jetson TX2上完 ...

  10. postman(全局变量设置)

    全局变量 全局变量作用于整个postman工具及所有环境 1.点击小齿轮进入到变量添加页面,点击Globals添加全局变量 2.输入变量名称和变量值 3.接口中设置变量 4.调用 Globals 变量 ...