MYSQL的操作

1.库的操作

1.1创建数据库

语法:

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

说明:

#  大写的表示关键字
#  [] 是可选项
#  CHARACTER SET: 指定数据库采用的字符集
#  COLLATE: 指定数据库字符集的校验规则

 

1.2创建数据库案例

创建名为 db1 的数据库
create database db1;

说明:

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

创建一个使用utf8字符集的 db2 数据库

create database db2 charset=utf8;  

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

create database db3 charset=utf8 collate utf8_general_ci;  

1.3字符集和校验规则

1.3.1查看系统默认字符集及校验规则

show variables like 'character_set_database' ;
show variables like 'collation_database' ;

1.3.2查看数据库支持的字符集

show charset;

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

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

show collation;  

1.3.4校验规则对数据库的影响

不区分大小写

创建一个数据库,校验规则使用 utf8_ general_ ci[ 不区分大小写 ]
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[区分大小写]

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' );

进行查询

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

mysql> use test1;
mysql> select * from person where name= 'a' ;
+------+
| name |
+------+
| a         |
| A         |
+------+
2 rows in set ( 0.01 sec)

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

mysql> use test2;
mysql> select * from person where name= 'a' ;
+------+
| name |
+------+
| a         |
+------+
2 rows in set ( 0.01 sec)
结果排序
不区分大小写排序以及结果:
mysql> use test1;
mysql> select * from person order by name;
+------+
| name |
+------+
| a         |
| A         |
| b         |
| B         |
+------+

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

mysql> use test2;
mysql> select * from person order by name;
+------+
| name |
+------+
| A         |
| B         |
| a         |
| b         |
+------+

1.4操纵数据库

1.4.1查看数据库

show databases;  

1.4.2显示创建语句

show create database 数据库名;  

示例:

mysql> show create database mytest;
+----------+----------------------------------------------------------------+
| Database | Create Database                                                 |
+----------+----------------------------------------------------------------+
| mysql | CREATE DATABASE `mytest` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+

说明:

1.MySQL 建议我们关键字使用大写,但是不是必须的。
2.数据库名字的反引号``, 是为了防止使用的数据库名刚好是关键字
3./*!40100 default.... */ 这个不是注释,表示当前 mysql 版本大于 4.01 版本,就执行这句话

 1.4.3修改数据库

语法:

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

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

实例: 将 mytest 数据库字符集改成 gbk
mysql> alter database mytest charset=gbk;
Query OK, 1 row affected ( 0.00 sec)
mysql> show create database mytest;
+----------+----------------------------------------------------------------+
| Database | Create Database                                                 |
+----------+----------------------------------------------------------------+
| mytest | CREATE DATABASE `mytest` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+----------------------------------------------------------------+

1.4.4数据库删除

DROP DATABASE [IF EXISTS] db_ name;  

执行删除之后的结果 :
        数据库内部看不到对应的数据库
        对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
注意:不要随意删除数据库  

 1.4.5备份和恢复

1.4.5.1备份

语法:

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

示例:将mytest库备份到文件(退出连接)

# mysqldump -P3306 -u root -p123456 -B mytest > D:/mytest.sql  

这时,可以打开看看 mytest.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。
 1.4.5.2恢复
mysql> source D:/mysql- 5.7 . 22 /mytest .sql ;
1.4.5.3注意事项

如果备份的不是整个数据库,而是其中的一张表,怎么做?

# mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql  

同时备份多个数据库

# mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径  

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

 1.4.6查看连接情况

语法:

show processlist;

示例:

mysql> show processlist;
+----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+------+---------+------+-------+------------------+
| 2 | root | localhost | test | Sleep | 1386 |         | NULL |
| 3 | root | localhost | NULL | Query | 0 | NULL | show processlist |
+----+------+-----------+------+---------+------+-------+------------------+
可以告诉我们当前有哪些用户连接到我们的 MySQL ,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。

2.表的操作

2.1创建表

语法:

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

说明:

field 表示列名
datatype 表示列的类型
character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

2.2创建表的案例

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 :表索引

 

备注:创建一个engineinnodb的数据库,观察存储目录

2.3查看表结构

desc 表名;  

 

2.4修改表

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
datatype]...);
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
datatype]...);
ALTER TABLE tablename DROP (column);

案例:

users表添加二条记录

