0%

MYSQL学习笔记

最近感觉什么都需要学习,这里先记录一下学习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'
  • 删除表: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!

数据引擎