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. Java工作流程引擎系统的退回规则 专题说明

    概述 说明:流程引擎的退回与发送,分别是前进与后退,它是流程引擎的基础功能操作,流程的退回根据不同的应用场景,也是需要不同的方式来控制,我们把这些方式叫做规则处理. 退回工作的场景相对复杂,由于与审核 ...

  2. 开发机直连 Docker 中的 Redis 容器小教程

    在笔者日常开发中,都是把redis装在windows系统中.虽然可以通过RedisDesktopManager等客户端工具连接操作redis,但是还是觉得low了一些.因为作为程序员,我可能更想在Li ...

  3. tp5--Excel表格导入导出

    来源于:https://www.cnblogs.com/MyIsLu/p/6830579.html PHPExcel 扩展包下载地址:             https://github.com/P ...

  4. iscsi的工作原理与优化(2)

    2.1 iSCSI协议模型,iscsi[会话层协议,即应用协议] iSCSI使用TCP/IP协议在不稳定网络上进行可靠的数据传输.iSCSI层和标准SCSI集在协议栈中的位置如图1所示.iSCSI层包 ...

  5. Lambda表达式最佳实践

    简介 Lambda表达式java 8引入的函数式编程框架.之前的文章中我们也讲过Lambda表达式的基本用法. 本文将会在之前的文章基础上更加详细的讲解Lambda表达式在实际应用中的最佳实践经验. ...

  6. KVM 一键批量创建虚拟机

    目录 一.原理 二.基础镜像 2.1.创建基础镜像 2.2. 完善基础镜像 2.3.基础镜像设置权限 3.4 设置 title 3.5.基础镜像XML 三.批量创建机器脚本 四.挂载磁盘多种方式 4. ...

  7. 汉字编码对照表(gb2312/Big5/GB2312)

    一.汉字编码的种类 1.GB2312又称国标码,由国家标准总局发布,1981年5月1日实施,通行于大陆.新加坡等地也使用此编码.它是一个简化字的编码规范,当然也包括其他的符号.字母.日文假名等,共74 ...

  8. [软件共享]将数据库中的数据导出为SQL脚本

    可以直接将数据库中的数据导出为脚本,并可以自己设置过滤条件.使用方法很简单,不在多说了.下面是软件截图.123 下载:http://files.cnblogs.com/pw/mssql2.rar

  9. 简单的环绕散射 Simple Wrap Diffuse From GPU GEMS1

    简单的环绕漫反射光照,实现起来特别简单,在Shader中加入以下几行:  float diffuse = max(0,dot(L,N));  float wrap_diffuse = max(0, ( ...

  10. Spring IOC 之注册解析的 BeanDefinition

    2019独角兽企业重金招聘Python工程师标准>>> DefaultBeanDefinitionDocumentReader.processBeanDefinition() 完成 ...