mysql数据库的SQL语句详解

2023-12-28 17:33:00

1. 操作系统详解

操作系统:windows做服务器:Windows Server2016

Linux系统的服务器:RedHat ?Debian ?SUSE) ? ? ?MacOS

Linux系统 ? CentOS(yum dnf) ? ? Ubuntu(apt apt-get) ? ? OpenSUSE

信创标准 ?会让系统逐渐国产化

国产系统:

华为 欧拉 ? ?
阿里 龙蜥 ? ?
腾讯 tencentOS ? ?
红旗 ? ?
统信 ? ?
麒麟(银河麒麟,中标麒麟->CentOS,优麒麟->Ubuntu)

2.? 数据库的类型

数据库分为两大类:关系型数据库SQL? 非关系型数据库 NOSQL

关系型数据库:如MySQL MariaDB Oracle DB2 PostgreSQL(pgdb),以及国产的华为高斯,阿里云的RDS,还有阿里的oceanbase 腾讯的TDBA,人大金仓 ? ?达梦 ? ?greatSQL

sql关系型数据库的特点是:

关系型数据库几乎通用sql语句;
数据的存储类型是二维表格结构;可以创建库,库中创建表,表中数据存储结构为二维表格的结构化数据,分为行和列存储,行为一条记录,表示对象的一条信息,列为字段,表示一个对象的属性;
关系型数据库通常用于业务数据管理,账户信息存储;
非关系型数据库常用代表:

缓存型(key-value) ?Redis ? Memcached?
文档型(document) ?MongoDB
索引型(search engine) ?Elasticsearch
时序型(time series) ?Prometheus ?InfluxDB
列式型 (wide column) HBase
nosql非关系型数据库的特点:

每种非关系型数据库有自己独特的语言;
不同类型的NoSQL使用不同的数据存储结构,比如有键值对、文档、索引、时间序列等。

3. 关系型数据库的四种语言

DDL: 用于管理数据对象(库、表、索引等)

DML:用于管理表数据

DQL:用于根据条件查询表数据

DCL:用于管理用户和权限

常用的数据类型:
int :整型   无符号[0,2^32-1],有符号[-2^31,2^31-1]
float :单精度浮点    4字节32位
double :双精度浮点    8字节64位
char :固定长度的字符类型
varchar :可变长度的字符类型
text :文本
image :图片
decimal(5,2) :5个有效长度数字,小数点后面有2位
datetime:时间
date:日期
time:时间

4.?DDL语言

(数据库定义语言,管理创建对象如库、表、字段、索引等)

库的增删改查;

create database 库名;  ##创建库
drop database 库名;  ##删除库
show databases;  ##查看有哪些库
use 库名;  ##切换库

表的增删改查

create table [库名.]表名 (字段1 数据类型 [约束属性],字段1 数据类型 [约束属性],.....);
##创建数据表结构
 
use 库名; ##先切换库
create table 表名 (字段1 数据类型 [约束属性],字段1 数据类型 [约束属性],.....);  ##创建数据表结构
 
create table 表名 (字段1 数据类型,字段1 数据类型 ,....[约束属性]);
 
 
drop table 表名;
drop table [库名.]表名;
##删除表 谨慎!!
 
desc [库名.]表名;
##查询表结构 以表格形式显示
show create table [库名.]表名;
##以命令的形式显示表结构
 
 
alter table [库名.]旧表名 rename [库名.]新表名;


alter table [库名.]表名 add 字段名称 字段数据类型 [约束属性];
##表中新增一个字段,一定要跟上数据的属性
 
alter table [库名.]表名 add 约束属性;
##可以直接添加表的约束属性 如primary key(字段名) 或者 unique key(字段名) 
 
alter table [库名.]表名 change 旧字段名 新字段名 字段数据类型 [约束属性];
##修改一个字段的名称或者数据类型
 
alter table [库名.]表名 drop 字段名;
##删除一个字段

5. DML语言

insert into [库名.]表名(字段1,字段2,....)values(字段1的值,字段2的值,....)
insert into [库名.]表名 values(所有字段的值 一一对应);
##添加数据记录
 
update [库名.]表名 set 字段名=字段值 where 条件表达式 [and/or 条件表达式2];
##修改数据的值
 
delete from [库名.]表名 where 条件表达式 [and/or 条件表达式2];
##删除数据的值
 
delete from [库名.]表名;
##清空数据表,只剩表结构。

6. DQL语言


select * from [库名.]表名;
##查看表中的所有字段对应的所有值
 
select 字段1,字段2,... from [库名.]表名 where 条件表达式 [and/or 条件表达式2];
##查询某些字段 满足条件的数据
 
select * from [库名.]表名 limit N;
##查询前N行,包括第N行的数据
 
select * from [库名.]表名 limit N,M;
##查询第N行以后,不包含第N行,后面M行的数据

7. DCL语言


create user '用户名'@'源地址' identified by '密码';
##创建用户
 
rename user '用户名'@'源地址' to '新用户名'@'新源地址';
##修改用户名
 
drop user '用户名'@'源地址';
##删除用户
 
select user,host,authentication_string from mysql.user;
##查看有哪些用户信息

8.六大约束属性以及应用场景

primary key 表示主键约束 ;主键字段的值必须是唯一且不可重复,也不能为空,一个表中,只能有一个主键
unique key 表示唯一键约束;唯一键字段的值不能重复,但是可以为空,一个表中可以有多个唯一键;
not null 表示非空约束;表示该字段的值不能为空;
default 表示默认值约束;当该字段的数据为空时,使用默认值填充;
auto_increment 表示自增约束,字段如果没有设置值,那么数据会默认从1开始自增长,且自增字段必须为主键
foreign key 表示外键约束,用于确保外键表和主键表的数据完整和一致性
int(N) zerofill 表示N位数据零填充

9.?清空数据


delete from [库名.]表名;
处理方式是一行一行的删除,比较耗时,如果表中有自增字段,那么下次添加数据的时候,自增字段的值不会从1开始,而是从删除前的值开始
 
truncate table [库名.]表名;
处理方式是创建一个同名且相同表结构,所有数据清空,原有的自增数据不会保留,添加数据的时候自增字段的值默认从1开始;(相当于格式化表)

文章来源:https://blog.csdn.net/qq_48810547/article/details/135225215
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。