MySQL基本操作[url=]1,数据库操作[/url][url=]1.1,查看数据库[/url] 1)查看MySQL服务器下所有数据库 SHOW DATABASES;
具体SQL语句操作: information_schema数据库是MySQL服务器的数据字典(保存所有数据表和库的结构信息) performance_schema数据库是MySQL服务器的性能字典(保存全局变量等的设置) mysql 主要负责MySQL服务器自己需要使用的控制和管理信息(用户的权限关系等) sys是系统数据库,包括了存储过程,自定义函数等信息
切记:这4个数据库是MySQL安装时自动创建的,建议不要随意的删除和修改这些数据库,避免造成服务器故障。
2)查看指定数据库的创建信息 SHOW CREATE DATABASE 数据库名称;
若想查看sys数据库的信息:
3)查看当前数据库 SELECT DATABASE();
具体SQL语句操作: 切记:在输入当前数据库查询的SQL语句前,必须先选择数据库。 [url=]1.2,创建数据库[/url]CREATE DATABASE [IF NOT EXISTS] 数据库名称[库选项];
切记: 数据库名称是由字母,数字和下划线组成的任意字符串。 库选项用于数据库的相关特性,例如字符集CHARSET,校对集COLLATE。 创建的数据库的默认字符集为latinl,校对集为latinl_swedish_ci。 不可重复创建相同的数据库,如果创建的数据库已存在,则程序会报错。 为了防止上述情况,在创建数据库时在数据库名称前添加IF NOT EXISTS,表示当指定的数据库不存在时执行创建操作,否则忽略此操作。
具体SQL语句操作: [url=]1.3,选择数据库[/url]USE 数据库名称;
具体SQL语句操作: 扩展:在用户登录MySQL服务器也可以直接选择要操作的数据库,基本语法: mysql -u 用户名 -p 密码 数据库名;
具体SQL语句: #方式1,在登陆时显示用户密码,选择数据库mysql -u root -p 123456 sys;#方式2,在登陆时隐藏用户密码,选择数据库mysql -u root -p sys;Enter password:******
[url=]1.4,删除数据库[/url]DROP DATABASE [IF EXISTS] 数据库名称;
具体SQL语句操作: 切记: 删除数据库,清除数据库中的所有数据,回收为分配的存储空间。 在执行DROP DATABASE 删除数据库时,若待删除的数据库不存在,MySQL服务器会报错。 若想避免上述的情况,在进行删除数据库操作时,使用IF EXISTS来进行规避待删除的数据库不存在报错情况。
[url=]2,数据表操作[/url][url=]2.1,创建数据表[/url]CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 表名( 字段1 字段1类型 [字段属性] [COMMENT 字段1注释 ], 字段2 字段2类型 [字段属性] [COMMENT 字段2注释 ], 字段3 字段3类型 [字段属性] [COMMENT 字段3注释 ], ...... 字段n 字段n类型 [COMMENT 字段n注释 ] ) [表属性] [ COMMENT 表注释 ] ;
具体SQL语句操作: 切记: 选项TEMPORARY表示临时表,仅在当前会话中可见,并且在会话关闭时自动删除。 字段名指的是数据表的列名;数据类型设置字段中保存的数据类型;可选项字段属性指的是字段的某些约束条件。 可选的表选项用于设置表的相关特性,如存储引擎(ENGINE),字符集(CHARSET),校对集(COLLATE)。 在操作数据表之前,应该使用“USE 数据库名”指定操作是在哪个数据库中进行,否则会抛出No database selected错误。 也可以采用数据库.表名的形式,在如何数据库下访问其他数据库总的表,减少了‘USE 数据库‘的选择数据库操作。
[url=]2.2,查看数据表[/url]1)查看数据表 SHOW TABLES [KIKE 匹配模式];
具体SQL语句操作: 切记: LINK后的匹配模式必须使用单引号或者双引号包裹。 若不添加可选项“LINK 匹配模式”,表示查看当前数据库中的所有数据表;若添加则按照匹配模式来查看数据库。 匹配模式符有2种,分别为“%”和“_”,前者表示匹配一个或者多个字符,代表任意长度的字符串,长度可为0,而后者仅可以匹配一个字符。
2)查看数据表的相关信息 SHOW TABLE STATUS [FROM 数据库名] [LIKE 匹配模式];
具体SQL语句操作: 切记: 查看数据表操作的相关信息包括数据表的名称,存储引擎,结构文件,存储格式,创建时间,校对集等一系列信息。 ’\G’是MySQL客户端可以使用的结束符的一种,用于将显示的信息纵向排列,适合字段非常多的情况。 Row_format 字段的值除了Dynamic外,还有Fixed(固定),Compressed(压缩),Redundant(冗余) 和 Compact(紧凑)。
[url=]2.3,查看表结构[/url]MySQL提供的DESCRIBE语句可以查看数据表在所有字段或者指定字段的信息,包括字段名,字段类型等信息。
1)查看数据表的字段信息 #语法格式1:查看所有字段的信息{DESCRIBE|DESC} 数据表名;
具体SQL语句操作: #语法格式2:查看指定字段的信息{DESCRIBE|DESC} 数据表名 字段名;
具体SQL语句操作: 切记: Field 表示字段名称 Type表示字段的数据类型 Null表示该字段是否可以为空 Key表示该字段是否已设置了索引 Default表示该字段是否有默认值 Extra表示获取到的与该字段相关的附加信息
2)查看数据表的创建语句 查看创建数据表的具体SQL语句以及表的字符编码 SHOW CREATE TABLE 表名;
具体SQL语句操作: 切记:
3)查看数据表结构 #语法格式1SHOW [FULL] COLUMNS FROM 数据表名 [FROM 数据库名];
具体SQL语句操作: #语法格式2SHOW [FULL] COLUMNS FROM 数据表名.数据表名;
具体SQL语句操作: 切记: [url=]2.4,修改数据表[/url]1)修改数据表名称 #语法格式1ALTER TABLE 旧表名 RENAME [TO|AS] 新表名;
具体SQL语句操作: 具体SQL语句操作: #语法格式2RENAME TABLE 旧表名1 TO 新表名1;
具体SQL语句操作: 具体SQL语句操作: #批量修改多个数据库名称RENAME TABLE 旧表名1 TO 新表名1,旧表名2 TO 新表名2,...,旧表名n TO 新表名n;
具体SQL语句操作: 具体SQL语句操作: 切记:
2)修改表选项 数据表中的表选项字符集,存储引擎以及校对集也可以通过ALTER TABLE修改。 ALTER TABLE 表名 表选项 [=] 值;
具体SQL语句操作: 具体SQL语句操作: [url=]2.5,修改表结构[/url]1)修改字段名 ALTER TABLE 数据表名 CHANGE [COLUMN] 旧字段名 新字段名 字段类型 [字段属性];
具体SQL语句操作: 具体SQL语句操作: 切记:
2)修改字段类型 ALTER TABLE 数据表名 MODIFY [COLUMN] 字段名 新类型 [字段属性];
具体SQL语句操作: 具体SQL语句操作:
3)修改字段位置 ALTER TABLE 数据表名 MODIFY [COLUMN] 字段名 新类型 [字段属性] [FIRST|AFTER 字段名2];
具体SQL语句操作: 具体SQL语句操作: 切记:
4)新增字段 #语法格式1:新增一个字段,并可指定其位置ALTER TABLE 数据表名 ADD [COLUMN] 新字段名 字段类型 [字段属性] [FIRST|AFTER 字段名];
具体SQL语句操作: 具体SQL语句操作: #语法格式2:同时新增多个字段ALTER TABLE 数据表名 ADD [COLUMN] (新字段名1 字段类型1, 新字段名2 字段类型2,...,新字段名n 字段类型n)
具体SQL语句操作: 具体SQL语句操作: 切记:
5)删除字段 ALTER TABLE 数据表名 DROP [COLUMN] 字段名;
具体SQL语句操作: 具体SQL语句操作: [url=]2.6,删除数据表[/url]删除数据表操作指的是删除指定数据库中已经存在的表。 #删除单个数据表DROP [TEMPORARY] TABLE [IF EXISTS] 数据表1;
具体SQL语句操作: #删除多个数据表DROP [TEMPORARY] TABLE [IF EXISTS] 数据表1,数据表2,...,数据表n;
具体SQL语句操作: 切记: [url=]3,数据操作[/url][url=]3.1,增加数据[/url]1)为部分字段添加数据 INSERT [INTO] 数据表名(字段名1,字段名2,...,字段名n) {VALUES|VALUE} (值1,值2,...,值n);
具体SQL语句操作: 具体SQL语句操作: INSERT [INTO] 数据表名 SET 字段名1 = 值1 [,字段名2 = 值2,...,字段名n = 值n]
具体SQL语句操作: 具体SQL语句操作: 切记: 指定的字段名可以是数据表中的全部字段,也可以是部分字段。 字段名列表和值列表中,多个字段名之间使用逗号相隔,多个值之间也使用逗号相隔。 字段名的编写顺序可与表结构(字段位置)不同,只需保证与后面的值列表中的值对应即可。 字段的名称在使用时不需要用引号包裹,未添加的数据的字段系统会自动为该字段添加默认值NULL(空的)。
2)为所有字段添加数据 INSERT [INTO] 数据表名 {VALUES|VALUE} (值1,值2,...,值n);
具体SQL语句操作: 具体SQL语句操作: 切记: 在为所有字段添加数据时,可以省略字段名称,严格按照数据表结构(字段的位置)插入对应的值。 INTO 为可选择项;VALUE 和VALUES可以任选一种,通常情况下使用VALUES;值列表中值之间用逗号隔开。 在插入数据时,插入的数据顺序必须与创建数据表时对应的字段位置顺序相同,不可搞乱顺序,规避数据顺序错误情况。
3)批量添加多行数据 INSERT [INTO] 数据表名 [字段列表] {VALUES|VALUE} (值列表1) [,(值列表2),...,(值列表n)];
具体SQL语句操作: 具体SQL语句操作: 切记:
4)扩展知识 问题:在MySQL中,若创建的数据表未指定字符集,则数据表及表中的字段将使用默认的字符集latinl,因此再插入数据中含有中文,则会出现错误提示,那么如何解决以上中文插入的问题? 解答:为了解决以上中文插入的问题,通常在创建数据表时添加表选项,设置数据表的字符集。 CREATE TABLE 数据表名( 字段...)DEFAULT CHARSET utf8;
ALTER TABLE user MODIFY name VARCHAR(10) CHARSET SET utf8;
[url=]3.2,查询数据[/url]1)查询表中全部数据 SELECT * FROM 数据表名;
具体SQL语句操作: 切记:
2)查询表子部分字段 SELECT {字段名1,字段名2,字段名3,...,字段名n} FROM 数据表名;
具体SQL语句操作: 切记:
3)简单条件查询数据 SELECT * FROM 数据表名 WHERE 条件表达式;
具体SQL语句操作: SELECT * FROM 数据表名 WHERE 字段名 = 值;
具体SQL语句操作: SELECT * {字段名1,字段名2,字段名3,...,字段名n} FROM 数据表名 WHERE 字段名 = 值;
具体SQL语句操作: 切记: [url=]3.3,修改数据[/url]修改数据操作是对数据表中的部分数据记录进行修改。 UPDATE 数据表名 SET 字段名1 = 值1 [,字段名2 = 值2,...] [WHERE 条件表达式];
具体SQL语句操作: 具体SQL语句操作: 切记: [url=]3.4,删除数据[/url]删除数据操作是对数据表中存在的数据记录进行删除。 DELETE FROM 数据表名 [WHERE 条件表达式];
具体SQL语句操作: 具体SQL语句操作: 切记: [url=]4,其它操作[/url][url=]4.1,安装目录位置显示[/url]SHOW VARIABLES LIKE 'BASEDIR';
具体SQL语句操作: [url=]4.2,数据目录位置显示[/url]SHOW VARIABLES LIKE 'DATADIR';
具体SQL语句操作: [url=]4.3,错误日志目录查询[/url]SHOW VARIABLES LIKE 'log_error';
具体SQL语句操作: 总结以上就是数据库的MySQL基本操作的所有内容,希望能够对大家有帮助。如果大家有什么解决不了的问题,欢迎大家评论区留言或者私信告诉我。如果感觉对自己有用的话,可以点个赞或关注鼓励一下博主,我会越做越好的,感谢各位的支持,我们下期见。
|