Mysql的操作详解

185 阅读6分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第13天,点击查看活动详情


theme: juejin highlight: a11y-dark

SQL语句的写法规范:
1.SQL语句系统命令必需大写,名称小写(我使用时用的小写也可以的)
2.结束分隔符以分号或 \g结束
3.支持折行,但函数或名称或引号不能折行
4.名称不能用关键字或保留字,但如果使用用反引号括起来(``) 例users

一、Mysql登陆与退出

1.登录

(1).mysql -u用户名 -p密码

例:mysql -uroot -proot  

(2).mysql -u用户名 -p密码 -P端口号 -D选择的数据库

例:mysql -uroot -proot -P3306 -Dtest  

2.退出

(1).quit
(2).exit
(3).\q

3.注释

(1). #注释内容
(2). -- 注释内容

4.修改提示符(Prompt)

(1).进入MySQL写命令
例:mysql>prompt 提示符名称
(2). 登录MySQL  时的命令
例:mysql -uroot -p    --prompt=提示符名称 说明:
(1)恢复  prompt mysql> (2)命令
\u:将提示符修改为MySQL用户名
\h:将提示符修改为主机名称
\D: 将提示符修改为系统时间
\d: 将提示符修改为选择的数据库名称

二、SQL(结构化查询语言 Structrued Query Language)

(1) DDL(数据定义语言):创建数据库,创建表、创建视图等,创建(CREATE),删除(DROP),修改(ALTER)。
(2) DML(数据操作语言):表中的数据的增删改操作,增(INSERT),删除(DELETE),更新(UPDATE)。
(3) DQL(数据从查询语言):表中的数据的查询,查询(SELECT)。
(4) DCL(数据控制语言):用户权限的分配(GRANT)及权限的撤销(REVOKE)。

三、库的操作

1.查看数据库 SHOW DATABASES;
2.创建数据库 CREATE DATABASE [IF NOT EXISTS] 数据库名 [[DEFAULT] CHARACTER  SET [=] 编码];\

例: CREATE DATABASE IF NOT EXISTS test CHARACTER SET=UTF8;

3.查看创建数据库的命令 SHOW CREATE DATABASE 数据库名;\

例: SHOW CREATE DATABASE test;

4.删除数据库 DROP DATABASE [IF EXISTS] 数据库名;\

例:DROP DATABASE test;

5.修改数据库编码 ALTER DATABASE [IF EXISTS] 数据库名称 [DEFAULT] CHARACTER SET [=]编码;\

例:ALTER DATABASE test CHARACTER SET=gbk;

6.选择数据库 USE 数据库名\

例:USE test;

7.查看当前选择的数据库 SELECT DATABASE();

四、数据类型

1.整型

TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT

(1) TINYINT([M]) [UNSIGNED|ZEROFILL]
范围: 大小1个字节(Byte 2^8)
值:
有符号位 -128~127
无符号位(正数 UNSIGNED) 0~255

(2) SMALLINT([M]) [UNSIGNED|ZEROFILL]
范围: 大小2个字节(Byte 2^16)
值:
有符号位 -32768~32767
无符号位(正数 UNSIGNED)  0~65535

(3) MEDIUMINT([M]) [UNSIGNED|ZEROFILL]
范围: 大小3个字节(Byte 2^24)
值:
有符号位  -8388608~8388607
无符号位(正数 UNSIGNED)  0~16777215

(4) INT([M]) [UNSIGNED|ZEROFILL]
范围: 大小4个字节(Byte 2^32)
值:
有符号位  -2147483648~2147483647
无符号位(正数 UNSIGNED)  0~4294967295

(5) BIGINT([M]) [UNSIGNED|ZEROFILL]
范围: 大小8个字节(Byte 2^64)
说明:
UNSIGNED:无符号位,正数ZEROFILL :当显示的长度小于指定长度用0填补,注意如果字段属性是ZEROFILL一定是UNSIGNED(自动添加UNSIGNED)

2.浮点型

(1)FLOAT([M,D]) [UNSIGNED|ZEROFILL]:
单精度浮点数,-3.40e38 ~ 3.40e38
(2)DOUBLE([M,D]) [UNSIGNED|ZEROFILL]:
双精度浮点数,-1.79e308 ~1.79e308
(3)DECIMAL([M,D]) [UNSIGNED|ZEROFILL]
定长浮点
说明: 单精度, 双精度当显示的浮点大于指定的位数四舍五入近似值,定长浮点大于指定的位数警告报错,存精确值

3.字符类型

(1)定长字符:CHAR([M]) (0-255字节,一个字母占一个字节)
(2)变长字符:VARCHAR([M])(0-65535字节)
字符字段最多能存的字符
a.一个字段 最大 65535字节
b.与编码有关
gbk:至多 2个字节
utf8:至多 3个字节  65532/3 =21844字节
c.多个字符字段总长度不能超过 65535字节(21844字节)
(3)TINYTEXT:0-255字节
(4)TEXT: 0- 65535字节
(5)MEDIUMTEXT :0-16777215字节
(6)LONGTEXT: 0~4294967295字节
说明: CHAR定长字符效果高但占空间,VARCHAR变长字符省空间但效果低,TEXT效率最低

