mysql数据库教程

前言

  • 原文文本教程链接

1.3 mysql安装

【文章推荐】MySQL的详细安装教程

  • 软件下载链接:https://dev.mysql.com/downloads/mysql/mysql数据库教程_第1张图片
  • 创建一个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数据库教程_第2张图片

  • 安装MySQL的服务mysqld,同样在bin目录下,在cmd管理员窗口中输入mysqld --install 服务名(不写的话默认服务名是mysql),如mysqld --initialize --consolemysql数据库教程_第3张图片

mysqld --initialize --console

8 - 启动MySQL服务,net start mysql(停止服务:net stop mysql 卸载服务:sc delete 服务名)

mysql数据库教程_第4张图片

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 创建表的步骤及语法

  1. 查看当前所有的库: show databases;
  2. 切换到需要创建表的库: use 目标数据库;,如first_database;,进入first_database数据库
  3. 创建表(简单版) : create table 表名(字段1数据类型(宽度),字段2数据类型(宽度).,...)
  4. 查看当前库下所有的表: `show tables;``
  5. 补充:也可以使用绝对路径的方式创建表; 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)
根据向表中插入数据的语法规则,使用不同的方式向表中插入数据

你可能感兴趣的:(数据库,mysql,sql)