数据库的基本概念
DataBase:数据库,用于存储和管理数据的仓库。
数据库的特点:
- 持久化存储数据的。数据库就是一个文件系统。
- 方便存储的管理数据。
- 使用了统一的方式来操作数据库——SQL。
常用的数据库软件:
Oracle 收费
MySQL
Microsoft SQL Server 收费
DB2
MySQL数据库软件
安装
卸载
- 卸载。
- 删除C:/ProgramData文件夹下的MySQL文件夹。
配置
服务:没有界面的应用程序。
开启和停止的两种方法:
- 在命令提示符中使用services.msc命令查看服务,选择开启或者停止MySQL服务。
- 以管理员运行命令提示符,使用
net start mysql55
开启服务,或使用net stop mysql55
停止MySQL服务。
MySQL登陆:mysql -uroot -p
远程登陆:mysql -h连接目标ip -uroot -p连接目标密码
mysql --host=ip --user=root --password=连接目标的密码
MySQL退出:exit
quit
MySQL目录结构:
- MySQL安装目录
- bin:二进制的可执行文件
- data:日志文件,数据文件
- include:c语言的头文件
- lib:jar包
- share:错误信息
- MYSQL数据目录:C:/ProgramData/MySQL、
- 数据库:文件夹
- 表:文件
- 数据
SQL
Structured Query Language:结构化查询语言。
定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为”方言“
SQL通用语法
- SQL 语句可以单行或多行书写,以分号结尾。
- 可使用空格和缩进来增强语句的可读性。
- MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。
- 3种注释:
- 单行注释:– 注释内容 或 #注释内容(MySQL特有)
- 多行注释:/* 注释内容 */
SQL分类
DDL(Data Definition Language)数据定义语言
用来定义数据库对象:数据库,表,列等。关键字:create,drop,alter 等。
DML(Data Manipulation Language)数据操作语言
用来对数据库种表的数据进行增删改。关键字:insert,delete,update 等。
DQL(Data Query Language)数据查询语言
用来查询数据库中表的记录(数据)。关键字:select,where 等。
DCL(Data Control Language)数据控制语言
授权。
DDL:操作数据库、表
操作数据库:CRUD
- C(Create):创建
CREATE DATABASE 数据库名称;
:创建数据库。CREATE DATABASE 数据库名称 CHARACTER SET GBK;
:创建指定字符集的数据库。(gbk)。CREATE DATABASE IF NOT EXISTS 数据库名称 CHARACTER SET GBK;
:判断数据库是否存在后创建指定字符集的数据库。
- R(Retrieve):查询
SHOW DATABASES;
:查询所有数据库的名称。SHOW CREATE DATABASE 数据库名称;
:查看某个数据库的字符集,查询某个数据库的创建语句。
- U(Update):修改
ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称;
:修改数据库的字符集。
- D(Delete):删除
DROP DATABASE 数据库名称;
DROP DATABASE IF EXISTS 数据库名称;
- 使用数据库:
SELECT DATABASE();
:查询当前正在使用的数据库名称。USE 数据库名称
:使用(进入)到数据库中。
- C(Create):创建
操作表
C(Create):创建
语法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18CREATE TABLE 表名(
列名1 数据类型1,
列名2 数据类型2,
age int,
score double(5,2), -- 999.99
name varchar(20), -- 字符串长度最大20个字符
...
列名n 数据类型n
)
CREATE TABLE STUDENT(
ID INT,
NAME VARCHAR(32),
AGE INT,
ACORE DOUBLE(4,1),
BIRTHDAY DATE,
INSERT_TIME TIMESTAMP
);数据库类型:
- int:整数类型。
- double:小数类型。
- date:日期,只包含年月日,yyyy-MM-dd。
- datetime:日期,包含年月日时分秒,yyyy-MM-dd HH:mm:ss。
- timestamp:时间戳类型。包含年月日时分秒,yyyy-MM-dd HH:mm:ss。如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值。
- varchar:字符串
CREATE TABLE 表名1 LIKE 表名2;
:创建一个和表2一样的表1。
R(Retrieve):查询
SHOW TABLES;
:查询某个数据库中所有表的名称。DESC 表名;
:查询表结构。
U(Update):修改
ALTER TABLE 表名 RENAME TO 新表名;
:修改表名。ALTER TABLE 表名 CHARACTER SET 字符集名称;
:修改表的字符集。ALTER TABLE 表名 ADD 列名;
:添加列。ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
ALTER TABLE 表名 MODIFY 列名 新数据类型;
:修改列名称/类型。ALTER TABLE 表名 DROP 列名;
:删除列。
D(Delete):删除
DROP TABLE 表名;
DROP TABLE IF EXISTS 表名;
TRUNCATE TABLE 表名
:删除表,然后创建一张相同的空表。
DML:增删改表中的数据
添加数据:
INSERT INTO 表名(列名1,列名2, ... ,列名n) VALUES(值1,'Mike', ... ,'1999-1-1');
注意:
列名和值要一一对应。
如果表名后,不定义列名,则默认给所有列添加值。
INSERT INTO 表名 VALUES(值1,值2, ... ,值n);
除了数字类型,其他类型需要用引号引起来,单双都可。
删除数据
DELETE FROM 表名 [WHERE 条件];
注意:
如果不加条件,会把表中的所有记录都删除掉。
如果要删除所有记录
DELETE FROM 表名;
– 不推荐使用。效率低。TRUNCATE TABLE 表名;
– 推荐使用,效率更高。删除表,然后创建一张相同的空表。
修改数据
UPDATE 表名 SET 列名1=值1, 列名2=值2, ... [WHERE 条件];
注意:
- 如果不加任何条件,将会把表中的所有数据都进行修改。
DQL:查询表中的记录
SELECT * FROM 表名
:查询表中的所有记录。