mysql> insert into users values ( 1 , 'a' , 'b' , '1982-01-04' ),( 2 , 'b' , 'c' , '1984-01-
04' );

users表添加一个字段,用于保存图片路径

l> alter table users add assets varchar ( 100 ) comment ' 图片路径 ' after
birthday;

 

 插入新字段后,对原来表中的数据没有影响:

mysql> select * from users;
+------+------+----------+------------+-------+
| id | name | password | birthday | assets |
+------+------+----------+------------+-------+
| 1    | a |   b     | 1982-01-04    | NULL |<= 原来的数据仍然存在
| 2    | b |   c     | 1984-01-04    | NULL |
+------+------+----------+------------+-------+

 修改name,将其长度改成60

mysql> alter table users modify name varchar ( 60 );
mysql> desc users;
+----------+--------------+------+-----+---------+-------+
| Field         | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id         | int ( 11 )         | YES |         | NULL | |
| name | varchar ( 60 ) | YES |          | NULL | |<= 长度变成 60
| password | char ( 32 ) | YES |         | NULL | |
| birthday | date         | YES |         | NULL | |
| assets | varchar ( 100 ) | YES |       | NULL | |
+----------+--------------+------+-----+---------+-------+

 

 

删除 password
注意:删除字段一定要小心,删除字段及其对应的列数据都没了
mysql> alter table users drop password;
mysql> desc users;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id         | int ( 11 )         | YES |         | NULL |      |
| name   | varchar ( 60 ) | YES |         | NULL |     |
| birthday | date          | YES |         | NULL |       |
| assets | varchar ( 100 ) | YES |         | NULL |    |
+----------+--------------+------+-----+---------+-------+

修改表名为employee

mysql> alter table users rename to employee;  

 

to :可以省掉  
name 列修改为 xingming

 

mysql> alter table employee change name xingming varchar ( 60 ); -- 新字段需要完整
定义
mysql> desc employee;
+----------+--------------+------+-----+---------+-------+
| Field         | Type    | Null    | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id         | int ( 11 )            | YES |          | NULL | |
| xingming | varchar ( 60 ) | YES |         | NULL | |
| birthday | date               | YES |         | NULL | |
| assets | varchar ( 100 )   | YES |         | NULL | |
+----------+--------------+------+-----+---------+-------+

2.5删除表

 语法格式

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

示例:

drop table t1; 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/317755.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

windows11通过虚拟机安装Ubuntu20.04

VMware 分为 VMware Workstation Pro 和 VMware Workstation Player, Pro体验期后收费&#xff0c;Player则免费。player 早期不能创建虚拟机&#xff0c;只能Pro创建好后给Player运行&#xff0c;而现在player早已加入创建虚拟机功能&#xff0c;所以使用体验上两者相差不大&a…

计算机体系结构----存储系统

本文严禁转载&#xff0c;仅供学习使用。参考资料来自中国科学院大学计算机体系结构课程PPT以及《Digital Design and Computer Architecture》、《超标量处理器设计》、同济大学张晨曦教授资料。如有侵权&#xff0c;联系本人修改。 1.1 引言 1.1.1虚拟和物理内存 程序员看到…

学习Qt笔记

前言&#xff1a; 学习笔记的内容来自B站up主阿西拜编程 《Qt6 C开发指南 》2023&#xff08;上册&#xff0c;完整版&#xff09;_哔哩哔哩_bilibili《Qt6 C开发指南 》2023&#xff08;上册&#xff0c;完整版&#xff09;共计84条视频&#xff0c;包括&#xff1a;00书籍介…

Java初学习

Java代码示例&#xff1a; public class helloworld {public static void main(String[] args){System.out.println("hello world");} } Java程序的名字需要和文件名字一致&#xff0c;就是那个helloworld Java程序需要对类有深度的认识&#xff1a; 对象是类的…

让java程序就像脚本一样去写工具

背景&#xff1a; 接触了各种语言之后发现&#xff0c;java还是比go&#xff0c;.netcore之类的简单&#xff0c;成熟&#xff0c;我最终选择了jenkinsshelljava去部署我们的代码&#xff0c;此时很多人可能去使用js或者python之类的去写部署逻辑&#xff0c;毕竟java每次打包…

回归预测 | Matlab实现SSA-CNN-LSTM-Attention麻雀优化卷积长短期记忆神经网络注意力机制多变量回归预测(SE注意力机制)

回归预测 | Matlab实现SSA-CNN-LSTM-Attention麻雀优化卷积长短期记忆神经网络注意力机制多变量回归预测&#xff08;SE注意力机制&#xff09; 目录 回归预测 | Matlab实现SSA-CNN-LSTM-Attention麻雀优化卷积长短期记忆神经网络注意力机制多变量回归预测&#xff08;SE注意力…

【.NET Core】Lazy<T> 实现延迟加载详解

【.NET Core】Lazy 实现延迟加载详解 文章目录 【.NET Core】Lazy<T> 实现延迟加载详解一、概述二、Lazy<T>是什么三、Lazy基本用法3.1 构造时使用默认的初始化方式3.2 构造时使用指定的委托初始化 四、Lazy.Value使用五、Lazy扩展用法5.1 实现延迟属性5.2 Lazy实现…

我们做了个写论文解读的agent

已经2024年了&#xff0c;该出现一个论文解读AI Agent了。 尽管我们公司的主营业务不是做这块的&#xff0c;但&#xff0c;我们还是顺手做了这样一个agent&#xff0c;因为——我们公司的算法同学也需要刷论文啊喂&#xff0c; 而且我们也经常人工写论文解读嘛&#xff0c;所…

深入分析 Spring 中 Bean 名称的加载机制

目录 前言 通过前文&#xff1a;《深入分析-Spring BeanDefinition构造元信息》一文我们可以了解到&#xff1a;Spring Framework共有三种方式可以定义Bean&#xff0c;分别为&#xff1a;XML配置文件、注解、Java配置类&#xff0c; 从Spring Framework 3.0&#xff08;2019年…

node-sass@4.7.2 postinstall: `node scripts/build.js`

Can‘t find Python executable “D:\Python36\python.EXE“, you can set the PYTHON env variable.-CSDN博客 gyp ERR! build error gyp ERR! stack Error: C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe failed with exit code: 1 gyp ERR! stack at Chil…

解密Mybatis-Plus:优雅简化你的数据访问层!

目录 1、引言 2、什么是Mybatis-Plus 3、Mybatis-Plus的特点和优势 4、安装和配置Mybatis-Plus 5、使用Mybatis-Plus进行数据库操作 6、Mybatis-Plus的高级功能 7、Mybatis-Plus的扩展和插件 8、与Spring Boot集成 9、结语 1、引言 Mybatis-Plus是一个强大而优雅的Jav…

阿里云ingress配置时间超时的参数

一、背景 在使用阿里云k8s集群的时候&#xff0c;内网API网关&#xff0c;刚开始是用的是Nginx&#xff0c;后面又搭建了ingress。 区别于nginx配置&#xff0c;ingress又该怎么设置参数呢&#xff1f;比如http超时时间等等。 本文会先梳理nginx是如何配置&#xff0c;再对比…

Elasticsearch:是时候离开了! - 在 Elasticsearch 文档上使用 TTL

作者&#xff1a;来自 Elastic David Pilato 想象一下&#xff0c;圣诞老人必须向世界上所有的孩子们分发礼物。 他有很多工作要做&#xff0c;他需要保持高效。 他有一份所有孩子的名单&#xff0c;并且知道他们住在哪里。 他很可能会将礼物按区域分组&#xff0c;然后再交付。…

Qt QSQlite数据库插入字符串中存在单个双引号或单个单引号解决方案

1. 前言 当进行数据库写入或更新时&#xff0c;有时会遇到存在字符串中包含单个双引号或者单引号。 2. 单引号和双引号""作用 在数据库中&#xff0c;字符串常量时需要用一对英文单引号或英文双引号""将字符串常量括起来。 比如&#xff1a; select * …

stable-diffusion 学习笔记

从效果看Stable Diffusion中的采样方法 参考&#xff1a;Ai 绘图日常 篇二&#xff1a;从效果看Stable Diffusion中的采样方法_软件应用_什么值得买 大概示例&#xff1a;

Java Web课设——个人博客(双端系统)

项目演示 先看看演示视频吧 演示图 简单介绍 个人博客管理系统采用Springboot2.4.5框架开发&#xff0c;是标准的MVC模式&#xff0c;将这个系统划分为View层、Controller层、Service层、DAO层和持久层五层。其中&#xff0c;Spring MVC负责请求的转发和视图管理&#xff0c;S…

蓝桥杯单片机组备赛——数码管动态显示

✨文章内容会不断优化&#xff0c;如果你感兴趣的话&#xff0c;欢迎点藏收藏关注我哟 &#x1f9e8;如果文章有哪里看不懂的欢迎评论区或私信留言&#xff0c;我会及时回复的 ⏰如果文章出现错误&#xff0c;欢迎指正&#xff0c;看到后我会马上改正 文章目录 一、动态显示原理…

Java SE入门及基础(10)

switch选择结构 1. 概念 switch 表示开关的意思&#xff0c;为了帮助理解&#xff0c;下面以线路为例&#xff0c;进行解释说明 上图中表示一条带有多个开关的线路&#xff0c;当开关打开时&#xff0c;该开关所控制的灯即被点亮。 2. 语法规则 switch ( 表达式 ){ //…

SECS/GEM的变量SVID是什么?JAVA SECS通信 JAVA与SECS集成资料大全JAVA开发SECS快速入门资料

Java与SECS基础通信 Java实现SECS指令S2F17获取时间 Java实现SECS指令 S10F3 终端单个显示例子 工艺配方管理S7FX Java实现SECS指令 S5F1报警/取消报警上传 实例源码及DEMO请查阅 变量可以是设备的状态信息 定义&#xff1a; 此功能允许主机查询设备数据变量&#x…

C#基于ScottPlot进行可视化

前言 上一篇文章跟大家分享了用NumSharp实现简单的线性回归&#xff0c;但是没有进行可视化&#xff0c;可能对拟合的过程没有直观的感受&#xff0c;因此今天跟大家介绍一下使用C#基于Scottplot进行可视化&#xff0c;当然Python的代码&#xff0c;我也会同步进行可视化。 P…