整理一下自己在java-web部分,学习Mysql学习内容;
01—数据库,数据库服务器和表,三者的关系
所谓数据库服务器,就是在机器上安装上一个数据库管理程序,这个管理程序可以管理多个数据库,一 般开发人员,会针对每一个引用设计一个数据库,在每一个数据库中,为了保 存应用中的实体的数据,一般会在数据库中创建多个表,将实体的数据储在表中;
02—SQL语言;
sql -struct query language;它是结构性查询语言,而非C语言C++ 等 过程性描述语言;他有自己的一套语法,但是各厂商一直在增强它的过程性的特征;
03–SQL语言的分类:
DDL:Data Define Language (数据定义语言)
在数据库的层面上,定义数据库的对象,--数据表-索引-视图;
DML:Data Manipluation Language( 数据操作语言)
数据操作 包括对数据库的表的update insert delete
DCL: Data Control Language (数据控制语言)
指定设置用的限权
DQL: Dta Query Language (数据查询语言)
select查询表中的数据
04- mysql入门级操纵
01-登录: -u用户名 -p密码 (exit)退出
02-查看全部数据库:
show databases ;
使用: use 数据库名字
查看当前: select database();
查看某个数据库的创建信息:
show create database + 名字;
DDL----
03-创建数据库:
create datebase + 数据库名字;
创建数据库, 并指定字符集,校对规则:
create database 名字 + set character 字符集 collate 校对规则;
(补充:校对规则就是当前编码表下的字符的表顺序:例如,ascii中的 a B c
的编码顺序分别是 97 66 99 ,那么它们之间的表关系是啥呢? 很显然
区分与不区分大小写的比较结果是不同的,这里的区分和不区分就可以理解
为他的校对规则;一般每一个字符集都一个或者多个校对规则,
常见: ci :不区分大小写 cs :区分大小写 _bin:编码比较)
04-修改数据库:
alter database 数据库名 + 修改的内容;
05-删除数据库:
drop database 数据库名字;
DML–
01:创建表;
create table 表名(
列名1 列的类型 约束,
列名2 列的类型(长度) 约束;
);
(补充:列的类型, text-文本
bold 二进制
date : YYYY:MM:DD
time: hh:mm:ss
datetime:YYYY-MM-DD-hh
timestamo:YYYY-MM-DD hh:mm 默认当前时间...
例:
create table myBank(
id int primary key AUTO_INCREMENT,
username varchar (20),
password varchar (20),
moeny int,
);
02:查看表:
查看所有: show tables;
查看表的创建过程: show create table 名;
查看表结构: desc 名;
03:修改表(alter):
-添加列(add):
alter table 表名 add 列名 列的类型 列的约束;
-修改列(modify)
alter table 表名 modify 列名 修改的内容;(varchar(2))
-修改列名(change):
alter table 表名 change 旧列名 新列名;
-删除列(drop):
alter table 表名 drop 列名;
-修改表名:
rename table 表名 to 新名;
-修改表的字符集:
alter table 表名 character set 字符集;
04:删除表
drop table 表名;
CRUD
**insert---插入数据**:
insert into 表名 (列名1 , 列名2 , 列名3) values(值1,值2 ,值3);
-简单插入
insert into表名 values( 值1,值2 ,值3 );
-插入部分列
insert into 表名 ( 列名1) values( 值1 );
-批量插入:
insert into 表名 values
( 值1 , 值2) ,
( 值1 , 值2) ,
( 值1 , 值2) ;
delete--删除记录
delete from 表名 [where条件]
(补充: delete和truncate 前者是DML 逐条删除,后者是 DDL一次性删除表,再
重新建表)
update---更新表记录:
例如:
update 表名 set 列名1=新值,列名2=新值[where 条件]
select--查询表记录:
01-简单查询:
select [distinct] [*] [列名1 , 列名2] from 表名 [where 条件]
distinct 去查复 * 查询全部
02-别名查询:
--表列名:
select 别名.列名1 , 别名.列名1 from 表名 as 别名;
多用于多表查询;
--列别名:
select 列名 as 别名 from 表名;
这样查询的目的是,把自己的表,翻译给别人看;
03-运算查询(在查询后的结果上进行计算,以表格的形式展示出来):
加减乘除
select * , price * 5 as 新列名 from 表名;
04-条件查询 [ where ]
05-模糊查询:
-:一个字符;
%:多个字符
例:select * from 表名 where 列名 % 表 %;
查询所有含有 表 的 列名;
06-在某个范围内获取值;
例:查询id 在1 -4 -5之间的信息;
select * from 表名 where id in( 1 , 4 ,5);
聚合函数:
sum();求和 avg() 求平均值 count ()统计数量 max()最大值
min() 最小值