MySQL中的基本知识

时间:2021-01-02 05:50:55

本文是MySQL中的一些基本知识,包括各种基本操作、数据类型和表的约束等。

ps:都是自己总结、手打出来的,虽然不是什么新东西,但也勉强算原创吧。。

一、数据库

1.创建:CREATE DATABASE 数据库名 (CHARACTER SET 字符集) (COLLATE 校对规则);

2.查看:(1)SHOW DATABASES;

(2)SHOW CREATE DATABASE 数据库名;

3.修改:ALTER DATABASE 数据库名 (CHARACTER SET 字符集) (COLLATE 校对规则);

4.删除:DROP DATABASE 数据库名;

5.备份:cmd:mysqldump -u用户名 -p密码 数据库名>文件名.sql

恢复:cmd:mysql -u用户名 -p密码 数据库名<文件名.sql    或:mysql:SOURCE 文件名.sql;

二、表

1.创建:CREATE TABLE 表名 (列名1 数据类型, 列名2 数据类型,……) (CHARACTER SET 字符集) (COLLATE 校对规则);

2.查看、删除基本和数据库操作相同。另:可用DESC 表名; 来查看表结构。

3.修改:ALTER TABLE 表名

(1)增加列:ADD (列名 数据类型,……);

(2)删除列:DROP 列名;

(3)修改列数据类型:MODIFY 列名 新数据类型;

(4)修改列名:CHANGE 列名 新列名 数据类型;

(5)修改表字符集:CHARACTER SET 字符集;

4.重命名表:RENAME TABLE 表名 TO 新表名;

三、数据操作(CRUD):

>>进行与表有关的操作之前都要先USE 数据库,以选择要操作的数据库。

1.增:INSERT INTO 表名 (列名1,…) VALUES (值1,…);

2.删:DELETE FROM 表名 (WHERE 条件);   其中,(WHERE 条件)是用来筛选行的。如果不加,则对所有行进行操作。

TRUNCATE TABLE 表名;  清除表中所有数据。

3.改:UPDATE 表名 SET 列名1=值1,… (WHERE 条件);

4.查:SELECT (DISTINCT) 要查询的内容 FROM 表名 附加条件;

(1)要查询的内容:

①列名/表达式

②列名/表达式 (as) 别名

③合计函数(count(...),sum(...),avg(...),max(...))

(2)附加条件:

①筛选:WHERE 条件

②排序:ORDER BY 列名/表达式 ASC/DESC

③归组:GROUP BY 列名/表达式(此时,要查询的内容必须为归组依据+合计函数)

归组筛选:HAVING 条件(合计函数)

5.条件:

(1)比较:>,<,=,>=,<=,<>

(2)区间:BETWEEN ... AND ...

(3)集合:IN(...)

(4)为空:IS NULL

(5)模糊查询:LIKE '...'(%:任意个字符,_:一个字符)

(6)条件逻辑:AND OR NOT

四、字符集与校对规则

1.字符集:一般用utf-8,MySQL中是"utf8"。然而Windows中很多地方默认字符集并不是utf-8,比如.txt默认GBK,.doc默认GB2312。总之,按需求设置即可。

2.校对规则:一般选择默认校对规则即可。比如utf-8对应"utf8_general_ci"。具体可以查阅文档。

五、数据类型

1.数值类型

(1)整型:BIT(位数),TINYINT(1字节),SMALLINT(2字节),MEDIUMINT(3字节),INT(4字节),BIGINT(8字节),无符号数加[UNSIGNED]或[ZEROFILL]

(2)小数:FLOAT(长度,位数),DOUBLE(长度,位数),DECIMAL(长度,位数)(高精度数)

(3)布尔型:BOOLEAN,BOOL:用0和1表示假和真

2.文本类型

(1)字符串:CHAR(长度)(固定长度,最大255),VARCHAR(长度)(可变长度,指定上限,最大65535)

(2)大文本:TINYTEXT(255字节),TEXT(64K),MEDIUMTEXT(16M),LONGTEXT(4G)

3.二进制类型:TINYBLOB(255字节),BLOB(64K),MEDIUMBLOB(16M),LONGBLOB(4G)

4.日期/时间类型:DATE(YYYY-MM-DD),DATETIME(YYYY-MM-DD hh:mm:ss),TIMESTAMP(时间戳,可自动保存时间)

六、表的约束

1.主键约束:PRIMARY KEY(主键),AUTO_INCREMENT(自增)

删除主键约束:ALTER TABLE 表名 DROP PRIMARY KEY;

若设置了自增,应先删除自增:ALTER TABLE 表名 CHANGE 主键名 主键名 数据类型;(就是重命名主键列)

2.唯一约束:UNIQUE

3.非空约束:NOT NULL

4.外键约束:CONSTRAINT 约束名(被约束者_FK) FOREIGN KEY(外键列名) REFERENCES 来源表(相关列)