【Mysql】数据库基础与基本操作

🌇个人主页:平凡的小苏
📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风翻盘

🛸Mysql专栏Mysql内功修炼基地
> 家人们更新不易,你们的👍点赞👍和⭐关注⭐真的对我真重要,各位路 过的友友麻烦多多点赞关注。 欢迎你们的私信提问,感谢你们的转发! 关注我,关注我,关注我,你们将会看到更多的优质内容!!

1、什么是数据库

数据库的缺点

  • 文件的安全性问题

  • 文件不利于数据查询和管理

  • 文件不利于存储海量数据

  • 文件在程序中控制不方便

为了解决上述问题,专家们设计出更加利于管理数据的东西------数据库,它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标

2、连接服务器

mysql 复制代码
mysql -h 127.0.0.1 -P 3306 -uroot -p //回车后需要输入密码

3、库的操作

3.1、创建数据库

mysql 复制代码
create database [if not exists] 数据库名 【指定数据库采用的字符集】 【指定数据库字符集的校验规则】

说明:

【】:表示可选项

指定数据库采用的字符集:charset=utf8

指定数据库字符集的校验规则:collate utf8_general_ci

3.2、创建数据库案例

  • 创建名为 db1 的数据库
mysql 复制代码
create database db1;

说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci

  • 创建一个使用utf8字符集的 db2 数据库
mysql 复制代码
create database db2 charset=utf8;

创建一个使用utf字符集,并带校对规则的 db3 数据库。

mysql 复制代码
create database db3 charset=utf8 collate utf8_general_ci;

3.3、字符集和校验规则

3.3.1、查看系统默认字符集和校验规则

mysql 复制代码
show variables like 'character_set_database';
show variables like 'collation_database';

3.3.2、查看数据库支持的字符集

mysql 复制代码
show charset;

字符集主要是控制用什么语言。比如utf8就可以使用中文。

3.3.3、查看数据库支持的字符集校验规则

mysql 复制代码
show collation;

3.3.4、校验规则对数据库的影响

  • 不区分大小写

创建一个数据库,校验规则使用utf8_ general_ ci[不区分大小写]

mysql 复制代码
create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
  • 区分大小写

创建一个数据库,校验规则使用utf8_ bin[区分大小写]

mysql 复制代码
create database test2 collate utf8_bin;
use test2;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
  • 进行查询

不区分大小写的查询以及结果

区分大小写的查询以及结果

  • 结果排序

不区分大小写排序以及结果:

区分大小写排序以及结果:

3.4操纵数据库

3.4.1、查看数据库

show databases;

3.4.2、显示创建语句

show create database 数据库名;

MySQL 建议我们关键字使用大写 ,但是不是必须的。

数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字

3.4.3、修改数据库

mysql 复制代码
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]

对数据库的修改主要指的是修改数据库的字符集,校验规则

示例:

将d1数据库字符集改成gbk

3.4.4、删除数据库

mysql 复制代码
DROP DATABASE [IF EXISTS] db_ name;

执行删除之后的结果:

  • 数据库内部看不到对应的数据库

  • 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

注意:不要随意删除数据库

3.4.5、备份和恢复

备份

mysql 复制代码
 mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

示例:

mysql 复制代码
mysqldump -P3306 -u root -p -B d1 > Mysql/d1.sql

还原

mysql 复制代码
source Mysql/d1.sql;

注意事项

  • 如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。

  • 如果备份的不是整个数据库,而是其中的一张表

    mysql 复制代码
    # mysqldump -u root -p 数据库名 表名1 > Mysql/d1.sql

    3.4.6、查看连接情况

    mysql 复制代码
    show processlist

4、表的操作

4.1、创建表

mysql 复制代码
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

说明:

  • field 表示列名

  • datatype 表示列的类型

  • character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准

  • collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

4.2、创建表例子

mysql 复制代码
create table users (
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
) character set utf8 engine MyISAM;

说明:

不同的存储引擎,创建表的文件不一样.

users 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:

  • users.frm:表结构

  • users.MYD:表数据

  • users.MYI:表索引

4.3、查看表结构

mysql 复制代码
desc 表名;

4.4、修改表

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

  • 在users表添加二条记录
mysql 复制代码
insert into users values(1,'a','b','1982-01-04'),(2,'b','c','1984-01-04');
  • 修改name,将其长度改成60
mysql 复制代码
alter table users modify name varchar(60);
  • 删除password列

    注意:删除字段一定要小心,删除字段及其对应的列数据都没了

mysql 复制代码
alter table users drop password;
  • 修改表名为employee
mysql 复制代码
alter table users rename to employee;

to:可以省掉

  • 将name列修改为xingming
mysql 复制代码
alter table employee change name xingming varchar(60); //新字段需要完整定义

4.5、删除表

mysql 复制代码
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

示例:

mysql 复制代码
drop table users;

4.5.1、删除某一行数据

mysql 复制代码
delete from 表名称 where 字段名 = 表值

4.5.2、删除整个表的数据

mysql 复制代码
delete from 表名称
相关推荐
静听山水13 分钟前
mysql语句执行过程
数据库·mysql
Q_w77421 小时前
一个真实可用的登录界面!
javascript·mysql·php·html5·网站登录
容器( ु⁎ᴗ_ᴗ⁎)ु.。oO2 小时前
MySQL事务
数据库·mysql
数据龙傲天3 小时前
1688商品API接口:电商数据自动化的新引擎
java·大数据·sql·mysql
engineer-gxd4 小时前
MySQL 表的操作
mysql
cyt涛4 小时前
MyBatis 学习总结
数据库·sql·学习·mysql·mybatis·jdbc·lombok
看山还是山,看水还是。5 小时前
MySQL 管理
数据库·笔记·mysql·adb
momo小菜pa5 小时前
【MySQL 09】表的内外连接
数据库·mysql
Jasonakeke6 小时前
【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化
数据库·mysql
小宇成长录6 小时前
Mysql:数据库和表增删查改基本语句
数据库·mysql·数据库备份