【数据库】 mysql基础语法学习(详细教程)

1. 数据库的基本操作
1.1. MYSQL 登录与退出
输入 mysql -uroot -p -P3306 -h127.0.0.1
退出的三种方法
mysql > exit;
mysql > quit;
mysql > \q;
1.2. MYSQL 数据库的一些解释
注意:数据库就相当于文件夹
表就相当于文件
1.3. mysql 注释符有三种:
1、#...
2、"-- ..."
3、/*...*/
2. 数据库的一些基本操作
2.1. 数据库的增删改查(sql 语句)
增:create database db1;
删:drop database db1;
改:alter database db1 charset utf8
查:show databases;#查看所有的数据库
show create database db1;
查看指定的数据库
设置默认的 utf8,在配置文件中:写上 character_set_server = utf8
use db2
select database() #查看你当前在哪个文件夹
重命名数据库 RENAME database olddbname TO newdbname

qianxun
show status; -- 显示一些系统特定资源的信息,例如,正在运行的线程数量。
desc tabl_name; 显示表结构,字段类型,主键,是否为空等属性,但不显示外
键。
show databases 查看这个 mysql 里面有多少个库
use mysql
use 选择数据库
show tables 查看当前库里面所有的表
mysql> select password from user where user='root';
Mysql 5.7 select authentication_string,user from mysql.user;
查看当前数据库 里面的表 user 用户为 root 的密码
alter database 数据库名 character set utf8;
3. table 表的操作
3.1. 查看表结构
desc table
DESCRIBE 表名;
3.2. 查看表的内容
select * from table_name
3.3. 建立表
CREATE TABLE 表名 (

qianxun
属性名 数据类型 [完整约束条件],
属性名 数据类型 [完整约束条件],
...
...
属性名 数据类型 [完整约束条件]
);
字段名就是属性名
完整的建立表的语句

 /*

AUTO_INCREMENT 每次插入新记录时,自动地创建主键字段的值默认地,AUTO_INCREMENT 的开始值是 1,每条新记录递增 1。

要让 AUTO_INCREMENT 序列以其他的值起始,请使用下面的 SQL 语法:

ALTER TABLE Persons AUTO_INCREMENT=100

*/
create table users(id int(7) AUTO_INCREMENT, 
username varchar(100) not null,
password varchar(100) not null,
PRIMARY KEY(id)                  //主键为id字段
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

/* UNSIGNED 声明无符号整数类型*/
mysql> create table users(id int(7) UNSIGNED auto_increment,username varchar(30)
not null,password varchar(32) not null,email varchar(40),primary key
(id))engine=myisam default charset=utf8;

/*

1.ENGINE=InnoDB使用innodb引擎,从zhidaoMySQL 5.6开始默认使用该引擎
2.DEFAULT CHARSET=utf8 数据库默认编码为utf-8

*/
Query OK, 0 rows affected (0.00 sec)
if not exists 表示当相同的表名存在时,则不执行此创建语句,避免语句执行错误
create database if not exists [table];
ENGINE=InnoDB DEFAULT CHARSET=utf8;
ENGINE 设置表的引擎 和默认的字符类型
常见的数据库引擎
InnoDB myisam
数据类型
https://www.cnblogs.com/-xlp/p/8617760.html
3.4. 约束条件
PRIMARY KEY 标识该属性为该表的主键,可以唯一的标识对应的元组
FOREIGN KEY 标识该属性为该表的外键,是与之联系某表的主键

qianxun
NOT NULL 标识该属性不能为空
UNIQUE 标识该属性的值是唯一的
AUTO_INCREMENT 标识该属性的值是自动增加,这是 MySQL 的
SQL 语句的特色
DEFAULT 为该属性设置默认值
3.5. 修改表的操作
修改表
格式:ALTER TABLE 旧表名 RENAME 新表名;
修改字段的数据类型
ALTER TABLE 表名 MODIFY 属性名 数据类型;
修改字段名:
ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型;
增加字段名
ALTER TABLE 表名 ADD 属性名 1 数据类型 [完整性约束条件] [FIRST |
AFTER 属性名 2];
删除字段
ALTER TABLE 表名 DROP 属性名;
更改表的存储引擎
格式:ALTER TABLE 表名 ENGINE = 存储引擎名;
=============================================================
================

qianxun
4. 数据的增删改查
为表中所有字段添加数据
语法:INSERT INTO 表名(字段名 1,字段名 2,...)VALUES(值 1,值 2,
...);
mysql> insert into users (id,username,password)values(1,'moon','123456');
4.1. 增
语法:INSERT INTO 表名 VALUES(值 11,值 2,...);
mysql> insert into users values(null,'test','123456');
语法:INSERT INTO 表名(字段 1,字段 2,...)VALUES(值 1,值 2,...)
语法:INSERT INTO 表名 SET 字段名 1=值 1[,字段名 2=值 2,...]
举例:INSERT INTO student SET id=4,name='zhaoliu',grade=72;
同时添加多条数据
语法:INSERT INTO 表名[(字段名 1,字段名 2,...)]VALUES (值 1,值 2,
...),(值 1,值 2,...),
mysql> insert into users (id,username,password)values(null,'moon','123456'),
(null,'alex','123456');
:INSERT INTO 表名[(字段名 1,字段名 2,...)]VALUES (值 1,值 2,...),
(值 1,值 2,...),(值 1,值 2,...)
mysql> insert into users values(null,'moon1','123456'),(null,'alex1','123456');
4.2. 删
DELETE FROM 表名 [WHERE 条件表达式
delete from users where id=1;

qianxun
删除全部数据
若 DELETE 语句中没有使用 WHERE 语句,则会将表中所有记录都删除。
DELETE FROM 表名
删除全部数据的另一种方法——TRUNCATE
4.3. 更新
语法:UPDATE 表名 SET 字段名 1=值 1,[ ,字段名 2=值 2,...][ WHERE 条件
表达式 ]
update users set password='aaaa' where id=1;
update users set password='123456',username='moon' where id=1
update users set password=456789;
4.4. 查
select * from users;
星号代表所有的字段
查询指定的字段
select username,password from users;
按条件调节查询
按关系来查询
语法:SELECT 字段名 1,字段名 2,...FROM 表名 WHERE 条件表达式
in 查询
SELECT * FROM student2 WHERE id IN (1,2,3);

qianxun
带 BETWEEN AND 关键字的查询
select * from users where id not between 1 and 10;
带 DISTINCT 关键字的查询
select distinct username from users
like 查询 一般都会给跟着%
select * from users where username like "%m%" ;
下划线 _ 匹配一个字符
select* from users where username like "moo_"
and 查询
满足多个条件
select * from users where id=1 and username='moon';
or 查询
满足任意一个条件
select * from users where id=1 or username='moon';
OR 和 AND 一起使用的情况
OR 和 AND 一起使用的时候,AND 的优先级高于 OR,因此二者一起使用时,
会先运算 AND 两边的表达式,再运算 OR 两边的表达式。
mysql> select * from users where id >5 and password='123456c' or
username='moon1';
聚合查询
count 返回行数
select count(*) from users;
select count(id) from users;

qianxun
COUNT() 返回某列的行数
SUM() 返回某列值的和
AVG() 返回某列的平均值
MAX() 返回某列的最大值
MIN() 返回某列的最小值
分组查询
如果报错请在 my.ini 添加
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,E
RROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
GROUP BY
mysql> SELECT * FROM users GROUP BY password;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
| 3 | moon1 | 123456 |
| 1 | moon | 456789 |
+----+----------+----------+
2 rows in set (0.01 sec)
mysql> SELECT * FROM users GROUP BY username;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
| 2 | alex1 | 456789 |
| 1 | moon | 456789 |
| 3 | moon1 | 123456 |
+----+----------+----------+
3 rows in set (0.01 sec)
使用 LIMIT 限制查询结果的数量
select * from users limit 2,10;
select * from users as u where u.id=1;
为表和字段取别名

qianxun
select username as myname from users;
mysql 的子查询
where 型子查询
(把内层查询结果当作外层查询的比较条件)
select * from users where id in (select id from users where id>10);
from 型子查询
(把内层的查询结果供外层再次查询)
select * from (select username,age from users) as agev_a where age>20
select * from (select * from users where id>=10) as age_10;
(select * from users where id>=10)查询出来的是一个集合 别名为
age_10
select * from age_10
exists 型子查询
(把外层查询结果拿到内层,看内层的查询是否成立)
1
0
select * from users where EXISTS (select * from users where id>1)
联合查询(两个表的查询)
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用
UNION ALL。
当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行
UNION ALL 查询全部 而且不会消除重复的行
union
SQL UNION ALL 语法
union 的用法及注意事项
两次查询的列数必须一致
select * from users union select *,1 from news;

qianxun
CREATE TABLE `news` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) not NULL,
`content` varchar(255) not null,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
insert into news (title,content)values('a1','a1’);

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

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

相关文章

html+css 实现悬浮按钮

前言:哈喽,大家好,今天给大家分享htmlcss 绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 文…

F4A0手把手教程1: 华大单片机HC32F4A0如何新建工程(ddl库版本)

开发板请点击:https://item.taobao.com/item.htm?spma21n57.1.item.3.5fc760c3ycChCu&priceTId2150418a17219238749041878ec06d&utparam%7B%22aplus_abtest%22:%222166044947a45798ae4c3d102fcea719%22%7D&id707262644934&ns1&abbucket20 准备…

【ffmpeg命令入门】Nginx的安装与制作HLS流媒体服务器

文章目录 前言Nginx简介Ubuntu安装Nginxffmpeg生成HLS流媒体1. 生成HLS流媒体命令说明 配置Nginxffplay播放m3u8 总结 前言 在数字内容传输和流媒体服务中,HLS(HTTP Live Streaming)已经成为一种流行的解决方案,特别是在视频直播…

电缆规格型号对照表

一、电线电缆产品主要分为五大类: 1、裸电线及裸导体制品本类产品的主要特征是:纯的导体金属,无绝缘及护套层,如钢芯铝绞线、铜铝汇流排、电力机车线等;加工工艺主要是压力加工,如熔炼、压延、拉制、绞合/紧压绞合等&…

C# 使用pythonnet 迁入 python 初始化错误解决办法

pythonnet 从 3.0 版本开始,必须设置Runtime.PythonDLL属性或环境变量 例如: string pathToVirtualEnv ".\\envs\\pythonnetTest"; Runtime.PythonDLL Path.Combine(pathToVirtualEnv, "python39.dll"); PythonEngine.PythonHom…

【SpringBoot】2 项目搭建

创建项目 1)确实本地 jdk 版本 打开命令行窗口:快捷键 Windows R,输入 CMD,敲回车 执行命令:java -version 2)在项目 clone 的位置创建 Spring Boot 项目,使用 Maven 进行依赖管理&#xff…

