数据库
一、数据库类型
1、关系型数据库:Oracle:银行、政府;MySQL:最广泛
2、非关系型数据库:redis、mongodb
二、数据库的核心元素
1、sql:关系型的数据库语言,结构化查询语言
2、Mysql:具体的数据库
3、RDBMS:关系型数据库的管理系统
4、数据库:数据库是一种特殊的文件
三、sql语句的分类
sql:结构化查询语句。
DQL:数据查询语言,用于对数据的查询,select
DML:数据操作语句,用于修改数据库中的数据,包括插入(INSERT)、更新(UPDATE)和删除(DELETE)
DDL:数据定义语言,用于创建、修改、和删除数据库内的数据结构
1:创建和删除数据库(CREATE DATABASE || DROP DATABASE);
2:创建、修改、重命名、删除表(CREATE TABLE || ALTER TABLE|| RENAME TABLE||DROP TABLE);
3:创建和删除索引(CREATEINDEX || DROP INDEX)
DCL:数据控制语言,用于对数据库的访问,如:1:给用户授予访问权限(GRANT);2:取消用户访问权限(REVOKE)
四、CRUD
数据的增删改查
五、打开数据库
打开客户端进行操作的语句
mysql -u用户名 -p
mysql -uroot -pmysql
mysql -h 主机名 -u用户名 -p密码
六、DDL
6.1 创建数据库
CREATE DATABASE pai200323;
注意点:
1、数据库的语句不区分大小写
2、不能重复创建数据库,否则会报数据库已经存在
6.2 删除数据库
DROP DATABASE pai200323;
6.3 使用数据库
USE pai200323;
注意点:
使用数据库的格式是:use 数据库名
6.4 查看当前数据库
SELECT DATABASE();
注意点:
1、database()加上()
2、如果语句查询不到数据,我们没有使用数据库,并不会报错,返回NULL
6.5 创建数据库表
6.5.1 数据类型
使用数据的类型原则:够用就行,尽量选择取值范围小的,不要太大,节省存储空间。
varchar 表示的是可变长度的字符串,在定义的过程中必须指定长度
char 表示的是固定长度的字符串,可以不指定,默认一个字符串最大255
decimal(m,n) m代表m位数,n代表小数位
int 使用4个字节保存整数数据
6.5.1.1 整数类型
6.5.1.2 小数类型
6.5.1.3 字符型
常用的类型:
char
varchar
text:大文本存储,当数据字符大于4000时使用
6.5.1.4 日期
6.5.2 创建一张数据库表
# 创建一张表,用来存放约束数据
CREATE TABLE students(
NAME VARCHAR(10) NOT NULL,
age INT ,
id INT PRIMARY KEY AUTO_INCREMENT,
tel INT NOT NULL,
classes VARCHAR(10)NOT NULL
);
格式:
create table 表名(
字段1 数据类型 [约束],
字段2 数据类型 [约束],
......
字段n 数据类型 [约束]
)
注意点:
1、最后一个字段末尾不要加逗号
2、其他字段在设置的过程中,需要隔开
6.6 查看表结构
# 查看表结构
DESC students;
6.7 修改表结构
6.7.1 修改字段名及修改结构(重命名)
# 将员工表中的列名name修改成sname
DESC employee;
ALTER TABLE employee CHANGE NAME sname VARCHAR(10);
/*
修改字段(修改字段名以及数据类型和约束)
alter table 表名 change 旧字段名 新字段名 类型(约束);
*/
6.7.2 修改字段结构(不重命名)
# 将id设置为主键
ALTER TABLE employee CHANGE id id INT PRIMARY KEY AUTO_INCREMENT;
ALTER TABLE employee MODIFY age INT NOT NULL;
/*
修改字段的结构以及约束
alter table 表名 modify 字段名 类型以及约束
*/
6.7.3 增加字段
# 增加一个字段,这个字段是 电话 不能为空
ALTER TABLE employee ADD phone INT NOT NULL
/*
增加字段
alter table 表名 add 字段名 类型 约束
*/
6.7.4 删除字段
# 删除当前表中的字段gender
/*
alter table 表名 drop 字段名
*/
6.7.5 查询表结构
desc 表名;
select * from 表名;
6.8 修改表名
# 将表名employee修改成employees
RENAME TABLE employee TO employees;
/*
rename table 旧表名 to 新表名
*/
6.9 查看表创建的语句
# 查看表创建的语句
SHOW CREATE TABLE employees;
/*
show create table 表名;
*/