前言:
本文是笔者从零开始学习MySQL的学习记录。
若笔者有任何疏忽纰漏之处,烦请不吝赐教。
零、MySQL安装与启动
安装
环境:Windows
直接官网下.msi后安装,一路next即可...
之后在安装路径处加一个my.ini内容和细节:
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\web\mysql-8.0.11
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\web\sqldata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
启动
方法一:
首先cd进MySQL的bin目录
net start mysql
mysql -u root -p 键入密码即可
当然,可以选择在my.ini内设置跳过密码输入...
可以使用exit或quit来退出mysql
方法二:
直接启动MySQL Command Line Client
一、MySQL管理
添加用户
CREATE USER '用户名'@'localhost' IDENTIFIED BY '用户密码';
查看用户
select user,host from mysql.user;
查看所有数据库
show DATABASES;
锁定操作数据库
use <数据库名>
在此之后可进行
- 显示指定数据库的所有表操作:
SHOW TABLES; - 显示数据表的属性:
SHOW COLUMNS FROM <数据表名>; - 显示数据表的详细索引信息:
SHOW INDEX FROM <数据表名>;
授权用户
(暂未成功,也暂未用到)
GRANT privileges ON databasename.tablename TO 'FALLEN'@'host';
-
privileges – 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所 的权限则使用ALL说明:
-
databasename – 数据库名
-
tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用* 表示, 如*.*
显示数据表的属性
SHOW COLUMNS FROM <数据表名>
输出数据库管理系统的性能和统计信息
(暂未成功,也暂未用到)
SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern'] \G;
二、MySQL的基本操作
MySQL连接
实际上就是登录,可以直接命令行登录也可以用PHP登录(暂略)。
MySQL数据库的操作
创建数据库
CREATE DATABASE <数据库名>;
也可以使用admin直接创建,还可以用PHP创建(暂略)。
删除数据库
drop database <数据库名>;
也可以使用admin直接删除,还可以用PHP删除(暂略)。
选择数据库
use <数据库名>
还可以用PHP删除(暂略)。
MySQL数据类型
- 数值
- 日期/时间
- 字符/字符串
这里就不一一列举了,可以参考:MySQL 数据类型 | 菜鸟教程 (runoob.com)
MySQL数据表的操作
创建数据表
CREATE TABLE table_name (colunm_name colunm_type)
实例:
mysql> CREATE TABLE fallen_tbl(
-> fallen_id INT NOT NULL AUTO_INCREMENT,
-> fallen_title VARCHAR(100) NOT NULL,
-> fallen_author VARCHAR(40) NOT NULL,
-> submission_date DATE,
-> PRIMARY KEY ( fallen_id )
-> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
- AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
- PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
- ENGINE 设置存储引擎,CHARSET 设置编码。
同样可以使用PHP,后文不做提示,一并略之。
删除数据表
DROP TABLE table_name;
MySQL数据操作
插入数据
INSERT INTO <数据表名> (field1, field2, ..., fieldN)
VALUES
(value1, value2, ..., valueN);
特别地,如果数据是字符型,必须使用单引号或者双引号,如"value";
值得一提的是,这个命令不区分大小写。
查询数据
最基本的:SELECT * FROM <数据表名>
WHERE子句
select * from fallen_tbl where fallen_title='学习MySQL使我快乐';
UPDATE更新
用于修改MySQL中的数据
UPDATE fallen_tbl SET fallen_title='今天中午吃豌豆小面但是有怪东西' WHERE fallen_id=2;
DELETE删除
DELETE FROM fallen_tbl WHERE fallen_id=3;
LIKE子句
SELECT * from fallen_tbl WHERE fallen_title LIKE '%快乐';
UNION操作符
UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据,即去重。
mysql> SELECT fallen_author FROM fallen_tbl
-> UNION
-> SELECT rain_author FROM rain_tbl
-> ORDER BY fallen_author;
特别地,如果在UNION后面加一个ALL,则没有去重功能,将会合并所有值。
更加特别的,带有WHERE的UNION ALL如下:
SELECT country, name FROM Websites
WHERE country='CN'
UNION ALL
SELECT country, app_name FROM apps
WHERE country='CN'
ORDER BY country;
排序
select * from fallen_tbl order by submission_date ASC;
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 5 天,点击查看活动详情