文章目录
- 1. Day01-基本的语句
- 1.1. 数据库简介
- 1.2. 什么是DB
- 1.3. 什么是DBMS
- 1.4. 数据库分类
- 1.5. 主流关系型数据库介绍
- 1.6. mysql安装
- 1.7. 数据库相关SQL
- 1.7.1. 什么是SQL
- 1.7.2. 连接数据库
- 1.7.3. 数据库操作
- 1.8. 表相关SQL
- 1.8.1. 什么是表
- 1.8.2. 数据库表的引擎
- 1.8.3. 创建表时指定引擎和字符集
- 1.8.4. 创建表
- 1.8.5. 查询所有表
- 1.8.6. 查询单个表
- 1.8.7. 查看表的字段属性
- 1.9. 修改表
- 1.9.1. 修改表的名称
- 1.9.2. 修改表的属性(引擎和字符集)
- 1.9.3. 添加表字段
- 1.9.4. 修改字段名和类型
- 1.9.5. 修改字段类型和位置
- 1.9.6. 删除字段
- 1.10. 删除表
- 1.11. 数据相关的SQL(CRUD)
- 1.11.1. 插入语句
- 1.11.2. 查询语句
- 1.11.3. 更新语句
- 1.11.4. 删除语句
- 1.11.5. TRUNCATE语句
Day01-基本的语句
数据库简介
因为传统的文本形式存储数据存在很多的弊端:
- 执行效率低
- 占用内存
什么是DB
Database
: 数据库 数据库本质是文件集(多个文件) 会按照特定存储规范进行数据增删改查
什么是DBMS
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
- 闭源 卖产品
- 支持windows,Linux
DB2
- 闭源 大型数据库 通常是国字头的企业在用
sqlite
- 轻量级数据库,大小几十k,应用于移动或者嵌入式设备
SQLServer
- 微软公司 闭源 主要.net开发的网站中
mysql安装
端口号
3306
编码格式utf8
数据库相关SQL
什么是SQL
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;
创建数据库指定字符集
表相关SQL
什么是表
表是数据库中存放数据的单元,任何数据都是存放到表中 类似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 表名 add 字段名 字段类型;
alter table t add age int;
- 在最前添加 格式: alter table 表名 add 字段名 字段类型 first;
alter table t add newage int first;
- 在某个字段后面添加 格式: alter table 表名 add 字段名 字段类型 after 字段名;
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 表名 ;
数据相关的SQL(CRUD)
插入语句
- 全表插入 格式 insert into 表名 values(value1,value2,…)
格式要求: values里面的值的数量和顺序必须要和表的字段一致
insert into user values(1,'jack',22);
- 指定字段插入
格式: insert into 表名(字段1,字段2,..) values(value1,value2,….)
insert into user(id,name,age) values(1,'jack',22);
格式要求: values中的值必须和前面格式的字段一致。 - 插入多组数据
格式: insert into values(第一组数据),(第二组数据)….
insert into user values(1,"孙悟空",22),(2,"唐僧",44);
- 指定字段插入多组数据
insert into user(age) values(22),(33);
查询语句
- 查询所有字段 格式:
select * from 表名
select*
from user; - 查询指定字段 格式:select 字段1,字段2 from 表名
select name.age from user;
更新语句
- 更新表中所有的字段
格式: update 表名 set 字段名 = 新的值;
update user set age=22;
- 改变指定条件的字段
格式: update 表名 set 字段名 = 新的值 where 条件;
update user set age=22 where id=1;
修改id=1的那一行数据的age
删除语句
- 指定条件删除
格式: delete from 表名 where 条件 ;
delet from user where id=2;
删除id=2的那一行数据 - 不指定条件删除,那么将会删除整张表数据
delete from user;
TRUNCATE语句
trucate table 表名;
先删除表,然后再创建一样的空表(表的名字相同,字段不变,主要的功能就是清空表中的数据)