侧边栏壁纸
博主头像
dsmggm 博主等级

行动起来,活在当下

  • 累计撰写 35 篇文章
  • 累计创建 1 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

sql命令入门

dsmggm
2025-06-22 / 0 评论 / 0 点赞 / 6 阅读 / 0 字

DDL 数据定义语言

CREATE、DROP、ALTER、TRUNCATE

用来定义数据库、表、列等等

DML 数据操作语言

INSERT、UPDATE、DELETE、CALL

用来新增插入、修改、删除

DQL 数据查询语言

SELECT、WHERE

用来查询数据库中的记录

DCL 数据控制语言

GRANT、REMOKE

用来定义数据库权限、安全管理、创建用户等

mysql常用命令

查看全部数据库

show databases;

使用数据库

USE test.db;

创建数据库

CREATE DATABASE xxx;

删除数据库

DROP DATABASE xxx;

查看全部表

SHOW TABLES;

选择表

SELECT table_name;

创建表

CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50),
    email VARCHAR(50) UNIQUE,
    age INT
);

users: 表名
id:字段名,通常作为主键。
INT:数据类型为整数(范围:-2147483648 到 2147483647)。
PRIMARY KEY:将该字段设为主键(唯一标识每条记录,自动创建索引)。
AUTO_INCREMENT:自增属性,插入新记录时自动生成唯一 ID(从 1 开始,每次递增 1)
name:字段名,存储用户姓名。
VARCHAR(50):可变长度字符串,最多存储 50 个字符(节省空间)。
UNIQUE:唯一约束,确保每个邮箱地址在表中不重复。允许NULL

mysql常用数据类型

#数据类型分五大类
数值类型:
    整数类型:TINYINT SMALLINT INT BIGINT 分别对应1-8字节存储空间
    浮点数类型:Float Double 分别对饮4字节跟8字节存储空间

日期类型+时间类型:日期DATE 时间ITME 日期时间DATETIME 时间戳TIMESTAMP

字符串类型:定长字符串CHAR 变成字符串VARCHAR 文本TEXT 二进制数据BLOB

json类型 新型

空间类型 新型

查看表结构

DESP users;

修改表结构

# 修改列 将name列数值类型修改为VARCHAR(200),字符串200个字节
ALTER TABLE users MODIFY COLUMN name VARCHAR(200);
# 修改字段名称,将name字改成username
ALTER TABLE users RENAME COLUMN name to username;
# 修改username字段数据类型为字符串50字节,且默认值为1
ALTER TABLE users MODIFY COLUMN username varchar(50) DEFAULT 1;
# 添加列 列名为name,值类型为字符串100字符
ALTER TABLE users ADD COLUMN name VARCHAR(100);
# 删除字段
ALTER TABLE users DROP COLUMN name;

注:列名就是字段名

修改表名

RENAME TABLE 旧表名 TO 新表名;

删除表

DROP TABLE users;

插入数据

# 插入单条记录
INSERT INTO users (name, email, age) VALUES ('张三', '[email protected]', 25);

# 批量插入
INSERT INTO users (name, email, age) VALUES 
('李四', '[email protected]', 30),
('王五', '[email protected]', 28);

查询数据

# 查询users表所有记录
SELECT * FROM users;
# 查询特定字段
SELECT name, email FROM users;
# 条件查询
SELECT * FROM users WHERE age > 25 AND name LIKE '李%';
# 排序与分页
SELECT * FROM users ORDER BY age DESC LIMIT 10 OFFSET 5;

> 25: 大于25岁
LIKE: 模糊查询。以李开头
%: 通配符,匹配任意数量任意字符与shell的*一样,单字符用_匹配,如’李_’
WHERE: 条件查询
ORDER BY: 排序分页,ORDER BY + LIMIT + OFFSET 实现结果排序和分页。
例: ORDER BY age DESC:按 age 字段降序排列(从大到小)。
LIMIT 10 OFFSET 5: 取第 6 到第 15 条记录(跳过前 5 条,取 10 条)。

更新数据

# 更新单条记录
UPDATE users SET age = 31 WHERE name = '李四';

# 批量更新
UPDATE users SET age = age + 1 WHERE age < 30;

删除数据

# 删除单条记录
DELETE FROM users WHERE email = '[email protected]';

# 清空表(保留表结构)
DELETE FROM users;

备份数据库

# 备份单个数据库
mysqldump -u 用户名 -p 数据库名 > 备份文件名.sql

# 示例:备份名为 `mydb` 的数据库
mysqldump -u root -p mydb > mydb_backup.sql

# 备份多个数据库
mysqldump -u 用户名 -p --databases 数据库1 数据库2 > 备份文件名.sql

# 备份所有数据库
mysqldump -u 用户名 -p --all-databases > 备份文件名.sql

还原数据库

# 方法一:使用 mysql 命令
mysql -u 用户名 -p 数据库名 < 备份文件名.sql

# 示例:还原 `mydb` 数据库
mysql -u root -p mydb < mydb_backup.sql

# 方法二:登录 MySQL 后执行 source 命令
mysql -u 用户名 -p
mysql> USE 数据库名;
mysql> SOURCE 备份文件路径.sql;

远程备份还原数据库

# 备份远程数据库
mysqldump -h 远程主机IP -u 用户名 -p 数据库名 > 本地备份文件.sql

# 还原到远程数据库
mysql -h 远程主机IP -u 用户名 -p 数据库名 < 本地备份文件.sql

设置root密码

alter user 'root'@'%' identified with mysql_native_password by '密码';

刷新权限

flush privileges;

查看监听端口

show variables like '%port%';

port既为监听的端口

查看是否可以远程访问

select user, host from user where user='root';

如果root的host为localhost则为本地访问
如果root的host有%则表示可远程访问








达梦常用命令

进入sql终端

/opt/dmdbas/bin/disql /nolog

连接登录用户

conn 用户名/密码@IP:PORT

或者 connect 用户名/密码@IP:PORT
或者 login

检查数据库版本及服务状态

查看数据库运行状态

SELECT status$ as 状态 FROM v$instance;

输出结果:

状态
1 OPEN

查看达梦数据库版本

SELECT banner as 版本信息 FROM v$version;

输出结果:

版本信息
1 DM Database Server 64 V8
2 8.1
3 企业版
4 DB Version: 0x7000c
5 03134284058-20230713-195546-20046

创建用户并授权

创建用户

使用 CREATE USER 语句创建 DM 用户,登录密码为 "dameng123"。

CREATE USER DM IDENTIFIED BY "dameng123";

授予用户基本权限

使用 GRANT 语句给 DM 用户授予 RESOURCE 角色;

GRANT RESOURCE TO DM;

给 DM 用户授予 dmhr 用户下 employee 表的 select 权限;

GRANT SELECT ON dmhr.employee TO DM;

给 DM 用户授予 dmhr 用户下 department 表的 select 权限;

GRANT SELECT ON dmhr.department TO DM;

查看用户信息

通过字典表 dba_users 查看基本信息。

SELECT username,account_status,created FROM dba_users WHERE username='DM';

输出结果:

username account_status created
1 DM OPEN 2025-05-13 15:17:43

从输出结果看出,用户状态 account_status 为 open,输出的时间为用户的创建时间。

切换用户

切换到DM用户

使用 conn 命令切换用户。

conn DM/dameng123;

输出结果:
服务器处于普通打开状态

查看当前登录用户

SELECT user FROM DUAL;

输出结果:

USER()
1 DM

0

评论区