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: mytestEngine: InnoDBVersion: 10Row_format: DynamicRows: 0Avg_row_length: 0Data_length: 16384
Max_data_length: 0Index_length: 0Data_free: 0Auto_increment: NULLCreate_time: 2024-01-26 19:06:33Update_time: NULLCheck_time: NULLCollation: utf8mb4_0900_ai_ciChecksum: NULLCreate_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: 0mysql> insert into mytest values(7,'中高',55),(9,'上',50); 
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0mysql> 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: 0mysql> update mytest set age=15 where id=5;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0mysql> 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 '新密码';--删除用户
drop user '用户名'@'主机名';--权限相关的
--查询权限 
show grants for '用户名'@'主机名' ;--授予权限 
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';--撤销权限 
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';

注意:

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

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

jvm面试题目补充

jdk&jre Java程序设计语言、Java虚拟机、Java API类库这三部分统称为JDK(Java Development Kit)。 把Java API类库中的Java SE API子集 [1] 和Java虚拟机这两部分统称为JRE(Java Runtime Environment),JRE是支持…

【好书推荐-第五期】《Java开发坑点解析:从根因分析到最佳实践》(异步图书出品)

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号:程序员洲洲。 🎈 本文专栏:本文…

服务器权限:Error: EACCES: permission denied, open‘/Cardiac/uniquC.csv

背景: 我想在服务器上传一个文件uniquC.csv,但是服务器说我没有权限 解决方案: 1. 查看目前是否存在对文件夹的权限 ls -ld /Cardiac/ # your fold path 此时,我发现 这也意味着root也没有赋予写的权限。 2. 拿到root权限 …

云原生应用测试:挑战与方法

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。…

input/textarea光标位置插入文字

需求是右边编辑sql时&#xff0c;点击左侧常量参数&#xff0c;直接在光标处插入对应的参数&#xff0c;大致实现代码如下&#xff1a; <input type"text" id"myInput" value"Hello, World!"> <button onclick"insertText()&qu…

SSM框架学习笔记07 | Spring MVC入门

文章目录 1. HTTP协议2. Spring MVC2.1. 三层架构2.2. MVC&#xff08;解决表现层的问题&#xff09;2.3. 核心组件 3. Thymeleaf3.1. 模板引擎3.2. Thymeleaf3.3. 常用语法 代码 1. HTTP协议 网址&#xff1a;https://www.ietf.org/ &#xff08;官网网址&#xff09; https:…

伪原创一键生成软件:为你创作有价值的文章

伪原创一键生成软件是一种现代写手必备的得力助手。无论您是写作新手还是经验丰富的老手&#xff0c;它都能帮助您快速生成有吸引力的文章&#xff0c;让您在竞争激烈的市场中脱颖而出。伪原创一键生成软件是一款让写作变得轻松且高效的神奇工具。它为写手们节省了大量的时间和…

零感佩戴的开放式耳机,音质悦耳更耐听,西圣Air体验

每天都用蓝牙耳机的朋友应该不少&#xff0c;我平时也经常戴&#xff0c;不过最近我用的不是常规的入耳式耳机&#xff0c;因为它佩戴不舒适&#xff0c;戴久了耳朵特别难受。所以现在我换上了开放式耳机&#xff0c;这种耳机叫做OWS&#xff0c;我的这款是西圣Air&#xff0c;…

【appium】appium连接模拟器/android真机启动app测试+代码

目录 一、搭建环境 1、准备Android设备&#xff08;真机Android手机/模拟器&#xff09; 2、Android开发环境&#xff08;Android SDK&#xff09; 3、安装Appium 安装Appium-desktop 4、让adb连接测试设备 4.1 怎么让adb去连接上夜神模拟器&#xff1f;不使用connect 打…

创建spring项目报错:read time out

在新电脑使用idea创建spring项目时&#xff0c;提示read time out多次尝试无果。 发现只要取消这个选择就可以正常下载。&#xff08;版本是202202&#xff09; 取消勾选后可以正常下载 &#xff08;下载完成后&#xff0c;再次创建sprin项目勾上无影响。&#xff09;

