一:数据库的特点:
1:持久化存储
2:读写速度极快
3:保证数据有效性。

数据库是来干啥的??
存储和管理数据。
二:数据库的分类:
1:关系型数据库:MySQL ,SQL Server, Oracle,SQLlite。
2:非关系型数据库:MongoDB ,Redis

三: SQL 语言:

DQL:数据查询语言,用于对数据进行查询,如select
DML:数据操作语言,对数据进行增加、修改、删除,如/insert、update、delete
TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback
DCL:数据控制语言,进行授权与权限回收,如grant、revoke
DDL:数据定义语言,进行数据库、表的管理等,如create、drop

四:MYSQL数据库:
1:登录数据库:

sudo mysql -u用户名 -p密码
sudo mysql -uroot -p123456

2:退出数据库:

exit
quit
CTRL + d

3:查询系统时间:

select now()


mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2020-08-14 18:13:34 |
+---------------------+
1 row in set (0.00 sec)

4:查看所有的数据库:
show databases;

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Test               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

5:数据库的操作:
创建数据库:create database 数据库名 字符编码;
使用数据库 :use 数据库名;
查看当前使用的数据库: select database();
删除数据库:drop database 数据库名;

mysql> create database student charset=utf8;
Query OK, 1 row affected (0.00 sec)

mysql> use student;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| student    |
+------------+
1 row in set (0.00 sec)

mysql> drop database student;
Query OK, 0 rows affected (0.00 sec)

6:数据库表的所有操作:
创建数据的表:create table 表名(字段名 类型 约束,字段名 类型 约束 …)

create table students(
	id int unsigned primary key auto_increment not null,
	name varchar(20) not null,
	age tinyint unsigned default 0,
	high decimal(5,2),
	gender enum('男','女'),
	cls_id int unsigned
);

查看表结构:desc 表名

mysql> create table students(
    -> id int unsigned primary key auto_increment not null,
    -> name varchar(20) not null,
    -> age tinyint unsigned default 0,
    -> high decimal(5,2),
    -> gender enum('男','女'),
    -> cls_id int unsigned
    -> );
Query OK, 0 rows affected (0.06 sec)

mysql> desc students;
+--------+---------------------+------+-----+---------+----------------+
| Field  | Type                | Null | Key | Default | Extra          |
+--------+---------------------+------+-----+---------+----------------+
| id     | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
| name   | varchar(20)         | NO   |     | NULL    |                |
| age    | tinyint(3) unsigned | YES  |     | 0       |                |
| high   | decimal(5,2)        | YES  |     | NULL    |                |
| gender | enum('男','女')     | YES  |     | NULL    |                |
| cls_id | int(10) unsigned    | YES  |     | NULL    |                |
+--------+---------------------+------+-----+---------+----------------+
6 rows in set (0.04 sec)

修改表–给表添加列:alter table 表名 add 列名 类型;

mysql> alter table students add birthday datetime;
Query OK, 0 rows affected (0.08 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc students;
+----------+---------------------+------+-----+---------+----------------+
| Field    | Type                | Null | Key | Default | Extra          |
+----------+---------------------+------+-----+---------+----------------+
| id       | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
| name     | varchar(20)         | NO   |     | NULL    |                |
| age      | tinyint(3) unsigned | YES  |     | 0       |                |
| high     | decimal(5,2)        | YES  |     | NULL    |                |
| gender   | enum('男','女')     | YES  |     | NULL    |                |
| cls_id   | int(10) unsigned    | YES  |     | NULL    |                |
| birthday | datetime            | YES  |     | NULL    |                |
+----------+---------------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)

修改表–不重命名列:
alter table 表名 modify 列名 类型及约束。

mysql> alter table students modify birthday date;
Query OK, 0 rows affected (0.15 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc students;
+----------+---------------------+------+-----+---------+----------------+
| Field    | Type                | Null | Key | Default | Extra          |
+----------+---------------------+------+-----+---------+----------------+
| id       | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
| name     | varchar(20)         | NO   |     | NULL    |                |
| age      | tinyint(3) unsigned | YES  |     | 0       |                |
| high     | decimal(5,2)        | YES  |     | NULL    |                |
| gender   | enum('男','女')     | YES  |     | NULL    |                |
| cls_id   | int(10) unsigned    | YES  |     | NULL    |                |
| birthday | date                | YES  |     | NULL    |                |
+----------+---------------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)

修改表—重命名列:
alter table 表名 change 原名 新名 类型和约束。

mysql> alter table students change birthday birth date;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc students;
+--------+---------------------+------+-----+---------+----------------+
| Field  | Type                | Null | Key | Default | Extra          |
+--------+---------------------+------+-----+---------+----------------+
| id     | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
| name   | varchar(20)         | NO   |     | NULL    |                |
| age    | tinyint(3) unsigned | YES  |     | 0       |                |
| high   | decimal(5,2)        | YES  |     | NULL    |                |
| gender | enum('男','女')     | YES  |     | NULL    |                |
| cls_id | int(10) unsigned    | YES  |     | NULL    |                |
| birth  | date                | YES  |     | NULL    |                |
+--------+---------------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)

修改表—删除列:
alter table 表名 drop 列名

mysql> alter table students drop birth;
Query OK, 0 rows affected (0.10 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc students;
+--------+---------------------+------+-----+---------+----------------+
| Field  | Type                | Null | Key | Default | Extra          |
+--------+---------------------+------+-----+---------+----------------+
| id     | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
| name   | varchar(20)         | NO   |     | NULL    |                |
| age    | tinyint(3) unsigned | YES  |     | 0       |                |
| high   | decimal(5,2)        | YES  |     | NULL    |                |
| gender | enum('男','女')     | YES  |     | NULL    |                |
| cls_id | int(10) unsigned    | YES  |     | NULL    |                |
+--------+---------------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

查看表的创建语句:

mysql> show create table students;
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                                                                                                                                                                          |
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| students | CREATE TABLE `students` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `age` tinyint(3) unsigned DEFAULT '0',
  `high` decimal(5,2) DEFAULT NULL,
  `gender` enum('男','女') DEFAULT NULL,
  `cls_id` int(10) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8   |
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

查看库的创建语句:

mysql> show create database student;
+----------+------------------------------------------------------------------+
| Database | Create Database                                                  |
+----------+------------------------------------------------------------------+
| student  | CREATE DATABASE `student` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+------------------------------------------------------------------+
1 row in set (0.00 sec)


删除表和删除数据库:
drop table 表名
drop database 数据库名