官网: https://www.mysql.com/
添加配置信息
先 cd, 进入用户主目录
VIM .bash_profile
添加: export PATH=$PATH:/usr/local/MySQL/bin
连接到 MySQL 服务器
MySQL -u root -p
基础指令
- QUIT // 退出
- SHOW DATABASES; // 查看所有的数据库
- CREATE DATABASE xx; // 创建数据库, xx 为要删除的数据库名称
- DROP DATABASE xx; // 删除数据库, xx 为要删除的数据库名称
- SHOW CREATE database xx; // 查看数据库的定义
- USE xx; // 切换数据库, xx 为要切换到的数据库名称
- SHOW ENGINES; // 查看数据库使用的引擎
- SELECT DATABASE(); // 查看当前数据库
- SELECT USER(); // 查看当前用户
表基础操作
CREATE TABLE xx(key value,...); // 创建表, key value 对应, xx 为创建的表名
(1) 设置主键: PRIMARY KEY
两种方式: ID INT(20) PRIMARY KEY,ID INT(11),PRIMARY KEY(ID)
事例
- CREATE TABLE tab_student(
- ID VARCHAR(20) PRIMARY KEY,
- Score INT,
- Gender CHAR
- );
设置 ID 为主键
- CREATE TABLE tab_student(
- ID VARCHAR(20) ,
- Score INT,
- Gender CHAR
- PRIMARY KEY(ID)
- );
设置 ID 为主键
多字段联合主键: PRIMARY KEY(ID,NAME);ID 和 NAME 为联合的主键, 实为一个主键.
(2) 设置字段自动增加: AUTO_INCREMENT
创建方式: ID INT PRIMARY KEY AUTO_INCREMENT, 将 ID 设置为整数类型主键, 并且设置字段值动增加
- CREATE TABLE tab_emp4(
- ID INT PRIMARY KEY AUTO_INCREMENT,
- Name VARCHAR(20),
- Score INT
- );
设置 id 为主键, 并且设置字段自动增加
赋值方式一: INSERT INTO tab_emp4(id,name,score) values(null,'张三',100). 可以直接赋 nul 根据最大的值自加
赋值方式二: INSERT INTO tab_emp4(id,name,score) values(200,'张三',100). 直接赋 id
(3) 设置外键约束: FOREIGN KEY 约束名字 (当前表内键的名称) + REFERENCES 依附的主表名称 (依附主表键的名称)
一般创建方式:
- CREATE TABLE tab_emp5(
- id INT(11) PRIMARY KEY,
- name VARCHAR(25),
- deptId INT(11),
- salary FLOAT,
- CONSTRAINT fk_emp FOREIGN KEY(deptId) REFERENCES tab_emp4(ID)
- );
设置外键, deptID 关联于 tab_emp4 的 (ID),fk_emp 外键别名
(4) 约束某字段不能为空: NOT NULL
一般创建方式
- CREATE TABLE tab_emp6(
- ID INT NOT NULL,
- Name VARCHAR(20),
- Score INT
- );
设置 id 字段不能为 NULL
(5) 设置唯一约束 (插入在这个字段上的值唯一, 不能重复):UNIQUE
• 可以为 NULL
一般创建方式
- CREATE TABLE tab_emp7(
- ID INT UNIQUE
- );
设置唯一约束
表基本指令
- SHOW TABLES; // 查看当前数据库所有表
- DESCRIBE xx; // 查看当前数据库中的表 xx
- SELECT *FROM xx // 查询对应表 xx 中的信息
- SELECT ID,NAME FROM xx; // 列出表中 ID,NAME 的数据
- SELECT * FROM xx WHERE key=value; // 查询表 xx 中对应的 key,value. 并列出这一行所有数据
- SELECT NAME FROM xx WHERE key=value; // 查询表 xx 中对应的 key,value. 只列出 NAME 数据
- INSERT INTO xx(key,...)values(value,...); // 插入数据, xx 为表名
- DROP TABLE xx; // 删除表
- ALTER TABLE xx RENAME new_xx; // 修改表名, xx 为旧名字, new_xx 修改后新名字
- ALTER TABLE xx MODIFY KEY type; // 修改字段数据类型, xx 为表名, key 为你要修改的字段名, type 修改后的类型.
- ALTER TABLE xx CHANGE name newname type;// 修改字段名, xx 为所属表名, name 为旧字段名, newname 为新字段名. type 为数据类型
- ALTER TABLE xx ADD key type; // 添加字段, xx 为表名, key 你要添加的字段名, type 数据类型
- // 添加时可以使用 FIRST 关键字, 添加在开头: ALTER TABLE xx ADD key type FIRST;
- // 添加时可以使用 AFTER 关键字, 添加在什么之后: ALTER TABLE xx ADD key INT(11) AFTER ID;// 添加在 ID 字段后面
- ALTER TABLE xx DROP key; // 删除某一个字段, xx 为表名, key 你要删除的字段名
- ALTER TABLE xx DROP FOREIGN KEY fk_emp; // 删除外键约束, xx 为表名, fk_emp, 外键别名
- UPDATE xx SET Score=1000 WHERE id=5; // 更新数据, xx 为表名, score 为要修改的字段, 后面为数据, 修改的是 id 为 5 的
- DELETE FROM xx WHERE id =3; // 删除数据, xx 为表名, 删除 id 为三的数据
- // 修改字段相对位置, 这里 name1 为想要修改的字段, type1 为该字段原来类型, first 和 after 二选一, 这应该显而易见, first 放在第一位, after 放在 name2 字段后面
- ALTER TABLE xx MODIFY name1 type1 first|after name2;
如果自增主键, 顺序对应乱.
1, 删除原有主键:
ALTER TABLE tab_name DROP ID;//ID 为原先主键
2, 添加字段
ALTER TABLE tab_name ADD ID INT(11) NOT NULL FIRST;// 添加一个名字为 ID 的键
3, 设置为新的主键
ALTER TABLE tab_name MODIFY COLUMN ID INT(11) NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(ID);//ADD 添加附件属性
来源: http://www.jianshu.com/p/2e01f4c6b626