MySQL简要

Posted by Bokala on June 10, 2016

慕课网视频教程《与MySQL的零距离接触》 的一些笔记。

一、MySQL初涉

1. 启动/关闭MySQL服务

  • 启动服务
    net start mysql
    
  • 停止服务
    net stop mysql
    

2. 登录MySQL

mysql 参数
参数 描述
-D, –database=name 打开指定数据库
–delimiter = name 指定分隔符
-h, –host=name 服务器名称
-p, –password[=name] 服务器名称
-P, –port=# 端口号
–prompt=name 设置提示符
-u, –user=name 用户名
-V, –version 输出版本信息且退出

3. 退出MySQL

mysql> exit;
mysql> quit;
mysql> \q;

4. 修改提示符

  • 连接客户端时通过参数指定
    mysql -uroot -proot --prompt 提示符
    
  • 连接完成之后,通过prompt命令修改
mysql> prompt 提示符
参数 描述
\D 完整的日期
\d 当前数据库
\h 服务器名称
\u 当前用户

5. 常用命令

  • 显示当前服务器版本
    SELECT VERSION();
    
  • 显示当前日期
    SELECT NOW();
    
  • 显示当前用户
    SELECT USER();
    

6. 创建数据库

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name

7. 查看当前服务器下的数据库列表

SHOW {DATABASES | SCHEMAS} [LIKE 'pattern' | 'WHERE expr']

8. 修改数据库

ALTER {DATABASES | SCHEMAS} [db_name] [DEFAULT] CHARACTER SET[=] charset_name

9. 删除数据库

DROP {DATABASES | SCHEMAS} [IF EXISTS] db_name

二、数据类型与操作数据表

1. 整型

数据类型 存储范围 字节
TINYINT 有符号值:-2^7 ~ 2^7-1 , 无符号值:0 ~ 2^8-1 1
SMALLINT 有符号值:-2^15 ~ 2^15-1, 无符号值:0 ~ 2^16-1 2
MEDIUMINT 有符号值:-2^23 ~ 2^23-1, 无符号值:0~2^24-1 3
INT 有符号值:-2^31 ~ 2^31-1, 无符号值:0~2^32-1 4
BIGINT 有符号值:-2^63 ~ 2^63-1, 无符号值:0~2^64-1 8

2. 浮点型

数据类型 存储范围
FLOAT[(M,D)] M-数字总位数,D-小数点之后的位数
DOUBLE[(M,D)] M-数字总位数,D-小数点之后的位数

3. 日期时间型

列类型 存储需求
YEAR 1
TIME 3
DATE 3
DATETIME 8
TIMESTAMP 4

4. 字符型

列类型 存储需求
CHAR(M) M个字节,0<=M<=255
VARCHAR L+1字节,L<=M且0<=M<=65535
TINYTEXT L+1字节,L<2^8
TEXT L+2字节,L<2^16
MEDIUMTEXT L+3字节,L<2^24
LONGTEXT L+4字节,L<2^32
ENUM(‘value1’,’value2’,…) 1或2字节
SET(‘value1’,’value2’,…) 1,2,3,4或8字节

5. 创建数据表

CREATE TABLE [IF NOT EXISTS] table_name (column_name data_type,...)

栗子:

mysql> CREATE TABLE tb1(
    -> username VARCHAR(20),
    -> age TINYINT UNSIGNED,
    -> salary FLOAT(8,2) UNSIGNED
    -> );

6. 查看数据表

SHOW TABLES [FROM db_name] [LIKE ‘pattern’ | WHERE expr]

7. 查看数据结构

SHOW COLUMNS FROM tbl_name

8. 记录的插入和查找

INSERT [INTO] tbl_name [(col_name,...)] VALUES(val,...)
SELECT expr,... FROM tbl_name

9. 空值与非空

NULL – 可以为空 NOTNULL – 不能为空

10. 自动编号

AUTO_INCREMENT
  • 自动编号,必须与主键组合使用
  • 默认起始值为1,增量为1

11. 主键

PRIMARY KEY
  • 主键约束
  • 每个数据表只能存在一个主键
  • 主键保证记录唯一性
  • 主键自动为NOT NULL

12. 唯一约束

UNIQUE KEY
  • 唯一约束
  • 可保证记录的唯一性
  • 唯一约束的字段可以为空NULL
  • 每张数据表克存在多个唯一约束

13. 默认约束

DEFAULT
  • 默认值
  • 插入记录时,若没有明确为字段赋值,则自动设为默认值

三、约束及修改表

1. 约束

  • 约束保证数据的完整性和一致性
  • 分为表级约束和列级约束
  • 约束类型分为:NOT NULL(非空约束)、PRIMARY KEY(主键约束)、UNIQUE KEY(唯一约束)、DEFAULT(默认约束)、FOREIGN KEY(外键约束)

2. 外键约束

保证完整性和一致性,实现一对一或一对多

*要求:

  1. 父表和子表必须使用相同存储引擎,且禁止使用临时表
  2. 数据表存储引擎只能是InnoDB