1、什么是数据库?
存储数据的一个仓库。 所有软件(应用软件、互联网软件…)的业务数据最终
都会存储到数据库中。例如说:购物系统订单信息客户信息、12306的车次信息、购票信息。
2、目前流行的数据库有哪些?
oracle oracle -付费 用在电信行业较多
IBM db2 – 付费 用在金融行业比较多
微软 sqlserver – 一般中小企业用的比较
…..
mysql – 免费开源 特别流行,尤其在互联网行业, 功能强大,便于集群。
3、数据库是一套软件,一套c/s架构的软件
如果说要读写数据库数据(把信息写入数据库、把信息从数据读出来)需要与dbms交互,先通过3306端口
建立连接,发送指令(sql)指令。
操作流程:
a.建立连接
b.发送指令 sql
c.关闭连接
4、数据库架构体系
数据库管理系统(dbms database manager system)
数据库文件 (只允许dbms读写的磁盘文件)
数据库监听端口(3306)
5、安装数据库
6、数据库的好处?
a.数据共享
b.数据查询方便
=====================================================================
mysql客户端类别:
1、可以是navicat可视化工具 、sqlog
2、命令行
3、java代码也能够
命令行连接数据库:
mysql -h<IP> -u<用户名> -p<密码>
如果是本机:
mysql -hlocalhost -uroot -p123456
mysql -h127.0.0.1 -uroot -p123456
mysql -uroot -p123456
create database 数据库名称;
show databases; //查看当前有多少个库
use study; //进入study
show tables; //查看当前库有多少个表
可视化mysql客户端工具。
=============================================================
1.mysql安装好之后,会默认有4个数据库,
2.默认数据库主要是存储用户信息。
3.验证mysql最终的数据是存储在磁盘文件里面,必须有数据库管理系统dbms才能够正常的读写。
============================================================
数据库操作语言。
SQL:结构化查询语言,按照sql标准写的指令,能够适配各种不同类型的数据库。
DCL: 系统级别的操纵,比如说:增加数据库用户,给数据库用户赋权限。
DDL: 对数据库表进行增删改查。
DML: 对系统用户表进行增删改查。
DBA:数据库工程师
=============================================================
mysql数据库是属于关系型数据库。
关系型数据库: 用二维表的形式来表述数据。
二维表的概念:
行头(列):字段
行体(行):记录
关系型数据库的好处可以与面向对象开发语言无缝链接,能够直接映射。
创建表一张:
字段名规范: 小写母、下划线
数据类型:
表示字符串:char、varchar
char(12): 固定12个字节
优点:写的效率高
缺点:有浪费磁盘空间的可能
varchar(12):不会存储12字节,可变长字符
6+2 表示具体占用字节数
优点: 节省磁盘空间
缺点: 写的效率低,需要维护字段实际的长度
表示时间:timestamp
create table 新表名 select * from 旧表 where 1=0
表创建的约束:
1、非空约束
2、主键约束
主键:能够唯一表示一条记录的字段 (单值主键)
双值主键
主键设置的参考建议:
a.不建议用业务字段来做为主键
b.采用唯一整型自增长字段(无业务含义)
好处:构造索引的平衡二叉树效率会很高,维持树的平衡关系方便,不需要旋转。
3、外键约束 (不一定要设置)
4、默认值设置
5、timestamp 能够将系统当前时间填充到字值
==================================table的基本用法 (增、删、改、查)
dml:
insert语句:
添加一条记录:
insert into 表名(字段名1, 字段名2, …) values (值1,值2, …);
insert into 表名 values (值1,值2, …); –插入所有字值(注意值的位置与字段默认位置一一对应
insert into student(sid, name) values(‘A001’, ‘刘亮’);
insert into student values(‘A001’, ‘刘亮’, 20, ‘计算机科学与技术1班’,’江西赣州兴国’, now(), ‘德方’,now(),’德方’);
now()–表示系统当前时间
同时添多条记录:
insert into 表名(字段名1, 字段名2, …) values (值1,值2, …),(值1,值2, …),(值1,值2, …)
insert into 表名 values (值1,值2, …), (值1,值2, …), (值1,值2, …), (值1,值2, …)
表记录复制:
insert into A表名 select * from B表名
select语句:
select 字段1,字段2… from 表名
查询所有记录的姓名、年龄、学号。
select name, age, sid from student;
查询所有学生的所有信息?
select * from student;
按条件条件:
select 字段1,字段2… from 表名 where 字段名=字段值
select * from student where update_person=’德方1′
====================================
where条件表达式:
等于: =
大于:>
小于:<
大于等于: >=
小于等于:<=
不等于:<> 或者 !=
并且:and
或者:or
模糊查询:
like
%与_的区别?
%:表示任意多个字符(包括0)
_:仅仅只代表1个字符
非空匹配:
is not null
范围查询:
in 范围内 in(集合)
not in 范围外
====================================
update: 修改记录
语法:update 表名 set 字段1=值1, 字段2=值2 where 条件
update student set age=29 where sid=’A001′
delete : 删除记录
语法:delete from 表名 where 条件
删除所有记录:delete from 表名
truncate 表名:
delete 、truncate区别:
1、truncate属于ddl级别的指令、delete 属于dml级别的指令。