MySQL的基本操作(数据库操作、数据表操作、数据操作)
一.数据库操作
1.创建数据库
语法格式:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] 数据库名称
[DEFAULT]
{CHARACTER SET [=] 字符集名称
| COLLATE [=] 校对集名称
| ENCRYPTION [=] {'Y' | 'N'}
};
解释:
schema:纲要,图解,模式
default:违约,默认。这里是默认的意思
character:性格,特征,人物,字符,这里是字符的意思
collate:核对,校对
encryption:加密
2.查看数据库
语法格式:
SHOW {DATABASES | SCHEMAS} [LIKE 'pattern' | WHERE expr];
解释:
(1).SHOW {DATABASES | SCHEMAS}:表示使用SHOW DATABASES或SHOW SCHEMAS查看已存在的数据库
(2).LIKE 'pattern':可选项,表示LIKE子句,可以根据指定匹配模式匹配数据库,'pattern'为指定的匹配模式,可以通过'%'和'_'这两种
模式对字符串进行匹配。其中'%'表示匹配一个或多个字符;'_'表示匹配一个字符。
(3).WHERE expr:可选项,表示WHERE子句用于根据指定条件匹配数据库(expr:expression,表达式)
对Mysql自动创建的四个数据库进行说明:
1.infomation_schema:主要存储数据库和数据表的结构信息,例如用户表信息、字段信息、字符集信息
2.mysql:主要存储Mysql自身需要使用的管理和控制信息。如用户的权限
3.performance_schema:用于存储系统性能相关的动态参数。如全局变量
4.sys:系统数据库,包括了存储过程、自定义函数等信息
(4).SHOW CREATE {DATABASE | SCHEMA} 数据库名称; : 作用 查看指定数据库的创建信息
注:以'/*'开头并以'*/'结尾的内容是Mysql用于保持兼容性的信息
'/*!'后面的数字是版本号。表示只有当Mysql的版本号等于或高于指定的版本号才会被当成语句的一部分执行,否则将被当成注释
其中40100表示的版本为4.1.0,80016表示的版本为8.0.16
3.修改数据库
语法格式:
ALTER {DATABASE | SCHEMA} [数据库名称]
{[DEFAULT] CHARACTER SET [=] 字符集
| [DEFAULT] COLLATE [=] 校对集名称
| [DEFAULT] ENCRYPTION [=] {'Y' | 'N'}
| READ ONLY [=] {DEFAULT | 0 | 1} };
解释:
alter:改变,改动
read:阅读
(1).ALTER {DATABASE | SCHEMA} [数据库名称]:表示修改指定名称的数据库,数据库名称是可选项,若省略则该语句适用于当前所选择的
数据库,若没有选择数据库,会发生错误
(2).CHARACTER SET [=] 字符集:可选项,用于指定默认的数据库字符集
(3).COLLATE [=] 校对集名称:可选项,用于指定校对集
(4).ENCRYPTION [=] {'Y' | 'N'}:可选项,用于为数据库加密
(5).READ ONLY [=] {DEFAULT | 0 | 1}:用于控制是否允许修改数据库及其中的数据,允许的值为DEFAULT、0(非只读)、1(只读)。
4.选择数据库
Mysql中可能存在多个数据库,在使用SQL语句对数据表中的数据进行操作前,需要指定要操作的数据表来自哪个数据库
指定的方式有两种,第一种是将数据表的名称写成“数据库名称.数据表名称”;第二种是先使用USE语句选择数据库,选择后在后续的SQL语句中
可以直接写数据表的名称
由于第二种方式比较简单,在实际工作中一般都会使用第二种方式
语法格式:
USE 数据库名称;
上述语法格式中,USE语句后的分号可以省略。使用USE语句选择数据库后,它会一直生效,直到退出Mysql或执行了不同的USE语句为止
SELECT DATABASE();语句可以查看当前所选择的数据库
注:若要选择数据库,除了可以在登入Mysql后使用USE关键字实现以外,还可以在用户登入Mysql时直接选择要操作的数据库
语法格式如下:
mysql -u用户名 -p密码 数据库名称
或者可以隐藏用户密码
mysql -u 用户名 -p数据库名称
另注:若在-u和-p之后加上空格,那么参数(用户名和密码)必须明确地写出来,这种方式比较直观,参数清晰可见,但如果密码包含特殊字符如! @等可能会导致命令行解析错误,且不安全
若不加空格,后面直接写参数,那么参数会直接绑定到对应地选项上,但是同样存在密码暴露的问题
推荐的安全用法是不加空格且只写用户名,待系统提示输入密码
5.删除数据库
当一个数据库不再使用时,为了释放存储空间,需要将该数据库删除(谨慎、备份)
语法格式:
DROP {DATABASE | SCHEMA} 数据库名称;
二.数据表操作
在MySQL数据库中,所有的数据都存储在数据表中,若要对数据执行添加、查看、修改、删除等操作,需要在指定的数据库中准备一张数据表
1.创建数据表
指在已经创建的数据库中建立新数据表
基本语法格式:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 数据表名称 (
字段名 数据类型 [字段属性]
)[表选项];
解释:
temporary:暂时的,临时的
TEMPORARY:可选项,表示临时表,临时表仅在当前会话(从登入MySQL到退出MySQL的整个期间)可见,并且在会话结束时自动删除
IF NOT EXISTS:可选项,表示只有在数据表名称不存在时,才会创建数据表,这样可以避免因为存在同名数据表而导致创建失败
数据类型:用于确定MySQL存储数据的方式。下面是常见的数据类型:
整数类型(INT) 字符串类型(VARCHAR) 等
字段属性:可选项,用于为字段添加属性,每个属性有不同的功能,常用的属性有:
COMMENT属性和约束属性
COMMENT属性用于为字段添加注释说明;约束属性用于保证数据的完整性和有效性,后续章节会进行讲解
表选项:可选项,用于设置数据表的相关选项,如存储引擎、字符集、校对集等
存储引擎是MySQL处理数据表SQL操作的组件,数据的存储、修改和查询都离不开存储引擎
在创建数据表时,可以在表选项中指定存储引擎,如果没有指定存储引擎,则默认使用InnoDB存储引擎
通过“SHOW ENGINES;”语句可以查看MySQL服务器存储引擎的状态信息(engine:引擎,发动机)
Engine列表示存储引擎的名称
Support列表示是否支持
Comment列表示注释说明
Transactions列表示是否支持事务
XA列表示是否支持分布式事务
Savapoints列表示是否支持事务保存点
InnoDB存储引擎是默认存储引擎,具有良好的事务管理、崩溃修复和并发控制能力,相比其它存储引擎通用性更强,如果没有特殊需要,推荐使用InnoDB存储引擎
需要注意的是,在操作数据表之前,应使用USE语句选择数据库,否则会报错
2.查看数据表
选择数据库后,可以通过SHOW TABLES 语句来查看数据库中所有的数据表
语法格式:
SHOW TABLES [LIKE 'pattern' | WHERE expr];
解释:
LIKE子句和WHERE子句为可选项,如果不添加可选项,表示查看当前数据库中所有的数据表
如果添加可选项,则按LIKE语句或WHERE语句的匹配结果查看数据表
例如:“SHOW TABLES LIKE '%new%';” 表示查看名称中含有new的数据表
需要注意的是LIKE后的匹配模式必须使用单引号或双引号包裹
3.查看数据表的相关信息
除了上述查看数据表的方式外,还可以通过SHOW TABLE STATUS语句查看数据表的相关信息,如数据表的名称、存储引擎、创建时间等
语法格式:
SHOW TABLE STATUS [FROM 数据库名称] [LIKE 'pattern']; 注:在语句末尾加解释符\G用于将结果纵向排列
解释:
status:地位,身份,状态
4.查看数据表的创建语句
通过SHOW CREATE TABLE 语句可以查看创建数据表的具体SQL语句及数据表的字符编码
语法格式:
SHOW CREATE TABLE 数据表名称;
需要说明的是,在使用MySQL客户端工具执行该语句时,由于返回结果中的字段非常多,需要换行显示,容易造成字段和数据显示错乱的问题
为此,MySQL客户端工具提过了一种将结果以纵向结构显示的功能,在字段非常多时,可以使用结束符\G代替;,使显示结果整齐美观
5.MySQL中的注释
单行注释:以--或#开始,到行末结束。需要注意的是--后面一定要加一个空格,而#后面的空格可加可不加
多行注释:以/*开始,以*/结束
6.查看表结构
通过MySQL提供的DESC语句或SHOW COLUMNS语句可以查看指定数据表的结构
(1).使用DESC语句查看表结构:DESC 数据表名称; # 查看所有字段的信息
DESC 数据表名称 字段名; # 查看指定字段的信息
(2).使用SHOW COLUMNS语句查看表结构:SHOW [FULL] COLUMNS FROM 数据表名称 [FROM 数据库名称]; # 语法格式1
SHOW [FULL] COLUMNS FROM 数据库名称.数据表名称; # 语法格式2
解释:
可选项FULL表示显示详细内容,在不添加的情况下查询结果与DESC的结果相同
column : 圆柱,列,栏目
7.修改数据表
(1).修改数据表名称
在MySQL中,修改数据表名称的方式有两种
ALTER TABLE 旧数据表名称 RENAME [TO|AS] 新数据表名称;
RENAME TABLE 旧数据表名称1 TO 新数据表名称1 [,旧数据表名称2 TO 新数据表名称2]...;
第二种方法可以同时修改多个数据表的名称
(2).修改字段名
方法一:CHANGE子句
ALTER TABLE 数据表名称 CHANGE [COLUMN] 旧字段名 新字段名 数据类型 [字段属性];
方法二:RENAME COLUMN子句
ALTER TABLE 数据表名称 RENAME COLUMN 旧字段名 TO 新字段名;
(3).修改字段数据类型
在(2)中CHANGE子句中将旧字段名和新字段名设置成相同的字段名,然后为其设置新的数据类型即可
第二种方法为MODIFY子句:
ALTER TABLE 数据表名称 MODIFY [COLUMN] 字段名 新数据类型; # modify是修改的意思
(4).添加指定字段
ADD子句:
ALTER TABLE 数据表名称 ADD [COLUMN] 新字段名 数据类型 [FIRST | AFTER 字段名];
解释:
FIRST参数表示将数据表中新字段名添加为数据表的第一个字段;AFTER参数表示将新字段添加到指定字段后面
若不指定字段添加位置,则新字段默认添加到数据表的最后
ADD子句可以添加多个字段,语法格式如下:
ALTER TABLE 数据表名称
ADD [COLUMN] {新字段名1 数据类型1,新字段名2 数据类型2,...};
上述语句中,ADD子句同时新增多个字段时不能指定字段的添加位置,新字段默认添加到数据表的最后
(5).修改字段排列位置
使用ALTER TABLE 语句中的MODIFY子句或者CHANGR子句
方法一:MODIFY子句
ALTER TABLE 数据表名称 MODIFY 字段名 数据类型 FIRST; # 语法一,将某个字段修改为表的第一个字段,字段的数据类型若不需修改,和原来的数据类型保持一致即可
ALTER TABLE 数据表名称1 MODIFY 字段名1 数据类型 AFTER 字段名2; # 语法二,将字段名1移动到字段名2的后面,字段的数据类型若不需修改,和原来的数据类型保持一致即可
方法二:CHANGE子句
ALTER TABLE 数据表名称 CHANGE 字段名 字段名 数据类型 FIRST; # 语法一,将某个字段修改为表的第一个字段
ALTER TABLE 数据表名称 CHANGE 字段名1 字段名1 数据类型 AFTER 字段名2; # 语法二,将字段名1移动到字段名2的后面
(6).删除指定字段
使用ALTER TABLE语句的DROP子句,且可以删除多个字段
语法格式:
ALTER TABLE 数据表名称 DROP [COLUMN] 字段名1 [,DROP 字段名2]...;
(7).删除数据表
使用DROP TABLE语句可以删除一张或多张数据表
语法格式:
DROP [TEMPORARY] TABLE [IF EXISTS] 数据表名称1[,数据表名称2]...;
三.数据操作
1.添加数据
数据表创建好之后,可以向数据表中添加数据。添加数据又称为插入数据。在MySQL中,使用INSERTY语句可以向数据表中添加单条或多条数据
(1).添加单条数据
语法:
INSERT [INTO] 数据表名称
[([字段名][,...])]
{VALUES | VALUE} (值[,...]);
需要注意的是:使用insert语句时,字段名是可以省略的,,如果不指定字段名那么值的顺序必须和数据表定义的字段顺序相同
如果指定需要添加数据的字段名时,添加的顺序要和指定的字段名顺序保持一致
建议选values不太建议选value
还可以使用INSERT语句的SET子句为表中指定的字段或全部字段添加数据,其语法格式如下:
INSERT [INTO] 数据表名称 SET 字段名1=值1[,字段名2=值2,...];
(2).添加多条数据
语法格式:
INSERT [INTO] 数据表名称 [(字段名[,...])] (VALUES | VALUE)
(第一条记录的值1,第一条记录的值2,...),
(第二条记录的值1,第二条记录的值2,...),
...
(第n条记录的值1,第n条记录的值2,...);
2.查询数据
(1).查询数据表中指定字段
语法格式:
SELECT 字段名 [,...] FROM 数据表名称;
(2).查看数据表中的所有数据:使用通配符*
语法格式:
SELECT * FROM 数据表名称;
3.修改数据
在MySQL中,使用UPDATE语句可以修改数据表中的字段数据
(1).修改数据表中部分记录的字段数据
通过UPDATE语句的WHERE子句指定修改数据的条件
语法格式:
UPDATE 数据表名称 SET 字段名1=值1[,字段名2=值2,...] WHERE 条件表达式;
SET子句用于指定表中要修改的字段名和相应的值,其中字段名时要修改的字段名称,值为相应字段名被修改后的值
(2).修改数据表中所有记录的字段数据
在使用UPDATE语句修改数据时,如果没有添加WHERE子句,则会修改数据表中所有记录的字段数据
语法格式:
UPDATE 数据表名称 SET 字段名1=值1[,字段名2=值2,...];
4.删除数据
使用DELETE语句可以删除数据表中的数据,需要注意的是DELETE语句用于删除整条记录,不能用于删除某个字段的值
如果要删除某个字段的值,可以使用UPDATE语句将要删除的字段设置为空值
语法格式:
DELETE FROM 数据表名称 WHERE 条件表达式;
若要删除数据表中的全部记录,使用DELETE语句时直接省略WHERE子句
更多推荐
所有评论(0)