LoRA:低秩自适应

LoRA:低秩自适应 本章节是对轻松上手微调大语言模型——QLORA篇中提到的LoRA的原理解释。 背后动机 现今模型的参数量变得越来越大,对预训练模型进行全微调变得越来越不可行。为了解决这个问题有了LoRA(Low-Rank Adaption)的诞生。将可训练…

【更新2022】各省农业科技活动经费(RD)测算 1999-2022 无缺失

各省农业科技活动经费(R&D)测算数据在农业经济学、政策研究和农村发展规划等领域的论文研究中具有重要应用价值。首先,这些数据可以用于分析不同省份在农业科技投入上的差异及其对农业生产力和产出的影响,帮助揭示不同地区农业…

算法——二分查找(day10)

目录 69. x 的平方根 题目解析: 算法解析: 代码: 35. 搜索插入位置 题目解析: 算法解析: 代码: 69. x 的平方根 69. x 的平方根 - 力扣(LeetCode) 题目解析: 老…

Tenable Nessus 10.7.5 (macOS, Linux, Windows) 发布 - #1 漏洞评估解决方案

Tenable Nessus 10.7.5 (macOS, Linux, Windows) 发布 - #1 漏洞评估解决方案 发布 Nessus 试用版自动化安装程序,支持 macOS Sonoma、RHEL 9 和 Ubuntu 24.04 请访问原文链接:https://sysin.org/blog/nessus-10/,查看最新版。原创作品&…

