MySQL的SQL语句

1.MySQL连接

连接命令一般是这样写的

mysql -h$ip -P$port -u$user -p

比如:mysql -h127.0.0.1 -P3306 -uroot -p

-h 指定连接的主机地址;-P 指定连接端口号;-u 指定用户名 -p指定用户名密码

2.SQL分类

  1. DDL(Data Definition Language) 数据定义语言:操作数据库和表,定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等
  2. DML(Data Manipulation Language) 数据操作语言:增删改表中数据,对数据库中表的数据进行增删改。关键字:insert, delete, update 等
  3. DQL(Data Query Language) 数据查询语言:查询表中数据,用来查询数据库中表的记录(数据)。关键字:select, where 等
  4. DCL(Data Control Language) 数据控制语言:管理用户,授权,定义数据库访问权限和安全级别及创建用户。关键字:GRANT, REVOKE 等

 3.DDL(Data Definition Language) 数据定义语言

这是操作数据库和表的定义的。

对数据库进行操作

创建

--标准语法
create database 数据库名;

--创建数据库,判断不存在,再创建(数据库已存在的话,就不能再创建同名的数据库)
create databases if not exists 数据库名称;

--创建数据库,并指定字符集
create database 数据库名 character set 字符集名称;

查询

--查看所有数据库
show databases;

--查看当前使用的是哪个数据库
select database();

--查询某个数据库的字符集/创建语句
show create database 数据库名称;


例子: 
--加'\G'是为了数据显示的好看,不加也行的。
mysql> show create database test\G;
*************************** 1. row ***************************
       Database: test
Create Database: CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */
1 row in set (0.00 sec)

修改

--修改数据库的字符集
alter database 数据库名称 character set 字符集名称;

--没有命令修改数据库名字的

删除

--删除数据库
drop database 数据库名称;

--判断数据库是否存在,存在再删除 
drop database if exists 数据库名称;

例子:删除不存在的数据库
mysql> drop database aa;
ERROR 1008 (HY000): Can't drop database 'aa'; database doesn't exist

使用

--使用数据库
use 数据库名称

对表进行操作

创建

--创建表
create table 表名(列名1 数据类型1,列名2 数据类型2... 列名n 数据类型n);

--复制表
create table 表名 like 被复制的表名;

例子:
create table mytest(id int not null primary key,name varchar(10),age int not null);

查询

--查看该数据库的所有表
show tables;

--查看表的所有字段
desc 表名;

--查看创建表的语句和字符集
show create table 表名;

--查看表的具体信息
show table status from 库名 like '表名';

例子:
mysql> show create table mytest\G;
*************************** 1. row ***************************
       Table: mytest
Create Table: CREATE TABLE `mytest` (
  `id` int NOT NULL,
  `name` varchar(10) DEFAULT NULL,
  `age` int NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)


mysql> show table status from test like 'mytest'\G;
*************************** 1. row ***************************
           Name: mytest
         Engine: InnoDB
        Version: 10
     Row_format: Dynamic
           Rows: 0
 Avg_row_length: 0
    Data_length: 16384
Max_data_length: 0
   Index_length: 0
      Data_free: 0
 Auto_increment: NULL
    Create_time: 2024-01-26 19:06:33
    Update_time: NULL
     Check_time: NULL
      Collation: utf8mb4_0900_ai_ci
       Checksum: NULL
 Create_options: 
        Comment: 
1 row in set (0.00 sec)

修改:(使用atler)

--修改表名
alter table 表名 rename to 新的表名;

--添加字段(列)
alter table 表名 add 列名 数据类型 约束;

--修改列的数据类型
alter table 表名 change 列名 新列名 新数据类型;
比如:alter table myname change name nickname varchar(100);

--删除字段(列)
alter table 表名 drop 字段名;

--修改表的字符集 
alter table 表名 character set 字符集名称;

删除

--删除表
drop table 表名;

--判断表是否存在,存在就删除 (因为删除不存在的表,会报错)
drop table if exists 表名 ;

4.DML(Data Manipulation Language) 数据操作语言

这是主要针对表中的数据的。

添加数据

--标准语法
insert into 表名(列名1,列名2,...) values(值1,值2,...);

--默认给全部列添加数据
insert into 表名 values(值1,值2,值3,...);

--批量添加
insert into 表名 values(值1,值2,值3,...),(值1,值2,值3,...),(值1,值2,值3,...);


注意:插入数据时,字段名顺序 与 值顺序 要一一对应

例子:
mysql> insert into mytest values(1,'wo',11);
Query OK, 1 row affected (0.01 sec)

mysql> insert into mytest(id,age) values(3,41);
Query OK, 1 row affected (0.01 sec)

