文章目录
因为传统的文本形式存储数据存在很多的弊端:
Database
: 数据库 数据库本质是文件集(多个文件) 会按照特定存储规范进行数据增删改查
DateBaseManagementSystem
: 数据库管理系统,本质就是管理数据库文件的软件
Oracle
Mysql
DB2
Sqlite
SqlServer
关系型数据库
Oracle
mysql
DB2
sqlite
sqlserver
都是关系型数据库非关系型数据库
Redis
数据库是非关系型数据库key-value
形式进行存储
Mysql
: 开源 卖服务赚钱 被sun公司收购 sun被oracle收购 5.5版本因为oracle技术大牛对其进行升级,性能大幅提升,Mysql 从6.0开始收费,导致原来的mysql工程师跳槽创建了MariaDB
,MariaDB内部实际上就是mysql,创建者的女儿叫MariaOracle
DB2
sqlite
SQLServer
端口号
3306
编码格式utf8
Strctured Query Language
: 结构化查询语言 通过sql语言和DBMS(数据库管理软件)进行交互
终端中输入:
mysql -u root -p
输入密码即可,没有密码直接回车即可
create database d_name ;
创建数据库d_namedrop database d_name;
删除数据库d_nameshow databases;
显示所有的数据库show create database d_name;
查看单个数据库use d_name;
使用当前的数据库d_namecreate database db_name character set utf8;
创建数据库指定字符集
表是数据库中存放数据的单元,任何数据都是存放到表中 类似java中的Class,表中的字段对应class的属性
innoDB
: 支持数据库的高级操作,包括事务 主键 外键等myisam
: 只具备基本的数据库储功能
格式 :
create table t_name(字段名 字段类型,....) engine=myisam charset=utf8;
格式:
create table 表名(字段名 类型,字段名 类型,......);
例子:create table name(id int,name char(10),age int);
执行原理: 当在中断输入建表语句 终端会把写好的sql发送给DBMS,然后解析到create table时,识别出要创建一个表。
show tables ;
show create table tale_name;
使用上面的语句会出现创建表的语句和字符编码
desc table_name ;
格式 : rename table 原名 to 新名
rename table user to t_user;
格式 :alter table 表名 engine-innoDB charset=utf8;
alter table t engine=InnoDB charset=GBK;
alter table t add age int;
alter table t add newage int first;
alter table t add birthday varchar(10) after id;
alter table 表名 change 原字段名 新字段名 新的字段类型 ;
alter table t change birthday bth Date;
alter table 表名 modify 字段名 类型 位置(first/after 字段名);
alter table t modify name int after age;
将name移到age的后面,并且修改了name字段的类型为intalter table t modify name varchar(10) first;
将字段name移到最前面
alter table 表名 drop 字段名;
alter table t drop bth;
将t表中的bth字段删除
格式 : drop table 表名 ;
insert into user values(1,'jack',22);
insert into user(id,name,age) values(1,'jack',22);
格式要求: values中的值必须和前面格式的字段一致。
insert into user values(1,"孙悟空",22),(2,"唐僧",44);
insert into user(age) values(22),(33);
select * from 表名
select *
from user;
select name.age from user;
update user set age=22;
update user set age=22 where id=1;
修改id=1的那一行数据的age
delet from user where id=2;
删除id=2的那一行数据
delete from user;
trucate table 表名;
先删除表,然后再创建一样的空表(表的名字相同,字段不变,主要的功能就是清空表中的数据)