数据库常用命令

修订:

查看表中的字段

1
show columns from 商品库存;xxxxxxxxxx columnshow columns from 商品库存;

1694239120400

1694240340953

1
2
select 所在区域 from 商品库存 limit 5;  检索此语句使用SELECT语句检索单个列。LIMIT 5指示MySQL返回
不多于5行。

1694240532823

统计四张表的记录数,要求 SQL 语句禁用联合查询(Union、JOIN、多表

1
2
3
SELECT
(SELECT COUNT(*) FROM d_3_1) AS dcount,
(SELECT COUNT(*) FROM 商品库存) AS scount

1701681099499

一、连接数据库

1
mysql -h 主机IP -P 端口号 -u 用户名 -p 密码

在 Ubuntu

1
MySQL -u root -p

连接远程主机

1
mysql -h110.110.110.110 -u root -p 123;

二、修改用户密码

1
mysqladmin -u root -password ab12

再次修改

1
mysqladmin -u root -password djg345

三、新增用户

(1)增加一个用户 test1,密码为 abc

1
2
grant select,insert,delete on *.*to [email]=test@"%]test1@"[/email]"Indentified by"abc";
# grant on 命令格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”;

(2)新增一个 test2 密码为 abc,只能 localhost 登录

1
2
3
grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhsot[/email] identified by "abc";
# 如果不想test有密码可以在用一次打消密码
grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “”;=

四、创建数据库

(1)create database 命名;

1693301573827

(2)创建数据库并分配用户

1
2
3
4
5
6
#1
create database 数据库名;
#2
create select,insert,update,delete,create,drop,alter on 数据库名.* to 数据库名@loclhost identified by '密码';
#3
select password por '数据名'@'localhost' =old_password('密码');

五、显示数据库

show databases 显示所有数据库

1693311907411

六、删除数据库

drop database xhkdb;

1693311993666

七、使用数据库

use xhkdb;

(1)use 语句可以通告 mysql 把数据库当作默认使用。知道下一个不同的 use 语句。

1693314402433

(2)use 语句不会阻碍访问其他数据库中的表。ab1 数据库访问 author 表,并从 db2 数据库访问 editor 表

1
2
3
use db1;
select author_name,editor_name from author,ab2,editor;
where author.editor_id = ab2.editor.editor_id;

八、当前连接的数据库

select database();

(1)显示 mysql 版本

1
select version();

1693314931707

(2)显示当前时间

1
select now();

1693314952201

(3)显示年月日

1693315145115

1693315128832

1693315054667

(4)显示字符串

1693315209186

(5)当计算器

1693315238981

(5)串接字符串

1693315322414

//这里用到 CONCAT()函数,用来把字符串串接起来。

九、创建数据库表

注意:要先使用 use 数据库名;

1
2
3
4
5
6
7
create table 表名
(
字段名1,数据类型 [列级别约束条件][默认值],
字段名2,数据类型 [列级别约束条件][默认值],
……
[表级别约束条件]
)

1693315552760

例如:创建 tb_emp1 表结构

1693317121082

1693317243938

十、获取表结构

查看表结构可以使用 describe 和 show create table;

1
describe 表名;

1
desc 表名;

show create table 可以查看显示创建表时的 create table 语句。

1
show create table 表名\G;

1693317695853

十一、删除数据表

1
drop table if exists 表1,表2,表n

1693355675932

十二、向表中插入数据

insert into 插入新行

1
2
3
insert into 表名称 values(值1,值2);
# 也可以指定要插入数据的列
insert into table_name(列1,列2)values(值1,值2)

十三、查询表中数据

1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT
{* | <字段列表>}
[
FROM <表 1>,<表 2>...
[WHERE <表达式>
[GROUP BY <group by definition>]
[HAVING <expression> [{<operator><expression>}...]]
[ORDER BY <order by definition>]
[LIMIT [<offset>,] <row count>]
]
SELECT [字段 1,字段 2,…,字段 n]
FROM [表或视图]
WHERE [查询条件];

1696756935287

十四、删除记录

1
2
3
delete from table_name[where <condition>];
# 指定删除条件
delete from person where id=11;

十五、修改表中的数据

1
2
3
update table_name
set column_nmael=value1,column_name2=value2
where(condition)

column_name1,为指定更新的字段名称。value 为相对应指定字段的更新值。condition 更新记录需要满足的条件

【例】在 person 表中,更新 id 值为 11 的记录,将 age 字段值改为 15,将 name 字段值改为 LiMing,SQL 语句如下:

1
update person set age=15,name='liming'where id=11;

十六、增加字段

1
2
3
4
alter add 表名 add 新字段 数据类型
约束条件 first|after 已存在字段名
first将新添加的字段设置为表的第一个字段
after新添加的字段指定在‘已存在字段名’的后面

【例】在数据表 tb_dept1 中添加一个没有完整性约束的 INT 类型的字段 managerId(部门经理编号),SQL 语句如下:

1
ALTER TABLE tb_dept1 ADD managerId INT(10);

十七、修改表名

1
alter table 旧表名 rename to新表名

【例】将数据表 tb_dept3 改名为 tb_deptment3,SQL 语句如下:

1
ALTER TABLE tb_dept3 RENAME tb_deptment3;

十八、备份数据库

1
mysqldump -u user -h host -p password dbname[tbname,[tbname]]>filename.sql

十九、还原数据库

1
mysql -u user -p [dbname]<filename.sql

【例 1】使用 mysql 命令将 C:\backup\booksdb_20130301.sql 文件中的备份导入到数据库中,输入语句如下:

1
mysql –u root –p booksDB < C:/backup/booksdb_20130301.sql

如果已经登录 MySQL 服务器,还可以使用 source 命令导入 sql 文件。source 语句语法如下:

1
source filename

【 例 2 】 使 用 root 用 户 登 录 到 服 务 器 , 然 后 使 用 source 导 入 本 地 的 备 份 文 件 booksdb_20110101.sql,输入语句如下:

–选择要恢复到的数据库

1
2
3
mysql> use booksDB;

Database changed

–使用 source 命令导入备份文件

1
mysql> source C:\backup\booksDB_20130301.sql

二十、快速恢复数据库

在 MySQL 服务器停止运行时,将备份的数据库文件复制到 MySQL 存放数据的位置(MySQL 的 data 文件夹)

1
chown -R mysql.mysql /var/lib/mysql/dbname

【例】从 mysqlhotcopy 复制的备份恢复数据库,输入语句如下:

1
cp -R /usr/backup/test usr/local/mysql/data

二十一、在 Ubuntu 下安装 mysql

1
2
3
4
5
6
7
sudo apt-get update #更新软件包
sudo apt-get install mysql-server #安装数据库服务器

启动:sudo /etc/init.d/mysql start
停止:sudo /etc/init.d/mysql stop
重启:sudo /etc/init.d/mysql restart
登录:mysql -u root -p<pwd>

二十二、关闭防火墙

1
2
3
4
- sudo apt-get install ufw 安装防火墙
- sudo ufw enable 打开防火墙
- sudo ufw status 查看防火墙状态
- sudo ufw disable 关闭防火墙

MySQL 在 Ubuntu 使用

二十三、在服务器 SQLSERVER 上,利用 U 盘“U 盘资料/test.sql”还原三张数据

表。

1705417667865

二十四、统计三张表的记录数,查询结果要求如图。

1
2
3
4
5
SELECT 'table1' AS TableName, COUNT(*) AS RecordCount FROM table1
UNION ALL
SELECT 'table2' AS TableName, COUNT(*) AS RecordCount FROM table2
UNION ALL
SELECT 'table3' AS TableName, COUNT(*) AS RecordCount FROM table3;

二十五、删除 AD_AccountsRole 表中不属于 AD_Accounts 用户的关系数据。重新查询三张表的记录数。

1705417785368

二十六、新建查询窗口,写出查询 nleedge 数据库中所有数据表和每个表的记录

1
2
3
SELECT
(SELECT COUNT(*) FROM d_3_1) AS 表一,
(SELECT COUNT(*) FROM `商品库存`) AS 表二;