数据库基本概念&MySQL基本操作详解
来源:互联网 发布:倩女幽魂mac版 编辑:程序博客网 时间:2024/05/18 04:01
本人小白,大部份内容来自于网络或书本,再加一点自己的见解总结,在此向各位巨人致敬
数据
数据的定义:
1. 数据是对客观事实的符号表示
2. 在计算机领域数据通常是指由能被计算机识别与处理的数值、字符等符号构成的集合
数据库管理系统(DBMS)的分类
- 关系型数据库:支持关系模型,其关系模型由关系数据结构、关系操作集合、完整性约束三部分组成。常见的有oracle,mysql,SQLserver等
- 非关系型数据库:常见的有redis,MongoDB等
- 两者的区别:
关系型数据的运算
笛卡尔积:笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员
- 选择(where):选择是对关系的水平分解运算,通俗一点就是提取行
σf(R)={t|t∈R∧F(t)=TRUE}
解释:选择t,t属于R且F(t)为真。(即在R中选取满足f条件的元组)
select * from R where f(t)==true; - 投影(select):投影是对关系的垂直分解运算,即选择关系集中的属性子集,通俗一点就是提取列。
πA(R) = { t[A] | t∈R }
select A from R 连接:连接也称为θ连接,它是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。
- 等值连接和自然连接(元组行参照坐标)
- 等值连接:广义上它是从笛卡尔集中选取R1中某指定列和R2中某指定列相等的元组。
select * from R1,R2 where R1.A=R2.B; - 自然连接:特殊的等值连接,要求用于连接的属性相同。
select * from R1,R2 where R1.A=R2.A;
- 等值连接:广义上它是从笛卡尔集中选取R1中某指定列和R2中某指定列相等的元组。
- 外链接
- -
- 等值连接和自然连接(元组行参照坐标)
数据库的组成
- 数据库系统
- 数据库
- 数据表
- 数据表字段
- 数据
mysql安装
参见,免安装版MySQL相关配置
SQL(结构化查询语言)
SQL分类:DDL数据定义语言,DML数据操作语言,DQL数据查询语言,DCL数据控制语言
DDL数据定义语言:用来操作数据库和数据库对象
1. show databases; :查看数据库系统里的所在数据库2. create database 数据库名; :建立一个数据库3. use 数据库名; :使用一个数据库4. show tables; :查看数据库里面的所有数据表5. create table 表名(字段 字段类型,。。。) :创建表6. drop database 数据库名;:删除数据库7. drop table 表名; :删除数据库表8. desc 表名;:查看表结构字段9. alter table 表名 modify 字段名 字段类型;: 修改表字段类型10. alter table 表名 change 原字段名 修改字段名 字段类型;:修改表字段11. alter table 表名 add 字段名 类型 after 字段;:添加字段到自定字段后12. alter table 表名 rename 新表名; :修改表名
DML数据操作语言:用来修改表中的数据
1. insert into 表名 values(对应值),(值);:插入一条或多条数据2. insert into 表名(字段1,字段2,。。。)values(值1,值2,。。。);:插入指定字段数据到表中3. delete from 表名 where 字段=值;:从表中删除一条数据4. update 表名 set 字段1=值1,字段2=值2,。。。where 字段=值;:修改
DQL数据查询语言
1. select * from 表名;:查询表里所有数据2. select 字段1,字段2,。。。 from 表名; :查询指定字段3. where条件查询: 1. 关系型查询:<> <= >= != 2. 逻辑 :or and 3. 区间: in() ,between a and b 4. 模糊: like '%条件%';4. 规则: 1. group by 字段 2. order by 字段 ASC:升序(默认),DESC:降序。 3. limit 0,5
DCL数据控制语句:用来定义访问权限和安全级别
1. 创建用户:create user '用户名'@'主机名' identified by '密码';2. 授权:grant all on 数据名.表名 to '用户名'@'主机名';3. 取消权限:revoke all on *.* from '用户名'@'主机名';4. 删除用户:drop user '用户名'@'主机名';5. 查看用户的权限:show grants [for '用户名'@'主机名'] *注:如果for后面的内容不写,默认查看当前用户,写的话查看指定用户的权限> 说明: all:所有的权限 *:代表所有的库或表 %:模糊查询
TCL事务控制语句:用于维护数据的一致性
1. set autocommit=0;/begin; 开启事务2. rollback; 回滚3. commit; 手动提交事务
数据类型
number类型:
字符型:
DATA类型:
约束条件&关键字
案例:
CREATE TABLE yuesu( id int(4) PRIMARY KEY AUTO_INCREMENT,#主键约束,设置自增 name VARCHAR(8) NOT NULL,#不为空 shoolId int(4) UNIQUE ,#设置唯一约束 bronData DATE DEFAULT '1990-01-01',#设置默认值 card INT(11), CONSTRAINT key_1 FOREIGN KEY (card) REFERENCES te(id)#设置外键约束)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1000;#设置引擎,默认字符集,还可以给自增赋初始值
搜索引擎
InnoDB:支持事务,采用的是行锁,对于数据的增删改操作效率高,包括了对事务处理和外来键的支持
MyISAM:不支持事务,采用的是表锁,对于数据的查询效率高,常用于查询操作比较多的web项目
两者的区别:
MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,常被认为用于小型项目
InnoDB提供事务支持事务,外部键等高级数据库功能
对引擎的操作:
show engines; 查看数据库系统支持的存储引擎
show variables like ‘storage_engine%’; 查看当前系统默认的存储引擎
修改默认引擎-my.ini
- 设置表引擎参看上一案例
函数
数学函数:
聚合函数(常用于统计一个列,常通过group by)
字符串函数
DATA函数
加密函数
数据库导入和导出
- 导出数据
// 导出test 数据库 -R 表示导出函数和存储过程,加上使导出更完整 mysqldump -u root -p -R test > test.sql // 导出test数据库中user表 mysqldump -u root -p test user > test_user.sql
- 导入数据
方法1: mysql -u root -p mysql>use test mysql>source test.sql 方法2: mysql -u root -p test < test.sql
阅读全文
1 0
- 数据库基本概念&MySQL基本操作详解
- mysql详解--数据库基本概念
- MySql数据库基本操作
- MySQL数据库基本操作
- MySQL 数据库基本操作
- mysql 数据库基本操作
- MySQL数据库基本操作
- 数据库基本操作-mysql
- MySQL数据库基本操作
- MYSQL数据库基本操作
- MySQL 数据库基本操作
- MySQL数据库基本操作
- mysql数据库基本操作
- MySQL数据库基本操作
- mysql数据库基本操作
- 【MySQL】数据库基本操作
- mysql基本数据库操作
- MySQL数据库基本操作
- react开发笔记 —ant-design框架
- Android Camera 流程学习记录(四)—— Camera.startPreview() flow
- 数据库锁表的分析与解决(二)
- A Comprehensive Guide to Data Exploration(数据探索的综合指南)
- js变量赋值3e3
- 数据库基本概念&MySQL基本操作详解
- c++ 输出到文本格式 ofstream && FILE
- 按钮闪烁效果
- 外观模式的C#实现
- cannot resolve corresponding JNI function
- GIT的使用2(基本配置)
- eclipse快捷键
- 数据结构 红黑树
- String、StringBuffer与StringBuilder之间区别