数据库
什么是数据库
储存数据,管理数据的库就叫做数据库
关系分为:关系型数据库和非关系型数据库
关系型数据库
早期的数据库就是建立在紧密关系基础上的(例如:师生关系),我们称之为关系型数据库,也叫传统数据库.关系型数据库有特定的组织方式,就像Excel表格一样有自己的行和列,是一张二维的表格,关系型数据库就是由二维表之间的关系组成一个数据集合用户可以通过查询索引来查看数据库中的数据,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据集合.
非关系型数据库
现在的数据库是建立在数据松散的基础上的,数据之间很松散(例如:各自的企业有各自的数据库).
关系型数据库,Oracle、MySQL、SQLServer、Access
非关系型数据库, MongoDB、Redis、Solr、ElasticSearch、Hive、Hbase
其中最流行的关系型数据库是MySQL
安装MySQL1.安装路径:不能包含中文和特殊符号
2.默认是latin1,不认识中文,要改成utf8,不然会出现中文乱码
3.端口号:每个软件都有唯一的端口号,其中,MySQL默认是3306
4, 开机服务: MySQL/Mariadb ,要保证访问数据库时服务是开启状态
5, 设置密码: root,也可以自定义
6, 安装 服务器端: 真正存数据的地方
7, 安装 客户端: 连接服务器 , 操作服务器中的数据 , 新增 删除 修改 查询 / CRUD ,
相对来说就是对数据的查询动作多
8, 客户端有两种: DOS窗口…可视化的小工具sqlyog
Mysql数据库
mysql服务端:用来数据的维护,保存数据
mysql客户端:CRUD 增 删 改 查
SQL语句 定义
结构化查询语句(Structured Query Language)简称SQL,是一种特殊目的的编程语言,用来操作关系型数据库,同时也是数据库的扩展名.
注意:SQL不区分大小写
分类DML(Data Manipulation Language)数据操纵语言
insert, delete, update, select(插入,删除,修改,检索)
简称CRUD操新增Create、查询Retrieve、修改Update、删除Delete
DDL(Data Definition Language)数据库定义语言
create table之类
DCL(Data Control Language)数据库控制语言
rant、deny、revoke等,只有管理员才有相应的权限
DQL(Data Query Language)数据库查询语言
select 语法
数据库的常用操作创建库 库名:cgb2100 cgb2110
1.create databases cgb2100;
2.create databases cgb2110 default character set utf8;
设置字符集为国际编码utf8,jdk是中国编码,防止插入中文乱码
删除库 删除库名cgb2100
1.drop databases cgb2100;
必须删除存在的库
查看所有数据库
数据表的常用操作1.show databases;
使用(进入)数据库
use 数据库名;
1.use cgb2110;
创建表
create table 表名(字段名称 字段类型(字段长度),字段2,字段3…)
create table user(id int(2),
name varchar(10),
pwd varchar(10)
);
修改表 (添加一条属性)
alter table user add column age int(3);
修改表 表 表名 添加 列/字段 列名 类型 长度
删除表
drop table 表名;
drop table user;
查看表的描述
数据的常用操作desc 表名;
desc user;
查询表数据
select * from 表名;
select * from user;
新增
insert into 表名 values (第一个字段,第二个字段,..)
insert into user values(100,zhonguo,"abc",18);
值的个数,字段的类型和顺序要保持一致
如果是字符串,必须用 "" ''
插入的字段不能超过设置的长度,不然就会报错
排序
将tb_door表记录按照age排序
select * from 表名 order by 属性 ;
select * from user order by age;
select * from user order by desc;//降序排序
修改表记录
update 表名 set 字段名=新增;
update user set age=20;
修改tb_door表中id为1的记录
update tb_door set tel=555 where id=1;
删除表数据
数据库里的数据类型delete from 表名;
delete from user;
命名规则
字段名必须以字母开头,尽量不要使用拼音
长度不能超过30个字符(不同数据库,不同版本会有不同)
不能使用SQL的保留字
Oracle习惯全大写:USER_NAME,mysql习惯全小写:user_name
多个单词用下划线隔开,而非java语言的驼峰规则
数据类型整数:int
小数: double
精确的小数: decimal(m,n) numeric(m,n)其中m是总位数,n是小数位数
字符串: char(固定长度,查询高效,多余位置用空格代替) varchar(长度可变,省内存)
以utf8编码计算的话,一个汉字在utf8下占3个字节
日期:date(年月日) time(时分秒) datetime(年月日时分秒) timestamp(时间戳,存毫秒数)
blob二进制数据,可以存放图片,音频,视频,但是数据库里只会存他们的存放路径(d:/abc/1.jpg)(数据占用太大,备份缓慢)
字段约束用来约束字段的值, 通常是在创建表时就已经确定了哪个字段用哪种约束
唯一约束字段的值必须唯一,不能重复,使用uniqu
如果为一个列添加了主键约束,那么这个列就是主键,主键的特点是唯一且不能为空。通常情况
下,每张表都会有主键。
主键自增策略当主键为数值类型时,为了方便维护,可以设置主键自增策略
(auto_increment)设置了主键自增策略后,数据库会在表中保存一个AUTO_INCREMENT变量
值,初始值为1,当需要id值,不需要我们指定值,由数据库负责从AUTO_INCREMENT获取一个
id值,作为主键值插入到表中。而且每次用完AUTO_INCREMENT值,都会自增1.
非空约束create table abc(
id int primary key auto_increment
);
非空约束:如果为一个列添加了非空约束,那么这个列的值就不能为空,但可以重复。
唯一约束为password添加非空约束
create table user(
id int primary key auto_increment,
password varchar(50) not null
);
show tables;
insert into user values(null,null);//不符合非空约束
insert into user values(null,123;);
唯一约束:如果为一个列添加了唯一约束,那么这个列的值就必须是唯一的(即不能重复),但可以为空。
为username添加唯一约束及非空约束
基础函数 lowercreate table test(
id int primary key auto_increment,
username varchar(50) unique--唯一约束
);
show tables;
insert into test values(null,'lisi');
insert into test values(null,'lisi');--username的值要唯一,重复会报错的
select * from test;
SELECt 'ABC',LOWER('ABC') from dept; --数据转小写
upperselect upper(dname) from dept --数据转大写
lengthselect length(dname) from dept --数据的长度
substrSELECt dname,SUBSTr(dname,1,3) FROM dept; --截取[1,3]
concatselect dname,concat(dname,'123') X from dept --拼接数据
replaceselect dname,replace(dname,'a','666') X from dept --把a字符替换成666
ifnullselect ifnull(comm,10) comm from dept2 #判断,如果comm是null,用10替换
round & ceil & floorround四舍五入,ceil向上取整,floor向下取整
–直接四舍五入取整
select comm,round(comm) from emp1
–四舍五入并保留一位小数
select comm,round(comm,1) from emp
–ceil向上取整,floor向下取整
select comm,ceil(comm) ,floor(comm) from emp
推荐网站:www.runoob.com
内容主要来源cgblpx,皮皮霞老师



