最近感觉什么都需要学习,这里先记录一下学习mysql的一些笔记,备忘,也算是帮助同学习的整理。
MYSQL的基本管理
- 打开/关闭MYSQL服务(管理员CMD):
net start/stop mysql_name - 登录MYSQL:
mysql -u[name] -p[password] -h[hostname]-D打开指定数据库-P端口号--prompt修改修饰符
- 退出MYSQL:
exitquit\q - 其他命令:
- 帮助:
help [name]? [name]\h [name] - 不执行当前输入:
\c - 修改命令提示符:
prompt\D:日期\h:主机\u:用户\d:打开的数据库 - 输入书写日志:
\T [path]:开启\t:关闭日志记录 - 默认分隔符为
;或\g可通过delimiter修改(PS:注意每条SQL的语句后面必须加上分隔符才会执行)
- 帮助:
SQL常用命令
SQL语句规范:不区分大小写,但是约定规范为关键字和函数大写,数据库名称,表名称,字段名称小写。(PS:不是程序必须,而是良好习惯!)
Mysql注释:
#或--
数据库管理
- 创建数据库:
CREATE {DATABASE|SCHEMA} [IF NOT EXISTS]db_name [DEFAULT CHARACTER SET utf8] - 查看命令:
- 查看当前数据库:
SHOW {DATABASE|SCHEMA} - 查看创建数据库时相关信息:
SHOW CREATE {DATABASE|SCHEMA} db_name - 查看打开的数据库:
SELECT DATABASE()
- 查看当前数据库:
- 修改数据库编码方式:
ALTER {DATABASE|SCHEMA} db_name DEFAULT CHARACTER SET utf8 - 打开数据库:
USE db_name - 删除数据库:
DROP DATABASE [IF EXISTS] db_name
表管理
创建表:
CREATE TABLE [IF NOT EXISTS] tbl_name(datafield datatype and constraints,) ENGINE=engine_name- 当建表时存在中文是需要临时设定编码为GBK:
SET NAMES GBK - 字段注释: 建表时候在字段后添加:
COMMENT 'text'
- 当建表时存在中文是需要临时设定编码为GBK:
删除表:
DROP TABLE [IF EXISTS] table_name完整性约束条件,字段后添加:
- 主键;
[PRIMARY] KEY - 唯一性约束:
UNIQUE(一个表只有一个主键,但可有多个唯一,NULL不算唯一) - 无符号约束:
UNSIGNED - 自增长:
AUTO_INCREMENT(被标注为自增长的一定是主键) - 非空约束:
NOT NULL - 默认值:
DEFAULT(一般与非空约束一起用) - 零填充(无符号,按照最长的显示长度进行补0):
ZEROFILE
- 主键;
查看命令:
- 查看当前数据库存在的表:
SHOW TABLES - 查看创建表时的详细信息:
SHOW CREATE TABLE table_names - 查看表结构:
DESC table_nameSHOW COLUMNS FROM table_name
- 查看当前数据库存在的表:
修改表结构:
- 修改表名:
ALTER TABLE table_name1 RENAME [TO/AS] table_name2 - 添加字段:`ALTER TABLE table_name ADD datafield_name datatype [AFTER datafield1]
- 删除字段:
ALTER TABLE table_name DORP datafield_name - 修改字段:
ALTER TABLE table_name MODIFY datafield_name datatype - 添加删除默认值:
ALTER TABLE table_name ALTER datafield_name SET/DROP DEFAULT value - 添加删除主键:
ALTER TABLE table_name ADD/DROP PRIMARY KEY(datafield) - 添加删除唯一:
ALTER TABLE table_name ADD/DROP UNIQUE (datafield)
- 修改表名:
数据管理
- 插入数据:
INSERT [INTO] table_name(datafield1,...,datafield2) VALUE (value1,value1)INSERT table_name SET datafield=valueINSERT table_name1 SELECT datafield FROM table_name2
- 更新和修改数据
UPDATE table_name SET datafield=value [WHERE ][ORDER BY ]
- 删除数据
DELETE FROM table_name [WHERE ][ORDER BY ]
- 清空数据
TRUNCATE [TABLE] table_name
MYSQL辅助知识
常用数据格式
| 数据类型 | 对应关键字 |
|---|---|
| 整形类型 | TINYINT SMALLINT MEDIUMINT INT BIGINT TINYINT(1) |
| 浮点类型 | FLOAT[(M,N)] DOUBLE[(M,N)] DECIMAL[(M,N)] M:总位数 N:小数点位数 |
| 字符串类型 | CHAR(N) VARCHAR(N) TINYTEXT MEDIUMTEXT LONGTEXT ENUM('value1','value2'...)[单选] SET('value1','value2'...)[可多选] |
| 时间类型 | TIME DATE DATETIME YEAR |
当遇到不明白的情况时,请多用help!