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

示例:

相关推荐
Databend17 小时前
在 AWS 中国峰会逛了一天,我在 Databend 展台看到了 Agent 数据基础设施的新思路
数据库·人工智能·agent
李白客2 天前
KES新版MySQL兼容能力再升级意味着什么?
mysql·国产数据库
ClouGence2 天前
Oracle 数据同步为什么会出现数据不一致?长事务是常被忽略的原因
数据库·后端·oracle
飞将2 天前
从零实现数据库(2)——HashIndex + IndexManager
数据库
Nturmoils3 天前
订单列表慢查询,先看 WHERE、ORDER BY 和 LIMIT
数据库
渣波3 天前
拒绝 SQL 焦虑!手把手带你用 NestJS + Prisma + DTO 写出“防弹”级后端代码
javascript·数据库·后端
Jim6004 天前
【吃透 MySQL InnoDB连载】第 1 章・解密线上数据库高频故障
mysql
GreatSQL4 天前
gt-checksum v4.0.0 新功能解读系列文章(4):SSL 加密连接——数据校验传输安全再升级
mysql
倔强的石头_4 天前
KingbaseES 新版MySQL 兼容版体验:旧版迁移 + 功能实测
数据库