强大的安卓文件传输工具:Android File Transfer for Mac

Android File Transfer for Mac是一款专为Mac用户开发的安卓文件传输工具。它提供了一种无缝连接Mac电脑与安卓设备的方式&#xff0c;使我们能够轻松地在两者之间传输文件。不管是照片、音乐、视频还是文档&#xff0c;我们都可以通过这个工具将它们从安卓设备传输到Mac电脑上…

375FPS! 谷歌提出MaskConver“重校正用于全景分割的纯卷积模型

https://arxiv.org/2312.06052 近年来&#xff0c;基于Transformer的模型由于其强大的建模能力以及对语义类和实例类的统一表示为全局二值掩码&#xff0c;在全景分割中占据主导地位。 在本文中&#xff0c;我们回顾了纯粹的卷积模型&#xff0c;并提出了一种新的结构MaskConve…

Orange3数据预处理(转置组件)

选项 "Remove redundant instance" 是在转置时进行数据去重的选项。当勾选此选项时&#xff0c;如果在原始数据中存在多个相同的记录&#xff08;即每个特征列中的数据完全一样&#xff09;&#xff0c;则在转置操作中只保留其中唯一的一个记录&#xff0c;并从转置后…

【MySQL面试复习】什么是覆盖索引?/MySQL超大分页怎么处理?

系列文章目录 在MySQL中&#xff0c;如何定位慢查询&#xff1f; 发现了某个SQL语句执行很慢&#xff0c;如何进行分析&#xff1f; 了解过索引吗&#xff1f;(索引的底层原理)/B 树和B树的区别是什么&#xff1f; 什么是聚簇索引&#xff08;聚集索引&#xff09;和非聚簇索引…

C++ 实现Socket交互式服务端

在 Windows 操作系统中&#xff0c;原生提供了强大的网络编程支持&#xff0c;允许开发者使用 Socket API 进行网络通信&#xff0c;通过 Socket API&#xff0c;开发者可以创建、连接、发送和接收数据&#xff0c;实现网络通信。本文将深入探讨如何通过调用原生网络 API 实现同…

点云数据处理常用外部库(C++/Windows)的项目配置

一、点云数据处理常用外部库&#xff08;C版本&#xff09;的下载安装与项目配置 &#xff08;一&#xff09;PCL 基于VS2019编程平台的PCL外部库下载安装及项目配置已有大量博客&#xff0c;本文不再赘述。具体下载安装及项目配置流程可参考外部库编译配置参考资料/*1*/ 。需…

OPENSSL-PKCS7入门知识介绍

1 PKCS7数据结构说明 p7包括6种数据内容&#xff1a;数据(data),签名数据&#xff08;sign&#xff09;&#xff0c;数字信封数据&#xff08;enveloped&#xff09;&#xff0c;签名数字信封数据&#xff08;signed_and_enveloped&#xff09;&#xff0c;摘要数据&#xff08…

ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘无密码如何解决

1.修改my.cnf配置文件 &#xff08;1&#xff09;找到my.cnf位置&#xff0c;在[mysqld]下面添加skip-grant-tables cd / vim /etc/my.cnf &#xff08;2&#xff09;添加完成后保存&#xff0c;并重启mysql服务 按下esc 输入:wq 执行 servcie mysqld restart 2.进入mysql数据…

300分钟吃透分布式缓存-14讲:大数据时代,MC如何应对新的常见问题?

大数据时代 Memcached 经典问题 随着互联网的快速发展和普及&#xff0c;人类进入了大数据时代。在大数据时代&#xff0c;移动设备全面融入了人们的工作和生活&#xff0c;各种数据以前所未有的 速度被生产、挖掘和消费。移动互联网系统也不断演进和发展&#xff0c;存储、计…

Matlab论文插图绘制模板第138期—极坐标直方图

在之前的文章中&#xff0c;分享了Matlab一系列极坐标下的插图绘制模板&#xff1a; 本期再来分享一下极坐标直方图的绘制模板。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已上传资源群中&#xff0c;加群的朋友请自行下载。有需要的朋友可以…