Mysql002:(库和表)操作SQL语句

目录:

》SQL通用规则说明

SQL分类:

》DDL(数据定义:用于操作数据库、表、字段)

》DML(数据编辑:用于对表中的数据进行增删改)

》DQL(数据查询:用于对表中的数据进行查询)

》DCL(用户权限:用于创建用户、修改数据库访问权限等)

SQL通用规则说明:

  1. SQL语句可以单行编写,也可以多行编写,以英文分号结束

  2. SQL语句可以使用空格、缩进来美化SQL语句

  3. SQL语句不区分大小写, 关键字建议大写,表、字段等建议小写

  4. 注释:SQL语句中的单行注释可以使用 -- 注释内容;多行注释可以使用/*注释内容*/

1. 数据库操作语法

-- (查看所有数据库)

show databases;

-- (切换数据库)

use 数据库名

-- (查看当前所在数据)

select database();

-- (创建数据库)

create database 数据库名;

-- (创建之前检查数据库是否存在,如果存在则不创建)

create database if not exists 数据库名;

-- (创建数据库,并设置字符集)

create database 数据库名 default charset utf8mb4;

-- (删除数据库)

drop database 数据库名;

2. 表操作语法(注意:创建表之前需要切换数据库)

-- (查询当前数据库所有表)

show tables;

-- (创建表)

create table user_table(

id int comment '编号',

name varchar(50) comment '姓名',

age int comment '年龄',

gender varchar(1) comment '性别'

) comment '用户表';

-- (查询表结构)

desc 表名;

-- (查询表的创建语句)

show create table 表名;

-- (清空表数据)

delete table 表名;

-- (删除表)

drop table 表名;

-- (修改字段名)

ALTER TABLE 表名 MODIFY COLUMN 旧字段名 新字段名 数据类型;

-- (修改字段数据类型)

ALTER TABLE 表名 MODIFY COLUMN 字段名 新数据类型;

3. mysql中的数据类型

数字类型:整数类型包括 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,浮点数类型包括 FLOAT 和 DOUBLE,定点数类型为 DECIMAL。

日期/时间类型:包括 YEAR、TIME、DATE、DATETIME 和 TIMESTAMP。

字符串类型:包括 CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM 和 SET 等。

二进制类型:包括 BIT、BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。

以上这些数据类型不用记,下面我会整一张表你就懂了

|-------------|-------------|------------------------------|--------------------------------------------------------|---------------------------------------|
| 分类 | 类型(关键字) | 字节 | 有符号 | 无符号 |
| 数字类型(整数类型) | TINYINT | 1 字节 | -128 到 127 | 0 到 255 |
| 数字类型(整数类型) | SMALLINT | 2 字节 | -32,768 到 32,767 | 0 到 65,535 |
| 数字类型(整数类型) | MEDIUMINT | 3 字节 | -8,388,608 到 8,388,607 | 0 到 16,777,215 |
| 数字类型(整数类型) | INT | 4 字节 | -2,147,483,648 到 2,147,483,647 | 0 到 4,294,967,295 |
| 数字类型(整数类型) | BIGINT | 8 字节 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 0 到 18,446,744,073,709,551,615 |
| 数字类型(浮点数类型) | FLOAT | 4 字节 | -3.402823466E+38 到 -1.175494351E-38 | 0 和 1.175494351E-38 到 3.402823466E+38 |
| 数字类型(浮点数类型) | DOUBLE | 8 字节 | -1.7976931348623157E+308 到 -2.2250738585072014E-308 | 0 和 2.2250738585072014E-308 |
| 数字类型(定点数类型) | DECIMAL | 取决于指定的精度和小数位数 | 存储范围和精度因具体实现而异,通常支持指定的精度和小数位数。 ||
| 日期/时间类型 | YEAR | 1 字节 | | |
| 日期/时间类型 | TIME | 3 字节 | | |
| 日期/时间类型 | DATE | 3 字节 | | |
| 日期/时间类型 | DATETIME | 8 字节 | | |
| 日期/时间类型 | TIMESTAMP | 4 字节 | | |
| 字符串类型 | CHAR | 固定长度,取决于定义的字符长度。 | | |
| 字符串类型 | VARCHAR | 变长,取决于实际存储的字符长度。 | | |
| 字符串类型 | BINARY | 固定长度,取决于定义的字节长度。 | | |
| 字符串类型 | VARBINARY | 变长,取决于实际存储的字节长度 | | |
| 字符串类型 | BLOB | 根据实际存储的数据量不同而变化 | | |
| 字符串类型 | TEXT | 根据实际存储的字符量不同而变化 | | |
| 字符串类型 | ENUM | 根据所定义的枚举值数量而变化 | | |
| 字符串类型 | SET | 根据所定义的集合值数量而变化 | | |
| 二进制类型 | BIT | 根据定义的位数进行计算,最小单位为1字节 | | |
| 二进制类型 | BINARY | | | |
| 二进制类型 | VARBINARY | | | |
| 二进制类型 | TINYBLOB | 根据实际存储的数据量不同而变化,最大长度为 255 字节 | | |
| 二进制类型 | BLOB | | | |
| 二进制类型 | MEDIUMBLOB | 根据实际存储的数据量不同而变化,最大长度为 16MB | | |
| 二进制类型 | LONGBLOB | 根据实际存储的数据量不同而变化,最大长度为 4GB | | |

