MySQL之简介及基础操作

Posted 嗯我想想

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL之简介及基础操作相关的知识,希望对你有一定的参考价值。

mysql

简介

  • MySQL是一种关系型数据库管理系统,是一种开源软件。
  • 由瑞典MySQL AB公司开发,2008年1月16号被Sun公司收购。2009年,Sun又被Oracle收购。
  • MySQL软件采用双授权政策,分为社区版和商业版。由于体积小、速度快、总体拥有成本低,尤其是开放源码特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配php和Apache可组成良好的开发环境。
  • MySQL能够工作在众多不同的平台上。
  • 默认端口:3306
  • 默认用户:root
  • 默认字符集:UTF-8

常用命令

启停MySQL

连接MySQL

mysql -uroot -p

这里u代表user用户,后面跟的root是MySQL的默认用户,p代表password密码,这种连接方式不会显示密码

也可以后面直接跟上所用密码

mysql -uroot -proot

这种方式就会显示密码

停止MySQL

exit;

其实exit加不加分号都可以的,但是笔者建议加分号,养成MySQL语句的习惯,注意分号一定要是英文的,否则会报错!!!(下图是不带分号的,只是为了验证QWQ)

库操作database

创建数据库

create databaese <数据库名> [库选项];

库选项:数据库的相关属性
字符集:charset 字符集,代表着当前数据库下的所有表存储的数据默认指定的字符集(如果当前不指定,那么采用DBMS默认的,现在默认的基本都是UTF-8)
e.g.: create database mydatabase charset gbk
校对集:collate

显示数据库

显示全部数据库

show databases;

MySQL默认带有的4个数据库

  • information_schema:这个数据库保存了mysql服务器所有数据库的信息。比如数据库的名、数据库的表、访问权限、数据库表的数据类型,数据库索引的信息等等。
  • mysql:mysql的核心数据库,类似于sql server中的master表,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息。
  • performance_schema:主要用于收集数据库服务器性能参数,可用于监控服务器在一个较低级别的运行过程中的资源消耗、资源等待等情况。链接:performance_schema全方位介绍
  • sys:库中所有的数据源来自:performance_schema。目标是把performance_schema的把复杂度降低,让DBA能更好的阅读这个库里的内容。让DBA更快的了解DB的运行情况。链接: MYSQL的SYS数据库

显示部分数据库

可以指定需要查看数据库的条件

show databases like '匹配模式';
  • _:匹配当前位置单个字符
  • %:匹配指定位置多个字符
e.g.
获取以my开头的全部数据库:'my%';
获取以m开头,后面的第一个字母不确定,最后为database的数据库: 'm_database';
获取以database结尾的数据库:'%database';

显示数据库创建语句

show create database <数据库名>;

看到的指令并非原始指令,而是已经被系统加工过的。

选择数据库

use <数据库名>;
  • 成功后出现 Database changed 表示当前已经进入到指定的数据库环境
  • 为什么要选择数据库?因为数据是存储在数据表中的,而数据表又存在数据库下。如果要操作数据,那么必须进入到对应的数据库才行

修改数据库

通常不怎么用,尤其是数据库中有数据后更不能用。
修改数据库字符集

alter database <数据库名> charset = <字符集>;
  • 是否可以修改数据库名字?不可以的,5.5版本之前可以,之后的版本是不行的
  • 一旦修改成功,那么对应的opt文件中就会体现

删除数据库

drop database <数据库名>;
  • 删除虽简单,但是切记要做好安全操作:确保里面数据没有问题不需要使用了
  • 删除数据库之后,对应的存储数据的文件夹也会被删除(opt文件也被删除)

表操作table

必须先放到对应的数据库下,有两种方式可以将表挂入到指定的数据库下:

  • 在数据表名字前面加上数据库名字,用"."连接即可:数据库.数据表
  • 在创建表之前,先进入到某个具体的数据库即可,需要先:ues <数据库名>;

创建数据表

普通创建表

create table <表名> (字段名 字段类型(num) [字段属性],字段名 字段类型(num) [字段属性],...) [表选项];

