注:该笔记内容,运行环境为MySQL8.0,Java JDK20,IDEA平台
一.常见的数据库管理系统
- Oracle:收费的大型数据库,Oracle 公司的产品
- ==MySQL==: 开源免费的中小型数据库。后来 Sun公司收购了 MySQL,而 Sun 公司又被 Oracle 收购
- SQL Server:MicroSoft 公司收费的中型的数据库。C#、.net 等语言常使用
- PostgreSQL:开源免费中小型的数据库
- DB2:IBM 公司的大型收费数据库产品
- SQLite:嵌入式的微型数据库。如:作为 Android 内置数据库
- MariaDB:开源免费中小型的数据库
二.SQL概述
- 英文:Structured Query Language,简称 SQL
- 结构化查询语言,一门操作关系型数据库的编程语言
- 定义操作所有关系型数据库的统一标准
- 对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”
SQL的通用语法
SQL 语句可以单行或多行书写,以分号结尾,以分号结尾才是一个完整的sql语句。
单行注释: -- 注释内容 或 #注释内容(MySQL 特有)
多行注释: /* 注释 */
SQL分类
DDL(Data Definition Language) :数据定义语言,用来定义数据库对象:数据库,表,列等。
DML(Data Manipulation Language): 数据操作语言,用来对数据库中表的数据进行增删改
DQL(Data Query Language):数据查询语言,用来查询数据库中表的记录(数据)
DCL(Data Control Language):数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户
三.各种语言的使用
1.DDL:操作数据库、数据表
查询所有的数据库: SHOW DATABASES;
创建数据库:CREATE DATABASE(IF NOT EXISTS) 数据库名称;
删除数据库:DROP DATABASE IF EXISTS 数据库名称;
使用数据库:USE 数据库名称;
查看当前使用的数据库:SELECT DATABASE();
查询当前数据库下所有表名称:SHOW TABLES;
查询表结构:DESC 表名称;
创建表:
CREATE TABLE 表名 (
字段名1 数据类型1,
字段名2 数据类型2,
…
字段名n 数据类型n
);
删除表:DROP TABLE (IF EXISTS) 表名;
修改表:
ALTER TABLE 表名 RENAME TO 新的表名;(修改表名);
ALTER TABLE 表名 ADD 列名 数据类型;(添加列);
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;;(修改列名和数据类型);
ALTER TABLE 表名 DROP 列名;(删除列);
数据类型:
| 数据类型 | 描述 |
|---|---|
| tinyint | 小整数型,占一个字节 |
| int | 大整数类型,占四个字节 |
| double | 浮点类型,字段名 double(总长度,小数点后保留的位数) |
| date | 日期值。只包含年月日 |
| datetime | 混合日期和时间值。包含年月日时分秒 |
| char | 定长字符串。优点:存储性能高缺点:浪费空间 |
| varchar | 变长字符串。优点:节约空间;缺点:存储性能低 |
2.DML:对数据增删改
添加数据:
INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);
INSERT INTO 表名 VALUES(值1,值2,…);
INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
修改数据:
UPDATE 表名 SET 列名1=值1,列名2=值2,… [WHERE 条件] ;
删除数据:
DELETE FROM 表名 [WHERE 条件] ;
DQL与DCL明天更。