mysql> insert into mytest(id,age) values(4,41),(5,23),(6,29);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> insert into mytest values(7,'中高',55),(9,'上',50); 
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from mytest;
+----+--------+-----+
| id | name   | age |
+----+--------+-----+
|  1 | wo     |  11 |
|  3 | NULL   |  41 |
|  4 | NULL   |  41 |
|  5 | NULL   |  23 |
|  6 | NULL   |  29 |
|  7 | 中高   |  55 |
|  9 | 上     |  50 |
+----+--------+-----+
7 rows in set (0.01 sec)

 删除数据

--删除表数据(可以带有条件)
delete from 表名 [where 条件]

例子:
mysql> delete from mytest where id=1;
Query OK, 1 row affected (0.01 sec)

mysql> delete from mytest;
Query OK, 6 rows affected (0.01 sec)

 修改数据

--修改数据
update 表名 set 字段1 = 值1, 字段2 = 值2,... [where 条件];

--注意: 修改语句的条件可以有,也可以没有,如果不加任何条件,则会将表中所有记录全部修改

例子:
mysql> update mytest set age=15 where age=41;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> update mytest set age=15 where id=5;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> update mytest set age=15;
Query OK, 1 row affected (0.00 sec)
Rows matched: 3  Changed: 1  Warnings: 0

5.DQL(Data Query Language) 数据查询语言

--查找整个表的所有数据
select * from 表名

--查找表的某些字段,并带有条件
select  列名1,列名2... from 表名 where 条件

 

6. DCL(Data Control Language) 数据控制语言

管理用户,权限

--查看所有的用户
select * from mysql.user; # mysql是数据库,user是表名

--创建用户
create user '用户名'@'主机名' identified by '密码';

--修改用户密码
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';

--有些MySQL客户端并未完全支持MySQL 8.0的caching_sha2_password加密方式,而MySQL 8.0中默认是caching_sha2_password加密方式。所以要想那些登录失败的客户端可以通过登录,升级客户端或者把密码修改成是mysql_native_password加密方式。

--删除用户
drop user '用户名'@'主机名';


--权限相关的
--查询权限 
show grants for '用户名'@'主机名' ;

--授予权限 
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';

--撤销权限 
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';


--查看用户的加密方式
mysql> select host,user,plugin from mysql.user;                      
+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | caching_sha2_password |
| localhost | itcast           | mysql_native_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
| localhost | root             | caching_sha2_password |
+-----------+------------------+-----------------------+

注意:

  • 在MySQL中需要通过 用户名@主机名 的方式,来唯一标识一个用户
  • 主机名可以使用 % 通配,例如:'root'@'%'这样就可以在任一台服务器进行登录,而'root'@'localhost'就只能在本地登录。

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

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

相关文章

【数据结构】链表面试题

203.移除链表元素 206.反转链表 876.链表的中间结点 牛客.链表中倒数第k个结点 21.合并两个有序链表 牛客.链表分隔 牛客.链表的回文结构 160.相交链表 141.环形链表 142.环形链表2 1. 移除链表元素 题目描述 思路: 定义一个指针cur遍历整个链表,一个ta…

大开眼界的4款黑科技软件,功能强大,网友:越用越上瘾

作为一名热衷于探索软件的搞机爱好者,小蛙在各大软件论坛间游走,旨在帮助大家在纷繁复杂的Windows软件世界中,寻找到那些真正值得安装的神器。 在忙碌的现代生活中,我们的磁盘空间和时间都显得尤为宝贵,没必要下一些鸡…

解决内嵌帆软报表出现重定向问题

最近收到反馈,某些程序的前端通过iframe标签内嵌finebi帆软报表时,出现一系列问题。 问题1: 如下图所示,单点登录(单点登录地址schema是https)后service地址的schema协议是http, 浏览器内核的安全策略不允许http访问https。 解决方案&#xf…

java数据结构与算法刷题-----LeetCode530. 二叉搜索树的最小绝对差

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 解题思路:时间复杂度O(n),空间复杂度O(n) 一个有序…

阻抗与电气模型(三)

阻抗的定义为电压与电流的比值,通常用大写字母Z表示。Z V/I,当信号沿互连传播时,将不断的探测互连的阻抗,并做出相应的反应。阻抗又称为交流(AC)电阻。 如果知道了互连的阻抗和传播时延,也就知…

如何改变.net托管的入口main函数

有小伙伴问: .NET托管入口Main函数可以修改成别的函数,用来作为程序的入口吗? 答案:当然是可以的。这也算是.NET里面非常简单的骚操了。本篇来用最新的.NET8演示下,如何修改Main入口。 1.简单控制台例子: namespace…

金融行业数字化人事管理:组织管理、风险管控、职级晋升一体化

目前,金融行业正在全面推进数字化转型,推动行业高质量发展。人力资源是组织发展的核心竞争力,数字化的人事管理能够为金融组织降本增效。 行业痛点 1、金融行业分支机构多、人员规模大,随着组织的快速发展,集团内组织…

