mysql数据库教程
前言
1.3 mysql安装
【文章推荐】MySQL的详细安装教程
- 软件下载链接:https://dev.mysql.com/downloads/mysql/
- 创建一个my.ini,文件内容如下,文件位置如下图:
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\mysql-8.0.27-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql-8.0.27-winx64\Data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
- 安装MySQL的服务mysqld,同样在bin目录下,在cmd管理员窗口中输入
mysqld --install 服务名(不写的话默认服务名是mysql)
,如mysqld --initialize --console
mysqld --initialize --console
8 - 启动MySQL服务,net start mysql(停止服务:net stop mysql 卸载服务:sc delete 服务名)
2.2 库的简单操作
2.2.1 增
- 创建数据库:
create database 库名 (charset=字符集);
- 字符集charset可以指定,也可以不指定
- 库名:不建议有大写字母
- 创建数据库时建议指定字符集
- 库名不能以数字开头
create database club;
#创建club数据库show databases;
#查看所有数据库
mysql> create database first_database; #创建first_database数据库
Query OK, 1 row affected (0.00 sec)
mysql> show databases; #查看所有数据库
+--------------------+
| Database |
+--------------------+
| information_schema |
| first_database |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
+--------------------+
7 rows in set (0.00 sec)
2.2.2 查
show database;
查看当前有哪些数据库show create database 库名;
查看指定的数据库的创建规则,如show create database first_database;
mysql> show create database first_database;
+----------------+--------------------------------------------------------------
-----------+
| Database | Create Database
|
+----------------+--------------------------------------------------------------
-----------+
| first_database | CREATE DATABASE `first_database` /*!40100 DEFAULT CHARACTER S
ET utf8 */ |
+----------------+--------------------------------------------------------------
-----------+
1 row in set (0.01 sec)
2.2.3 修改数据库
修改字符集
alter database 库名 charset 字符集;
- 注意:修改后的字符集必须是原字符集人严格超集。
- 如下命令,
alter database first_database charset utf8mb4;
将first_database
数据库的字符集改变为utf8mb4
,章节2.2.2中字符是utf8
mysql> alter database first_database charset utf8mb4;
Query OK, 1 row affected (0.00 sec)
mysql> show create database first_database;
+----------------+--------------------------------------------------------------
--------------+
| Database | Create Database
|
+----------------+--------------------------------------------------------------
--------------+
| first_database | CREATE DATABASE `first_database` /*!40100 DEFAULT CHARACTER S
ET utf8mb4 */ |
+----------------+--------------------------------------------------------------
--------------+
1 row in set (0.00 sec)
2.2.4 删除
drop database 库名;
删除数据库
2.3 创建表的简单语法及步骤
2.3.1 创建表的规范
- 表名小写(windows平台不区分大小写,Linux严格区分大小写,目的是为了平台兼容性),不要过长
- 不建议以数字开头
- 必须设置字符集和存储引擎
- 表名和业务有关
- 为表中的字段选择合适的数据类型
- 建议每个列都有注释
- 建议每个列都设置为非空,不知道填什么可以先设定默认值
2.3.2 创建表的步骤及语法
- 查看当前所有的库:
show databases;
- 切换到需要创建表的库:
use 目标数据库;
,如first_database;
,进入first_database
数据库 - 创建表(简单版) :
create table 表名(字段1数据类型(宽度),字段2数据类型(宽度).,...)
- 查看当前库下所有的表: `show tables;``
- 补充:也可以使用绝对路径的方式创建表;
create table 目标数据库 表名(字段数据类型);
mysql> use first_database; #进入first_database
Database changed
mysql> create table stu_info(name char(4), age int);
Query OK, 0 rows affected (0.84 sec)
mysql> show tables;
+--------------------------+
| Tables_in_first_database |
+--------------------------+
| stu_info |
+--------------------------+
1 row in set (0.00 sec)
2.4 表的简单操作-插入数据
# 进入first_database数据库
mysql> use first_database;
Database changed
# 进入t1表
mysql> select * from t1;
Empty set (0.00 sec)
# 添加属性和字段
mysql> insert into t1(name, age, addr) values('fly',18,"mrflysand");
Query OK, 1 row affected (0.11 sec)
# 显示t1表
mysql> select * from t1;
+------+------+-----------+
| name | age | addr |
+------+------+-----------+
| fly | 18 | mrflysand |
+------+------+-----------+
1 row in set (0.00 sec)
按照字段属性顺序添加字段属性
mysql> insert into t1(name, age, addr) values("公众号",19,"小知识酷");
Query OK, 1 row affected (0.16 sec)
t * from t1' at line 1
mysql> select * from t1;
+-----------+------+--------------+
| name | age | addr |
+-----------+------+--------------+
| fly | 18 | mrflysand |
| 公众号 | 19 | 小知识酷 |
+-----------+------+--------------+
2 rows in set (0.00 sec)
按照字段属性顺序添加字段属性
mysql> insert into t1 values("qq","20","2602629646");
Query OK, 1 row affected (0.12 sec)
mysql> select * from t1;
+-----------+------+--------------+
| name | age | addr |
+-----------+------+--------------+
| fly | 18 | mrflysand |
| 公众号 | 19 | 小知识酷 |
| qq | 20 | 2602629646 |
+-----------+------+--------------+
3 rows in set (0.00 sec)
按照对应的字段属性,添加数据
mysql> insert into t1(addr, name, age) values("flysand",'qq',21);
Query OK, 1 row affected (0.16 sec)
mysql> select * from t1;
+-----------+------+--------------+
| name | age | addr |
+-----------+------+--------------+
| fly | 18 | mrflysand |
| 公众号 | 19 | 小知识酷 |
| qq | 20 | 2602629646 |
| qq | 21 | flysand |
+-----------+------+--------------+
4 rows in set (0.00 sec)
按照对应的字段属性,添加多条数据
mysql> insert into t1(name, age, addr) values
-> ("网名",22,"mrflysand"),
-> ("git",32,"mrflysand");
Query OK, 2 rows affected (0.16 sec)
Records: 2 Duplicates: 0 Warnings: 0
# 显示数据t1表
mysql> select * from t1;
+-----------+------+--------------+
| name | age | addr |
+-----------+------+--------------+
| fly | 18 | mrflysand |
| 公众号 | 19 | 小知识酷 |
| qq | 20 | 2602629646 |
| qq | 21 | flysand |
| 网名 | 22 | mrflysand |
| git | 32 | mrflysand |
+-----------+------+--------------+
6 rows in set (0.00 sec)
按照字段属性的数据顺序,添加多条数据
mysql> insert into t1 values
-> ('公众号1',23,'小知识酷'),
-> ('公众号2',23,'小知识酷');
Query OK, 2 rows affected (0.10 sec)
Records: 2 Duplicates: 0 Warnings: 0
#显示数据t1表
mysql> select * from t1;
+------------+------+--------------+
| name | age | addr |
+------------+------+--------------+
| fly | 18 | mrflysand |
| 公众号 | 19 | 小知识酷 |
| qq | 20 | 2602629646 |
| qq | 21 | flysand |
| 网名 | 22 | mrflysand |
| git | 32 | mrflysand |
| 公众号1 | 23 | 小知识酷 |
| 公众号2 | 23 | 小知识酷 |
+------------+------+--------------+
8 rows in set (0.00 sec)
2.4.1 表中插入(insert)数据-小练习
创建一个保存学生信息的数据库
创建一张学生信息表(字段有编号姓名年龄QQ)
根据向表中插入数据的语法规则,使用不同的方式向表中插入数据