一.数据库
数据库: 是用来保存数据的 保存到一个文件中 对数据进行持久化
使用简单的命令就可以实现增删改查
数据库系统: 可以操作数据的应用程序(按特定的规则)
常用的数据库:MySQL数据库(中小型数据库)6.0之前是免费的
注意:
SQL语句不区分大小写
SQL语句以;结尾
DDL数据库定义语句: create alter drop
DML数据操作语句: insert update delete
DQL数据库查询语句: select
在终端进入数据库的指令: mysql -uroot -p;
二.对数据库的操作
查询现有的数据库:
show databases;
创建一个数据库:
create database 数据库名;
指定查询一个创建的数据库(查询该数据库的编码格式):
windows默认的数据库编码格式utf8
mac上默认数据库编码格式latin1(不能插入中文)
create database 数据库名;
创建数据库并指定字符集(一般使用utf8的):
create database 数据库名 character set 字符集名字(如utf8);
修改数据库创建时的默认字符集:
my.cnf(有数据库的默认配置文件) 在/ect文件夹下 可以找到 直接把文件扔进去 必须重启mysql服务才能被重新加载
查看字符集的所有校验规则 (每一个编码格式都有一个对应的校验规则):
show character set;
创建数据库指定字符集和校验规则(collate 校验)
create database 数据库名 character set 字符集名字 collate 校验规则;
注意:校验规则要对应上
如:create database mydb4 character set utf8 collate utf8_general_ci;
修改数据库:
修改编码格式(alter 修改):
alter database 库名 要改什么(如编码格式 character set);
删除数据库(drop):
drop database 库名;
三.对表的操作
创建一张表
写法:
create table 表名(
字段1 字段类型,
字段2 字段类型,
......
字段3 字段类型
);
常用的字段类型
int
double
char 声明固定长度的字符串
(数据库中的字符串使用英文的单引号表示)
char(10)长度为10的字符串 'abc '
效率高 但是浪费空间
varchar 声明可变长度字符串
varchar(10) 'abc'系统会判断把空值去掉
省空间 但是效率相对于固定长度的char低
常用varchar(字符长度)
date 日期类型 yyyy-MM-dd
timestamp :时间戳类型(悲观锁 乐观锁)
传入空值 系统会默认帮你赋值系统时间
不想使用默认系统时间 可以直接用字符串插入
text 大文本类型
blob 字节类型
书库直接存文件/相片/音频...... 存该文件的保存路径
查询当前使用的数据库:
select database(); 返回null 表示当前没有正在使用的数据库
使用数据库:
use 数据库名;
查看表结构:
desc 表名;
查看一下整张表内容(* 表示所有字段):
select * from 表名;
表中插入数据:
方式一:
insert into 表名(字段1,字段2,......) values (值1,值2,......);
注意:字段与值的顺序要一一队形 如果该字段没有值 使用null代替
插入方式二(批量插入):
insert into 表名 values (值1,值2,.....),
(值1,值2,......),
(值1,值2,......),
(值1,值2,......);
注意 批量插入时 值与字段要一致
1. 添加一个字段
alter table 表名 add 字段 类型;
2.修改一个字段的长度
alter table 表名 字段 类型(长度);
3.删除一个字段
alter table 表名 drop 字段;
4.查看表细节
show create table 表名;
5.修改表名
rename table 旧表名 to 新表名;
6.修改字段名
alter table 表名 change 老字段名 新字段名 新字段名的类型;
修改(更新)表数据 update
格式(多个值用逗号隔开):
update 表名 set 字段1=值1,字段2=值2 where 字段=值;
删除操作:(删除的是where后面的内容所在的那一行数据)
delete from 表名 where 字段=值;
删除表中的所有数据
delete from 表名;
delete 删除时 是一条一条的删除 并且如果删除错误 数据可以进行回滚(找回) 但是效率不高
truncate table表名;
truncate删除时 将整个表删除 重新创建一张跟原来字段相同的表 效率高但是不能找回