Postman Tests:简介与示例

Postman 不仅是一个强大的 API 开发工具,它还提供了创建自动化测试脚本的能力,这些脚本可以用于检验API请求得到的响应是否符合预期。这些测试脚本被称为 “Tests”,支持使用 JavaScript 编程语言进行编写,并且 Postman 提供了一系…

图片录入设备、方式与质量对图片转Excel的影响

随着数字化时代的到来,图片已经成为人们日常生活中不可或缺的一部分。在各行各业中,图片的应用越发广泛,从而促使了图片处理技术的快速发展。然而,图片的质量对于后续数据处理和分析的准确性和可靠性有着至关重要的影响。本文将从…

IDEA 创建Spring Boot 项目整合jdbc详细步骤

IDEA 创建Spring Boot 项目&整合jdbc详细步骤 1、打开 IntelliJ IDEA 软件2、使用 "Spring Initializr" 作为项目类型,新建项目工程3、选择对应的SpringBoot版本和依赖4、Spring Boot 项目的结构5、创建一个TestController,并运行6、整合j…

用Python实现创建餐厅评分数据分析表

代码的功能是创建一个雷达图(Radar Chart),也称为蜘蛛网图(Spider Chart),用来展示不同餐厅在多个维度上的评分。雷达图是一种非常适合展示多维数据的图形,它能够清楚地显示每个数据点在多个变量…

发现了一个老师都该知道的成绩发布神器!

老师们,你们是不是还在为每次考试后的成绩发布而烦恼?手动整理、逐个通知,简直让人头疼不已! 想象一下,你只需将成绩整理成Excel表格,一键上传,立马就能生成一个专属的成绩查询小程序。是不是感…

《数据治理简易速速上手小册》第6章 数据访问与共享(2024 最新版)

文章目录 6.1 管理数据访问权限6.1.1 基础知识6.1.2 重点案例:金融公司的 RBAC 系统6.1.3 拓展案例 1:医疗保健机构的 ABAC 实现6.1.4 拓展案例 2:科技公司的最小权限策略 6.2 数据共享的策略和工具6.2.1 基础知识6.2.2 重点案例:…

Python海龟绘图:绘出最靓丽的景色

目录 一、引言 二、海龟绘图库的基本使用 三、绘制靓丽的景色 案例一:绘制日出或日落 案例二:绘制森林 四、总结与建议 五、展望未来 六、附录 一、引言 在Python编程中,除了强大的数据处理和逻辑运算能力,还有一项非常有…

NXP实战笔记(十一):32K3xx基于RTD-SDK在S32DS上配置DFLASH、MemAcc、Fee

目录 1、概述 2、RTD-SDK配置之Cache_Ip 3、RTD-SDK配置之Mem_43_InFls 4、RTD-SDK配置之MemAcc 5、RTD-SDK配置之Fee 6、代码示例 1、概述 S32K3目前安装的RTD普遍使用的是R22-11版本的AUTOSAR规范,作为一直使用AUTOSAR4.2.2的程序员来讲,属实迭代…

Connection模块类功能联调(整合三)

目录 概要 tcp_cli.cc tcp_srv.cc server.hpp 测试结果 第三次整合 概要 本主要是将以下模块进行整合测试 Connection管理类实现(模块六)-CSDN博客 EventLoop整合与TimerWheel联合调试(整合二)-CSDN博客 tcp_cli.cc #include "../source/server.hpp"int main…

在编教师要跨市调可以吗

经常看到有人问:“在编教师能否跨市调动?”这个问题看似简单,实则背后涉及了多重因素。今天,就让我来为大家揭秘在编教师跨市调动的可能性及其背后的那些关键因素。 教师作为事业单位的在编人员,其调动并不是一件随心所…

个人玩航拍,如何申请无人机空域?

我们在《年会不能停》一文中,有分享我们在西岭雪山用无人机拍摄的照片和视频,有兴趣可以去回顾。 春节的时候,趁着回老家一趟,又将无人机带了回去,计划拍一下老家的风景。 原本以为穷乡僻壤的地方可以随便飞&#xf…

手机厂商们,画了一张「AI大饼」

【潮汐商业评论/原创】 “未来世界,大部分人类可能是多余的。” 这是尤瓦尔赫拉利在《未来简史》中被大众最为争议的观点。如今,当AI正从二维空间“概念”走向多维世界“应用”时,人类社会的生产力重心也将随之向人工智能转移,人们…

配置用户通过IPv6方式上网

组网需求 运营商为企业分配了WAN侧的IPv6地址1111:2222:A0EE:6::2/64和LAN侧的IPv6地址1111:3333:E840:2::1/64,企业通过运营商提供的IPv6地址配置上网。 图1 配置用户通过IPv6方式上网 操作步骤 1、在IPS上的配置 interface GigabitEthernet0/0/4 ipv6 enable…