数据库(保存数据 保存到一个文件当中 对数据进行持久化)
使用简单命令 就可以实现增删改查
数据库系统
可以操作数据的应用程序
常用的数据库
mysql数据库 中小型的数据库
DDL 数据库定义语句
CREATE ALTER DROP
DML 数据操作语句
Insert update delete
DQL 数据库查询语句
Select
注意:
SQL语句不分大小写
SQL语句以;(分号结束)
安装数据库
进入数据库指令 mysql -uroot -p
查询现有的数据库
show databases
创建一个数据库(查询该数据的编码格式)
window 默认的数据库编码格式 utf8
mac 初始默认数据库编码格式 拉丁-1
(不能插入中文)
create database 数据库名;
指定查询一个创建的数据库
show create database 数据库名;
创建数据库并指定字符集(一般使用 utf8)
show create database 数据库名 character set 字符集名字
修改数据库创建时的默认字符集
my.cnf文件(有数据库的默认配置文件)
在/etc文件夹下 可以找到
(直接把文件扔进去 必须重启mysql服务才能重新加载)
查看字符集的所有校验规则
每一个编码格式都有一个对应的校验规则
show character set;
创建数据库 指定字符集和校验规则
(collate 校验)
show create database 数据库名
character set 字符集名字 collate 校验规则;
注意:校验规则要对应上
create database mydb4 character set utf8 collate utf8_general_ci;
utf8_general_ci
修改数据库(Alter)
1.修改编码格式
Alter database 库名 + 要改什么
character set
2.删除数据库(Drop 删除)
Drop database 库名
表的操作
创建一张表(注意 最后一个字段 没有逗号)
create table 表名(
字段1 字段类型,
字段2 字段类型,
......
字段3 字段类型
)
常用
int
double
数据库中的字符串 使用英文的单引号 ''
char 声明固定长度字符串
char(10) 声明为10的字符串 'abc '
效率高 但是浪费空间
varchar 声明可变长度字符串
varchar(10) 'abc' 系统会判断 把空值去掉
省空间 但是效率相对于固定长度的char低
常用varchar(字符的长度)
data 日期类型 yyyy-MM-dd
timestamp:时间戳类型
传入空值 系统会默认帮你赋值 系统时间
也可以直接使用字符串插入
text 大文本类型
blob 字节类型
数据不直接存文件/相片/音频...
存该文件的保存路径(字符串)
查看一下当前使用的是哪个数据库
select database();(显示null 表示没有正在使用的数据库)
使用数据库
use 数据库名
创建一张表 表名 emp
字段 属性
Id 整型
name 字符
gender 字符
birthday 日期
Entry_date 日期
job 字符
Salary 小数
resume 大文本
查看一下表结构
desc 表名;
查看一下整张表内容(* 表示所有字段)
select * from 表名;
表中插入数据
方式1:(只要字段与值相对应就行 没填的字段 默认是null)
格式:
insert into 表名 (字段1,字段2,....)values(值1,值2,....)
注意:字段与值的顺序和类型 要一一对应
如果该字段没值 试用null代替
插入方式2(批量插入)
insert into 表名 values
(值1,值2,.....),
(值1,值2,.....),
(值1,值2,.....);
注意:批量插入时 插入的字段和表一致
修改表DDL语句
alter table 表名 + 关键词
1.添加一个字段(Add) image blob类型
2.修改一个字段的长度(MODIFY) job 长度变60
3.删除一个字段(drop) image;
4.查看表细节
show create table 表名
5.修改表名
rename table 老表名 to 新表名;
6.修改字段名
alter table 表名 change 老字段名 新字段名 新字段名的类型;
修改(更新)表数据update
格式:(多个值用逗号隔开)
update 表名 set 字段1=值1,字段2=值2 where 字段=值;
删除一条记录(删除的哪一条数据)
delete from 表名 where 字段=值
删除表中的所有数据
delete from 表名;
delete删除时 是一条一条记录删除
并且如果删除错误 数据可以进行回滚(找回)
一条一条删 效率不高
truncate table 表名;
truncate删除时 是将表整个删除
重新创建一张跟原来字段相同的表 删除效率高 但是不能找回