最近感觉什么都需要学习,这里先记录一下学习mysql的一些笔记,备忘,也算是帮助同学习的整理。
MYSQL的基本管理
- 打开/关闭MYSQL服务(管理员CMD):
net start/stop mysql_name
- 登录MYSQL:
mysql -u[name] -p[password] -h[hostname]
-D
打开指定数据库-P
端口号--prompt
修改修饰符
- 退出MYSQL:
exit
quit
\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_name
SHOW 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=value
INSERT 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!