Mysql

本文详细介绍了数据库服务器、数据库和表的关系,以及如何在MySQL中创建、操作库和表,包括创建、查看、修改、删除数据库及表的方法。同时讨论了数据存储方式,以及在操作数据时的增删改过程,特别是中文数据插入与显示的解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 数据库概念

1.1. 数据库服务器、数据库和表之间的关系

所谓安装数据库服务器, 只是在机器上安装了一个数据库管理程序, 这个管理程序可以管理多个数据库.

一般开发人员在设计项目的时候会针对每一个应用创建一个数据库.

为了保存每一类实体, 在一个数据库中创建多个表.

1.2. 数据在数据库中的存储方式

每一行(一条记录)对应Java中的一个对象

每一列对应对象的一个属性

2. 操作库

创建库

CREATE DATABASE [IF NOT EXISTS] 数据库名 [参数[ 参数] [ 参数]...];

参数:

CHARACTER SET 码表名

COLLATE 校对规则名 参见帮助文档第10章

命令:show character set;可以显示MySQL支持的字符集和校对规则

Show collation like ‘latin1%’; 显示latin1字符集可以采用的校对规则

显示库

SHOW DATABASES;

显示数据库创建语句

SHOW CREATE DATABASE 数据库名; 查看数据库所采用的字符集

修改库

ALTER DATABASE 数据库名[ 参数[ 参数][ 参数]...];

注意: 不能改数据库的名字

删除库

DROP DATABASE [IF EXISTS] 数据库名;

3. 操作表

操作表之前使用需要先确定使用哪个数据库

USE 数据库名

创建表

CREATE TABLE 表名(列名 类型[,列名 类型][,列名 类型]...);

查看所有表

SHOW TABLES;

查看表的创建语句

SHOW CREATE TABLE 表名;

显示表结构

DESC 表名;

修改表名

RENAME TABLE 原表名 TO 新表名;

修改字符集

ALTER TABLE 表名 CHARACTER SET 字符集名;

删除表

DROP TABLE 表名;

4. 操作列

追加列

ALTER TABLE 表名 ADD 列名 类型[,列名 类型][,列名 类型]...;

修改列类型

ALTER TABLE 表名 MODIFY 列名 类型[,列名 类型][,列名 类型]...;

修改列

ALTER TABLE 表名 CHANGE COLUMN 原列名 新列名 类型;

删除列

ALTER TABLE 表名 DROP 列名;

5. 操作数据(增删改)

5.1. 插入

语法:

INSERT INTO 表名[(列名[,列名]...)] VALUES(值[,值]...);

注意事项:

插入值类型必须与对应列的数据类型一致

数据不能超出长度

插入值得为之必须与列名顺序一致

字符和日期数据要放在单引号中

插入空值使用null

如果不指定插入哪一列, 就是插入所有列

中文数据

由于默认码表是utf8, 而cmd.exe的码表是gbk, 在插入中文数据的时候会报错, 所以我们需要修改客户端码表

先查看系统变量: SHOW VARIABLES LIKE 'character%';

修改客户端码表: SET character_set_client=gbk;

这样就解决了中文插入的问题, 但在查询数据的时候仍然显示为乱码, 这是因为mysql向cmd传输数据的时候使用的是utf8

修改输出数据的码表: SET character_set_results=gbk;

5.2. 修改

语法

UPDATE 表名 SET 列名=值[,列名=值]...[WHERE 条件语句];

注意事项

WHERE子句选择满足条件的行进行更新, 如果不写, 则更新所有行

5.3. 删除

语法

DELETE FROM 表名 [where 条件语句]

注意事项

如果不加where子句, 将删除表中所有记录

delete只能用作删除行, 不能删除某一列的值, 需要用update

在delete和update的时候需要注意表与表之间的关联关系

删除表中所有数据可以使用: TRANCATE 表名, 这种方式会删除旧表重新创建, 在数据较多的时候使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值