人工智能类——计算机科学与技术

计算机科学与技术是一个非常大的门类。目前计算机科学与技术类招生的专业主要有计算机科学与技术、软件工程、网络工程、信息安全、物联网工程等,后面的几个专业是计算机科学与技术的重要分支,而这个门类的其他分支并没有单列出来一个本科专业&#xff0…

步入新时代,使用区块链服务API打造创新应用

随着区块链技术的兴起,我们正步入一个全新的数据时代——一个由透明性、安全性和去中心化定义的时代。Blockchain公司的区块链API,作为连接现实世界与区块链世界的桥梁,为全球开发者和企业提供了一种前所未有的方式,以访问、交互并…

JS 改造数组对象,将其不确定的key作为value,并合并相同key的value值

const data [{"苹果": 3839,"小米": 1423,"华为": 4965,"oppo": 3334,"vivo": 2820,"一加": 4751},{"苹果": 3560,"小米": 2099,"华为": 3192,"oppo": 4210,"vivo…

互联网产品经理转型升级:如何成功转身为AI产品经理

前言 随着人工智能技术的快速发展,AI产品经理成为了职场热门职位。许多互联网产品经理纷纷寻求转型升级,希望投身AI领域。 一、认清形势,明确目标 了解AI行业发展趋势:关注国家政策、市场动态和技术进步,把握AI行业…

【漏洞复现】金万维-云联应用系统接入平台 GNRemote.dll 前台RCE

文章目录 0x00 漏洞描述0x01 测绘工具0x02 漏洞复现0x03 Nuclei检测脚本0x04 修复建议0x05 免责声明 0x00 漏洞描述 云联(AppCloud)是北京金万维科技有限公司的企业级私有云产品。 金万维-云联应用系统接入平台 GNRemote.dl接口存在远程命令执行漏洞&am…

电商数据精细化运营解决方案(18页PPT)

方案介绍: 电商数据精细化运营解决方案通过全面、深入的数据分析与应用,助力电商企业实现精细化管理和精准化营销,从而在激烈的市场竞争中脱颖而出。 部分方案内容:

CeoMax总裁主题最新3.8.1破解免授权版/WordPress付费资源素材下载主题

CeoMax总裁主题最新3.8.1破解免授权版,一套WordPress付费资源素材下载的主题,感觉这是做资源站唯一一个可以和ripro媲美甚至超越的模板,UI很美,功能也很强大,有想学习的可下载搭建学习一下,仅供学习研究借鉴…

几个小创新模型,Transformer与SVM、LSTM、BiLSTM、Adaboost的结合,MATLAB分类全家桶再更新!...

截止到本期MATLAB机器学习分类全家桶,一共发了5篇,参考文章如下: 1.机器学习分类全家桶,模式识别,故障诊断的看这一篇绝对够了!MATLAB代码 2. 再更新,机器学习分类全家桶,模式识别&a…

2024年SCI-莲花效应优化算法Lotus effect optimization algorithm-附Matlab免费代码

引言 本期介绍了一种基于自然行为的元启发式优化算法名为莲花效应优化算法Lotus effect optimization algorithm,LEA的元启发式算法。它将蜻蜓算法中的高效算子(比如蜻蜓在花授粉过程中的运动)与叶子上的水的自清洁特性(莲花效应)相结合,进行局部搜索操…

SSM学习9:SpringBoot简介、创建项目、配置文件、多环节配置

简介 SpringBoot式用来简化Spring应用的初始搭建以及开发过程的一个框架 项目搭建 File -> New -> Project 选中pom.xml文件,设置为maven项目 项目启动成功 可以访问BasicController中的路径 配置文件 在resources目录下 application.properties 默…