4.布尔类型

a.BOOLEAN
b.TINYINT(1)

5.枚举类型

ENUM:最多65535字节
例如: sex  ENUM('man','woman','secret')

四、约束条件

  1. NOT NULL :不能为空
  2. DEFAULT :默认值
  3. [PRIMARY] KEY :主键,一个表中必需有 一个主键,而且主键一定是NOT NULL和不重复
  4. UNIQUE [KEY]:不重复,唯一型(例如:用户名,邮箱唯一型 ),一个表中可以有多个不重复
  5. AUTO_INCREMENT:自动增长,如果字段是自动增长一定是主键

五、表结构的操作

1.查看表  SHOW TABLES;
2.查看表结构  (1)DESC 表名; (2) DESCRIBE 表名;(3)SHOW  COLUMNS FROM  表名;

例:DESC test;  

3.创建表结构
CREATE TABLE [IF NOT EXISTS] 表名称(字段名称(列名称 Field) 数据类型 [字段属性|约束条件], 字段名称(列名称 Field) 数据类型 [字段属性|约束条件],...)[ENGINE=InnoDB DEFAULT CHARSET =utf8];
说明:MySQL引擎 InnoDB,MyISAM (实现外键,事务等效果)

例:CREATE TABLE IF NOT EXISTS test (
id INT(10) NOT NULL KEY AUTO_INCREMENT UNIQUE,
usname VARCHAR(20) NOT NULL,
psword VARCHAR(10) NOT NULL ,
sex ENUM('男','女','保密') DEFAULT '保密'
)ENGINE=InnoDB DEFAULT CHARSET =utf8;

4.查看表的创建代码 SHOW CREATE TABLE 表名;

例:SHOW CREATE TABLE test;  

5.添加字段
(1)添加单个字段

ALTER TABLE 表名  

ADD  字段名称  数据类型[字段属性|约束条件][FIRST|AFTER 字段名称];\

例:ALTER TABLE test
   ADD fid INT(10) NOT NULL DEFAULT 1 AFTER id;

(2) 添加多个字段
ALTER TABLE 表名
ADD  字段名称  数据类型[字段属性|约束条件][FIRST|AFTER 字段名称],
ADD  字段名称  数据类型[字段属性|约束条件][FIRST|AFTER 字段名称]......;\

例:ALTER TABLE test
ADD fid INT(10) NOT NULL DEFAULT 1 AFTER id,
ADD class INT(10) NOT NULL DEFAULT 1 FIRST usname;

6.删除字段
ALTER TABLE 表名
DROP  字段名称,
DROP  字段名称......;

例:ALTER TABLE test  
DROP fid ,
DROP class;

7.修改字段
ALTER TABLE 表名
MODIFY 字段名称 数据类型 [字段属性|约束条件] [FIRST|AFTER 字段名称];

例: ALTER TABLE test
MODIFY fid int(10) NOT NULL DEFAULT 2;

8.修改字段名称
ALTER TABLE 表名
CHANGE 旧字段名称 新字段名称 数据类型 [字段属性|约束条件][FIRST|AFTER 字段名称];

例:ALTER TABLE test
CHANGE fid cid INT(10) NOT NULL DEFAULT 0 AFTER id;

9.添加默认值 ALTER TABLE 表名 ALTER  字段名称 SET DEFAULT ‘值’;

例:ALTER TABLE test
ALTER cid SET DEFAULT 3

10.删除默认值
ALTER TABLE 表名
ALTER  字段名称 DROP  DEFAULT;
11.添加主键
ALTER TABLE 表名
ADD  PRIMARY KEY(字段名称);
12.删除主键
ALTER TABLE 表名
DROP PRIMARY KEY;
说明:如果主键字段有AUTO_INCREMENT,必需先删除AUTO_INCREMENT才能删除主键。
13.添加唯一性
(1).ALTER TABLE 表名
ADD  UNIQUE  KEY|INDEX(字段名称);
(2).ALTER TABLE 表名
ADD  [CONSTRAINT 约束名称] UNIQUE  KEY|INDEX(字段名称); 
14. 删除唯一性
ALTER TABLE 表名
DROP  KEY|INDEX  唯一性的约束名称;
说明:添加唯一性没有约束名称,那默认将字段名称作为约束名称。
15.重命名表名
(1) ALTER TABLE 表名
RENAME  [AS|TO] 新表名;
(2) RENAME TABLE 旧表名TO  新表名;
16.自增重置
ALTER TABLE 表名
AUTO_INCREMENT  = 值;