参考网址:http://c.biancheng.net/view/7143.html
1. 安装完成后,登录mysql.
//登录mysql
mysql -u root -p(mysql -u root -ppass,注意pass和-p参数无空格)
// 查看状态
status
//在管理员模式下启动mysql
net start mysql57(注意服务名称)
net stop mysql57
2. MySql配置文件
(windows)my.ini文件,一般情况下,my.ini 在 MySql 安装的根目录下,也有可能在隐藏文件夹“C:ProgramData”下面。http://c.biancheng.net/view/7571.html
(Linux)my.cnf文件,http://c.biancheng.net/view/7618.html
3. SQL概述
SQL 包含以下 4 部分:
1)数据定义语言(Data Definition Language,DDL)
用来创建或删除数据库以及表等对象,主要包含以下几种命令:
- DROP:删除数据库和表等对象
- CREATE:创建数据库和表等对象
- ALTER:修改数据库和表等对象的结构
2)数据操作语言(Data Manipulation Language,DML)
用来变更表中的记录,主要包含以下几种命令:
- SELECT:查询表中的数据
- INSERT:向表中插入新数据
- UPDATE:更新表中的数据
- DELETE:删除表中的数据
3)数据查询语言(Data Query Language,DQL)
用来查询表中的记录,主要包含 SELECT 命令,来查询表中的数据。
4)数据控制语言(Data Control Language,DCL)
用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对数据库中的用户设定权限。主要包含以下几种命令:
- GRANT:赋予用户操作权限
- REVOKE:取消用户的操作权限
- COMMIT:确认对数据库中的数据进行的变更
- ROLLBACK:取消对数据库中的数据进行的变更
4. 创建
(在mySQL中关键字不区分大小写)
//创建数据库
CREATE DATABASES test_db;
//使用 MySQL 命令行工具创建一个测试数据库,命名为 test_db_char,指定其默认字符集为 utf8,默认校对规则为 utf8_chinese_ci(简体中文,不区分大小写):
mysql> CREATE DATABASE IF NOT EXISTS test_db_char
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_chinese_ci;
//创建后修改(同样可用于修改表)
mysql> alter database test_db
default character set gb2312
default collate gb2312_chinese_ci;
// 切换数据库
use test_db;
//创建表,支持utf8
CREATE TABLE students(
student_id INT UNSIGNED,
name VARCHAR(30) ,
sex CHAR(1),
birth DATE,
PRIMARY KEY(student_id)
) character set = utf8;
//修改已有表,支持utf8
alter table students convert to character set utf8;
//显示数据库
SHOW DATABASES LIKE 'test_db';
// 使用‘%’通配符显示包含test的数据库
SHOW DATABASES LIKE '%test%';
// 删除表
drop databases if exists test_db;
//查看表
show tables;
//DESCRIBE/DESC 语句可以查看表的字段信息,包括字段名、字段数据类型、是否为主键、是否有默认值等。
desc students;
//SHOW CREATE TABLE语句可以用来显示创建表时的CREATE TABLE语句
show create table students;
//修改表名
alter table students rename to student;
//修改表字符集
alter table student character set gb2312 collate gb2312_chinese_ci;
//修改字段名称
alter table student change student_id id int(15) unsigned;
//修改字段数据类型
alter table student modify id int(20);
//删除字段
alter table student drop sex;
//添加字段,末尾、表头、中间位置。
alter table student add sex char(1);
alter table student add sex char(1) first;
alter table student add sex char(1) after id;
//关联表,自己试验的过程中,删除主表不会报错,暂未找到问题,mysql5.7.30
CONSTRAINT fk_emp4_emp5 FOREIGN KEY (deptId) REFERENCES tb_emp4(id)
//解除外键约束
ALTER TABLE tb_emp5 DROP FOREIGN KEY fk_emp4_emp5;
(关于约束的问题详看下一章)
5. 数据类型
1) 数值类型
整数类型包括 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,浮点数类型包括 FLOAT 和 DOUBLE,定点数类型为 DECIMAL。
2) 日期/时间类型
包括 YEAR、TIME、DATE、DATETIME 和 TIMESTAMP。
3) 字符串类型
包括 CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM 和 SET 等。
4) 二进制类型
包括 BIT、BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。
6. 存储类型
现在许多数据库管理系统都支持多种不同的存储引擎。MySQL 的核心就是存储引擎。MySQL 提供了多个不同的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在 MySQL 中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。MySQL 5.7 支持的存储引擎有 InnoDB、MyISAM、Memory、Merge、Archive、CSV、BLACKHOLE 等。可以使用SHOW ENGINES;
语句查看系统所支持的引擎类型。
如何选择MySQL存储引擎?http://c.biancheng.net/view/7185.html
//显示支持的引擎
show engines;
//显示默认搜索引擎
show variables like 'default_storage_engine%';
//修改默认搜索引擎
set default_storage_engine=MyISAM;
//显示数据表的当前搜索引擎
show create table students;
//修改数据表的搜索引擎
alter table students engine=MyISAM;
//以上这种方法适用于修改单个表的存储引擎,如果希望修改默认的存储引擎,就需要修改my.cnf(my.ini)配置文件。在 my.cnf (my.ini) 配置文件的 [mysqld] 后面加入:
default-storage-engine=存储引擎名称