4. (有符号)和(无符号)的概念

接下来要理解一下(有符号)和(无符号)的概念,别的文章对这两个东西描述太官方了,不照顾小白。(有符号)=(有负号),(无符号)=(无符号),假如说你想存储"-100"这个数, 首先这个是一个数字,那你可以选择数字类型有(TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT)等,且这是一个带有负号的数字, 那就得用有符号类型。

注意点:

  1. (有符号)和(无符号)是在建表或者修改表字段的时候使用

  2. 大部分数据类型一般默认指定的都是(有符号)

  3. (有符号)字段可以存储(无符号)数字,(无符号)字段也可以存储(有符号)数字,为什么会这样呢? 那么区分他们的意义在哪? 我也不知道,根据官方的话来说可以提高性能和可读性。

  4. (有符号)字段除了存储带有-号的数字, 还可以存储带别的符号的数字么?不行,带别的符号那属于字符串类型了。

那么如何给字段定义(有符号)和(无符号)呢?请看如下

需求:将"-100" 和 "100" 这两个数字分别用int类型的(有符号)和(无符号)存储到名为"test_table"的表中

-- (建表时定义)

create table test_table (

nub int unsigned, -- 无符号

nub2 int signed -- 有符号,signed 可以省略

);

-- (修改表时定义)

ALTER TABLE test_table MODIFY COLUMN nub2 INT unsigned; -- 将nub2字段修改为(无符号)

如何查看字段是否是(有符号)字段还是(无符号)字段呢?通过desc就可以看到,如下

5. 增、删、改

添加数据:insert

修改数据:update

删除数据:delete

5.1 添加数据

  1. 给指定字段添加数据

insert into 表名 (字段1,字段2,...) values (值1,值2,...);

  1. 给全部字段添加数据

insert into 表名 values (值1,值2,...);

  1. 添加多行数据

insert into 表名 (字段1,字段2,...) values (值1,值2,...),(值1,值2,...),(值1,值2,...);

insert into 表名 values (值1,值2,...),(值1,值2,...),(值1,值2,...);

注意:添加值时,如果值时字符串,则需要""引号括起来

5.2 更新数据

update 表名 set 字段名1 = 新值1,字段名2=新值2,...where 条件

注意:如果不加where条件, 则一整列的数据都将被修改

5.3 删除数据

-- (删除某一行数据)

delete from 表名 where 条件

-- (删除整张表的数据)

delete from 表名

-- (删除某个字段的某个数据,不是删除一整行数据【用更新语句就可以解决啦,更新为空】)

update 表名 set 字段1=null where 条件

下一章节讲解基础查询

相关推荐
给我整点护发素19 分钟前
Flink执行sql时报错
大数据·sql·flink
日里安1 小时前
8. 基于 Redis 实现限流
数据库·redis·缓存
EasyCVR2 小时前
ISUP协议视频平台EasyCVR视频设备轨迹回放平台智慧农业视频远程监控管理方案
服务器·网络·数据库·音视频
Elastic 中国社区官方博客2 小时前
使用真实 Elasticsearch 进行更快的集成测试
大数据·运维·服务器·数据库·elasticsearch·搜索引擎·集成测试
明月与玄武3 小时前
关于性能测试:数据库的 SQL 性能优化实战
数据库·sql·性能优化
网安_秋刀鱼3 小时前
PHP代码审计 - SQL注入
sql·web安全·网络安全·php·1024程序员节
PGCCC4 小时前
【PGCCC】Postgresql 存储设计
数据库·postgresql
PcVue China6 小时前
PcVue + SQL Grid : 释放数据的无限潜力
大数据·服务器·数据库·sql·科技·安全·oracle
魔道不误砍柴功8 小时前
简单叙述 Spring Boot 启动过程
java·数据库·spring boot
锐策8 小时前
〔 MySQL 〕数据库基础
数据库·mysql