1_数据库的基本概念
-
用于存储和管理数据的仓库。
-
数据库的特点:
-
持久化存储数据的。其实数据库就是一个文件系统
-
方便存储和管理数据
-
使用了统一的方式操作数据库 -- SQL
-
2_常见的数据库软件介绍
-
常见的数据库
关系型数据库
-
MySql
-
SqlServer
-
Oracle
-
DB2
-
SqlLite
-
非关系型数据库
-
NO SQL
-
-
MongoDB
-
redis
-
hbase
-
hive
-
oceanbase
-
3_MySQL服务启动和关闭
-
启动/关闭命令
-
使用管理员身份打开cmd
-
启动mysql的服务命令
net start 服务名称
例如:net start mysql
-
关闭mysql服务
net stop 服务名称
例如:net stop mysql
-
4_MySQL登录和退出
-
登录命令
-
密码名文
mysql -u用户名 -p密码
-
密码密文
mysql -u用户名 -p
-
指定主机
mysql -hip地址 -u用户名 -p
-
全写方式
mysql --host=ip地址 --user=用户名 --password=密码
-
-
退出命令(两个命令)
mysql> exit;
mysql> quit;
5_MySQL目录结构
-
查看配置文件 my.ini
-
安装目录
例如:basedir="D:/develop/MySQL/"
-
数据目录
例如:datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
-
数据库管理系统和数据库
-
数据库管理系统软件管理多个数据库
-
数据库中会包含多张表
-
表中存储具体的数据
-
-
一个数据库管理软件--管理多个数据库---一个数据库会有多张表---一张表会有多条记录----一条记录会有多个列
进入SQL
6_SQL基本概念
-
什么是SQL?
-
Structured Query Language:结构化查询语言
-
其实就是定义了操作所有关系型数据库的规则。
-
但是,每一种数据库操作的方式存在不一样的地方,称为“方言”。
-
-
7_SQL通用语法
-
通用语法
-
SQL语句可以以单行或者多行进行书写,以分号(;)进行结尾.
-
可以使用空格和缩进来提高SQL语句的可读性.
-
MYSQL数据库的SQL语句不分区大小写,但是关键字推荐使用大写来书写.
-
3种注释
-
#查询当前系统中的所有数据库(单行注释)
-
-- 查询当前系统中的所有数据库(单行注释)(-- 后面必须空格)
-
/*查询当前系统中的所有数据库(多行注释)*/
-
-
-
示例代码
SHOW DATABASES; #查询数据库
SHOW DATABASES; -- 查询数据库
SHOW DATABASES; /*查询数据库*/
8_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)数据控制语言(了解) 用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等
9_DDL操作数据库-创建&查询
-
CRUD的概念
-
C -> CREATE:创建
-
R -> RETRIEVE:查询
-
U -> UPDATE:修改
-
D -> DELETE:删除
-
-
查询数据库
-
查询所有数据库名称
mysql> SHOW DATABASES;
-
查询某个数据库的字符集:查询某个数据库的创建语句
mysql> SHOW CREATE DATABASE 数据库名称;
-
-
创建数据库
-
创建数据库
mysql> CREATE DATABASE 数据库名称;
-
创建数据库,判断不存在,再创建
mysql> CREATE DATABASE IF NOT EXISTS 数据库名称;
-
创建数据库,并指定字符集
mysql> CREATE DATABASE IF NOT EXISTS 数据库名称 CHARACTER SET 字符集名;
-
10_DDL操作数据库-修改&删除&使用
-
修改数据库
-
修改数据库的字符集
mysql> ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称;
-
-
删除数据库(危险操作)
-
删除数据库
mysql> DROP DATABASE 数据库名称;
-
判断数据库存在,存在再删除
mysql> DROP DATABASE IF EXISTS 数据库名称;
-
-
使用数据库
-
查询当前正在使用的数据库名称
mysql> SELECT DATABASE();
-
使用数据库
mysql> USE 数据库名称;
-
11_DDL操作表_查询
-
查询某个数据库中所有的表名称
mysql> SHOW TABLES;
-
查询表结构
mysql> DESC 表名;
12_DDL操作表_创建
-
创建表
mysql> CREATE TABLE 表名(
列名称 数据类型,
列名称 数据类型,
列名称 数据类型
);注意:最后一列不需要逗号
-
MySql数据类型
类型 MySql 说明 整数类型 int 小数类型 double double(总长度,小数位长度) 日期类型 date 表示日期(只包含年月日) yyyy-MM-DD 日期时间类型 datetime 表示日期(包含年月日时分秒) yyyy-MM-dd HH:mm:ss 时间戳 timestamp 时间戳类型(包含年月日时分秒) yyyy-MM-dd HH:mm:ss 如果将来不给这个字段赋值,或者赋值为null,则默认使用当前的系统时间来自动赋值. 字符串类型 varchar varchar(20) 存储最大字符数为20 -
创建表示例
-
创建数据表student
int的id,varchar类型的name(最长20位),int类型的age,double类型的分数(最长4位,小数点后保留1位)
date类型的birthday,timestamp类型的insert_time.
mysql> USE 数据库;
CREATE TABLE student (
id INT, -- 编号
name VARCHAR(32),
age INT,
score DOUBLE(4,1),
birthday DATE,
insert_time TIMESTAMP
);
-
13_DDL操作表_删除
-
复制表
mysql> CREATE TABLE 新表名 LIKE 被复制的表名;
-
删除表
mysql> DROP TABLE 表名
-
判断表存在,存在则删除
mysql> DROP TABLE IF EXISTS 表名;
14_DDL操作表_修改
-
修改表名称
mysql> ALTER TABLE 原表名 RENAME TO 新表名;
-
修改表字符集
mysql> SHOW CREATE TABLE 表名; -- 查看表的字符集
mysql> ALTER TABLE 表名 CHARACTER SET 字符集名称; -
修改表的列
-
添加列
mysql> ALTER TABLE 表名 ADD 列名 数据类型;
-
修改列
-
修改列的名称和数据类型
mysql> ALTER TABLE 表名 CHANGE 修改前的列名 修改后的列名 修改后的数据类型;
-
修改列的数据类型
mysql> ALTER TABLE 表名 MODIFY 列名 修改后的数据类型;
-
-
删除列
mysql> ALTER TABLE 表名 DROP 列名;
-
15_DML_添加数据
-
DML:增删改表中的数据
-
表中添加数据
-
语法
INSERT INTO 表名(列名1,列名2,列名3,...列名n) values (值1,值2,值3...值n);
-
注意
-
列名和值要一一对应。
-
如果表名后,不定义列名,则默认给所有列添加值(简化书写)
INSERT INTO 表名 values(值1,值2,...值n);
-
除了数字类型,其他类型需要使用引号(单双都可以)引起来
-
-
16_DML_删除数据
-
条件删除表中数据
-
语法
DELETE FROM 表名 WHERE [条件];
-
注意
-
如果不加条件,则删除表中所有记录。
DELETE FROM 表名;
-
-
-
删除表中所有数据
-
语法
TRUNCATE TABLE 表名;
如果真的要将表中的数据全部删除,使用DELETE效率比较低,使用TRUNCATE语句会将表删除然后再创建一张空表,效率更高.
-
17_DML_修改数据
-
修改表中数据
-
语法
UPDATE 表名 SET 列名1 = 值1,列名2 = 值2,列名n = 值n WHERE [条件]
-
注意事项 如果不添加判断条件,则会修改本表中的所有数据.
-