SQL语言

一、DDL数据库定义语言

1、登录mySQL

mysql -u"用户名" -p"密码" -h"登录地址

-h:默认为本机

示例:

2、查看当前存在的数据库

show databases;

示例:

3、创建数据库database

create database 数据库名称;

创建数据库db01

示例:

4、删除数据库database

drop database 数据库名称;

删除数据库db01

示例:

5、使用数据库

在数据库中创建/修改数据表时,需先使用数据库

use 数据库名称

使用数据库db01

示例:

二、DML数据库操作语言

数据表结构

一列为一个字段,一行为一条记录

1、查看当前数据库下存在的数据表

use 数据库名;

show tables;

示例:

新创建的数据库中未存在数据表

2、创建数据表

create table 数据表名称 (字段01 数据类型 约束,字段02 数据类型 约束...);

在数据库中创建数据表时,需要先使用数据库,但也可以用数据库.数据表的方式调用数据表

在数据库db01下创建数据表tab01

示例:

3、查询数据表结构

desc 数据表名称;

查询数据表tab01的结构

示例:

4、删除数据表

drop table 数据表名称;

删除数据表tab01

示例:

5、向数据表中插入数据

1、插入一条数据记录

insert into 数据表名称 values (数据01,数据02..);

向数据表插入数据记录时,数据记录中的数据需与数据表的字段一一对应,并且数据类型相同

向数据表tab01中插入一条数据记录

示例:

2、插入多条数据记录

也可以一次向数据表中插入多条数据记录,不同数据记录之间用逗号隔开

示例:

3、只向数据表的部分字段插入数据

insert into 数据表名称(字段01,字段02,...) values (数据01,数据02,...);

插入的数据也需和字段一一对应

示例:

只向部分字段插入数据时,本条数据记录,其余未插入数据的字段为NULL值

也可以向部分字段一次插入多条数据

示例:

6、删除数据表中的数据记录

delet from 表名 where 字段=数值01;

删除数据表tab01中字段name为张三的数据记录

示例:

7、修改数据表的结构

1、向数据表插入一个新字段

在数据表的末尾插入一个新字段

alter table 表名 add 字段 数据类型 约束;

向表tab01中插入height字段,数据类型为int

示例:

在数据表的开头插入一个字段,在末尾加上first即可

示例:

2、删除数据表中的一个字段

alter table 表名 drop 字段;

删除数据表tab01中的height字段

示例:

3、修改数据表中某个字段的数据类型

alter table 表名 modify 字段 数据类型;

修改数据表tab01中的id字段数据类型为varchar

示例:

4、修改字段名和字段数据类型

alter table 表名 change 字段名 新字段名 数据类型;

新数据类型可以和字段原数据类型相同

修改数据表tab01字段id的名字为id_number,数据类型为int

示例:

5、alter修改用户密码

alter user "用户名"@"登录主机" identified by "新密码";

或者还可以使用mysqladmin命令修改用户密码

三、DQL数据库查询语言

1、查询数据表中的所有数据记录

select * from 数据表名;

查询数据表tab01中的所有数据记录

示例:

2、只查询数据表中部分字段的数据记录

select 字段01,字段02,... from 数据表名;

查询数据表tab01中的name和age字段的数据记录

示例:

3、将数据记录按照某个字段进行降序排列输出

select * from 数据表名 order by 字段 desc;

将tab01的数据记录按照age字段进行降序输出

示例:

4、将数据记录按照某个字段进行升序排列输出

select * from 数据表名 order by 字段 asc;

将tab01的数据记录按照age字段进行升序输出

示例:

++条件查询++

5、查询字段数据在规定的取值范围内的数据记录

select * from 数据表名 where 字段 between 数值01 and 数值02;

查询字段age中数据在20--30范围内的数据记录

示例:

6、查询满足 字段01数据=数据01 并且 字段02数据=数据02 的数据记录

select * from 数据表名 where 字段01=数据01 AND 字段02=数据02;

查询 字段name=张三,并且 字段age=23 的数据记录

示例:

7、查询满足 字段01数据=数值01 或者 字段02数据=数据02 的数据记录

select * from 数据表名 where 字段01=数据01 OR 字段02=数据02;

查询 字段name=李四 或者 字段age=23 的数据记录

示例:

8、查询字段数据在规定的数值中的数据

select * from 数据表名 where 字段 in (数据1,数据2,...);

查询字段age的数值为21,23,24的数据记录

示例:

相比与between and, in 的数值范围更加精确

9、查询字段数据为NULL值的数据记录

select * from 数据表名 where 字段 is NULL;

查询字段mail中数据为NULL值的数据记录

示例:

四、DCL数据库控制语言

1、创建用户

create user "用户名"@"登录主机" identified by "密码";

创建本地用户user01,密码为MySQL@123

示例:

登录主机可以为本地也可以为其他远程服务器的IP地址

mysql的用户信息存放在数据库mysql的数据表user中,可以使用select查询用户信息

2、赋予用户权限

grant 权限(字段01,字段02) on 数据库.数据表 to "用户名"@"登录主机";

权限:

all:所有操作权限

create,创建权限

drop,删除权限

select,查询数据权限

insert,插入数据权限

update,更新数据权限

delete,删除数据权限 等....

数据库.数据表

示例:

*.*,对所有库、表、字段都有操作权限

mysql.*,只对mysql库及库中的表有操作权限

mysql.user,只对mysql库中的user表有操作权限

给用户user01赋予数据库db01中tab01表的所有权限

示例:

show grants for "用户名"@"登录主机"\G; 查看用户的所有权限

3、收回用户的权限

revoke 权限 on 数据库.数据表 from "用户名"@"登录主机";

收回用户user01对tab01表的所有权限

示例:

4、删除用户

drop user "用户名"@"登录主机";

删除本地用户user01

示例:

相关推荐
空中湖21 分钟前
Spring AI Function Calling 完全指南:让 AI 查数据库、调 API、发通知
数据库·人工智能·spring
IT瑞先生1 小时前
Docker快速部署Mysql的三种方法——实操篇
mysql·adb·docker
数据库小学妹1 小时前
MySQL在线DDL实战:ALGORITHM三种算法对比+gh-ost变更管理SOP
mysql·dba·数据库运维·在线ddl·mdl锁·sql变更管理
金伟API10241 小时前
常见的SQL面试题:经典50例
数据库·人工智能·笔记·sql·学习
谜之锋2 小时前
银河麒麟 Debian 系统离线deb包安装Mariadb 数据库指南
数据库·debian·mariadb
Leighteen2 小时前
MongoDB 文档模型设计:从关系型思维到文档型思维的转变
数据库·mongodb
Ethan01072 小时前
隔离级别管读,乐观锁管写——RC/RR 与写冲突的本质
mysql
CodexDave2 小时前
数据库连接池耗尽:排查顺序与三层兜底
服务器·前端·数据库·git·云原生·容器·kubernetes
播播资源3 小时前
智能路由(AI Router):用“虚拟模型”撬动无限算力,从此告别手动切换
数据库
熊文豪3 小时前
【金仓数据库征文】不装中间件的 MySQL→金仓在线迁移,mysql_fdw 全流程,和一个差点漏掉的 emoji
数据库·mysql·中间件·电科金仓