MySQL入门丨学习记录

221 阅读4分钟

前言:

本文是笔者从零开始学习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内设置跳过密码输入...

可以使用exitquit来退出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 天,点击查看活动详情