num表示不能超过的位数
表选项

  • engine:存储引擎,MySQL提供的具体存储数据的方式,默认是innodb(5.5以前默认是myisam)
  • charset:字符集,只对当前表有效,默认是utf-8(级别比数据库高)
  • collate:校对集

复制已有表结构

通常不会用到

create table <新表名> like <原表名>;
  • 从已经存在的表复制一份(只复制结构,如果原表中有数据不复制)
  • 只要使用数据库.表名,就可以在任何数据库下访问其他数据库的表名

显示数据表

每当一张数据表创建,那么就会在对应的数据库下创建一些文件(与存储引擎有关)

显示所有表

show tables;

显示部分匹配表

show tables like '匹配模式';

_:匹配当前位置单个字符
%:匹配指定位置多个字符

显示表结构

本质含义:显示表中所包含的字段信息(名字,类型,属性等),下面三种方式效果相同

describe <表名>;
desc <表名>;(最常用,因为比较短)
show columns from <表名>;

Field表示字段名字
Type表示字段类型
Null表示值是否允许为空,yes表示允许
Key表示索引
Default表示默认值,null表示默认为空
Extra表示额外的属性

显示表创建语句

查看数据表创建时的语句:此语句看到的结果已经不是用户之前输入的,已经被系统加工过了。

show create table <表名>;

补:MySQL中有多种语句结束符

  • \\g与;所表示的效果是一样的,字段在上排横着,下面跟对应的数据
  • \\G字段在左侧竖着,数据在右侧竖着(有时候会比较方便)

修改表结构

修改表名

rename table <旧表名> to <新表名>;

数据库中数据表名字通常有前缀:取数据库的前两个字母加上下划线

修改表选项

表选项:engine,charset和collect

alter table <表名> <表选项> [=];

注意:如果数据库已经确定了,里面有很多数据了,不要轻易修改表选项(字符集修改影响相对较小)

新增字段

第一种方式

alter table <表名> add [column] <新字段名> <列类型> [列属性] [位置first/ after 字段名];

默认是加到表的最后

  • first直接使用,表示加在该表最前面
  • after要跟具体的字段名,表示加在该具体字段的后面一列 修改字段名

第二种方式

alter table <表名> change <旧字段名> <新字段名> <字段类型> [列属性] [新位置];

必须跟上对应的字段类型,就算不变也要加上

修改字段类型

alter table <表名> modify <字段名> <新类型> [新属性] [新位置];

删除字段

alter table <表名> drop <字段名>;

删除表结构

drop table <表名>[,表名2...];

可以同时删除多个数据表

数据操作

插入数据

含义:将数据以SQL的形式存储到指定的数据表(字段)里面

第一种方式:向表中指定字段插入

insert into <表名> [(字段列表)] values(对应字段列表);
  • 后面values中对应的值列表只需要与前面的字段列表相对应即可(不一定与表结构完全一致)
  • 字段列表并不一定非要有所有表中字段

第二种方式:向表中所有字段插入

insert into <> values (对应表结构);

值列表必须与字段列表一致

查询数据

查询表中全部数据

select * from <表名>;

**是一个通配符,表示匹配所有的字段

查询表中部分字段

select <字段列表1,字段列表2...> from <表名>;

简单条件查询数据

select <字段列表>/* from <表名> while <字段名> <比较符号> <>;
  • 比较符号为:>,<,>=,<=,=
  • MySQL中没有==符号,就是普通的=符号

删除数据

delete from <表名> [where 条件];

如果没有where条件,意味着系统会自动删除该表所有数据,所以一定要慎用where条件!

修改数据

通常是修改部分字段数据

update <表名> set <字段名1> = <新值1>[,<字段名2> = <新值2>...] [where 条件];

如果没有where条件,那么表中对应的那个字段都会被修改成统一值,如下图所示

以上是关于MySQL之简介及基础操作的主要内容,如果未能解决你的问题,请参考以下文章

网络安全从入门到精通 (第二章-2) 后端基础SQL—MySQL数据库简介及SQL语法

MySQL 之基础操作及增删改查等

主流数据库之MySQL函数和MySQL数据操作基础知识及示例

01 . Mysql简介及部署

01 . Mysql简介及部署

llinux学习基础4之变量及条件测试