Javaweb基础入门(一)之mysql知识总结

Mysql知识总结

1. 常见数据库

(1) Oracle 甲骨文
(2) DB2 IBM
(3) SQL Server 微软
(4) Sybase 赛尔斯
(5) Mysql 甲骨文


2. Sql语法

(1) 可以在单行或者多行书写,以分号结尾
(2) 可用空格和缩进来增强语句的可读性
(3) 不区分大小写,建议使用大写


3. 列类型

(1) Int 整型
(2) Double 浮点型,如double(5,2) 最多五位,有两位小数
(3) Char 固定长度字符串 char(255)
(4) Varchar 可变长度字符串 varchar(65535)
(5) Text 字符串,mysql 独有的
(6) Blob 字节类型
(7) Date 日期 格式:yyyy-MM-dd
(8) Time 时间 格式:HH:mm:ss
(9) Timestamp 时间戳


4. SQL语句的分类

DDL(表结构操作,创建删除修)
(1) 查看所有数据库 show databases;
(2) 切换 use 数据库名;
(3) 创建数据库库 create database 数据库名;
(4) 删除数据库 drop database 数据库名;
(5) 修改数据库编码 alter database 数据库名 character set utf8;
(6) 创建表: create table 表名 (列名1 列类型1,列名2列类型2);
(7) 查看当前数据库中所有表 show tables;
(8) 查看指定表的创建语句 show create 表名;
(9) 查看表结构 desc 表名;
(10)删除 drop table 表名;
(11)修改表 alter table 表名;
(12)添加列: alter table 表名 add(列名 列类型…);
(13)修改列类型:alter table 表名 modify 列名 列类型;
(14)修改列名 :alter table 表名 change 原列名 新列名;
(15)删除列:alter table 表名 drop 表名;
(16)修改表名:alter table 原表名 rename to 新表名;

DML(表记录进行更改,增删改)
(1) 插入数据
insert into 表名(列名1,列名2…) values(列值1,列值2…);
(2) 修改数据
update 表名 set 列名1=列值1,列名2=列值2 where 条件
注意:不能出现=null
(3) 删除数据
Delete from 表名 where 条件;
Truncate table 表名 先删除drop 该表 ,在create 该表,无法回滚
注意:字符串类型,必须使用单引号

DCL(对用户创建及授权)
(1) 创建用户
create user 用户名&ip地址 indentified by ’密码’;
create user 用户名&’%’ indentified by ’密码’; 任意IP
(2) 给用户授权
Grant 权限1,权限2… on 数据库 to用户名&ip地址;
Grant all on 数据库 to用户名&ip地址; 所有权限
(3) 撤销授权
Revoke 权限1,权限2… on 数据库 from 用户名&ip地址;
(4) 查看权限
Show grants for 用户名&ip地址;
(5) 删除用户
Drop user 用户名&ip地址;

DQL(表记录进行查询)
基础查询
(1) 查询所有列 select * from 表名;
(2) 查询指定列 select 列1,列2… from 表名;
(3) 完全重复记录只读一次 select distinct列1,列2… from 表名;
(4) 列运算

列运算包括:
- 数量类型列可以加减乘除运算 select sal*1.5 from 表名;
- 字符串类型可以连接运算 select concat(列名1,列名2) from 表名;
- 给列起别名 select concat(列名1,列名2) as 别名from 表名; 其中as可省略 如 Select 列1,列2 别名,… from 表名;
- 任何数据和null相加,结果为null
- 不能用“+”连接字符串
注意:当给的值无法转换为数量类型的,当做0来看

条件控制
(1) 条件查询
select * from 表名 where 条件;
(2) 模糊查询 like
例如:
姓张的,两个字:select * from 表名 where ename like ‘张_’;
名字中有某字的 select * from 表名 where ename like ‘%刚’;

排序 order by
(1) 升序(asc,默认) select * from 表名order by 列名 asc;
(2) 降序(desc) select * from 表名order by 列名 desc;

聚合函数:
(1) Count(有效行数) select count(*) from 表名
(2) Max(最大值) select max(列名) from 表名
(3) Min(最小值) select min(列名) from 表名
(4) Sum(求和) select sum(列名) from 表名
(5) avg (平均) select avg(列名) from 表名

分组查询 grop by
select 列名,count(*) from 表名 grop by 列名;
注意:
- from 前可以放聚合函数,可以放列名,需要和grop by 一致
- 分组前条件用where,分组后用having。如 Select from where grop by having order by

分页查询 limit
Limit 查询指定范围的数据。如 select * from 表名limit 起始页,分页单位;
查询某页: (当前页-1)*分页单位


5. 编码

(1) 查看编码 show variables like ‘char%’;

(2) 如果Character_set_clientutf8 无论客户端发送什么编码的数据,mysql都当成utf8的数据
修改客户端的数据格式:
Character_set_client 修改为gbk
Set Character_set_client=gbk; 只在当前窗口有效

(3) Character_set_resultsutf8 把数据用utf8编码发给客户端
修改客户端的数据格式:
Character_set_results 修改为gbk
Set Character_set_results =gbk; 只在当前窗口有效

(4) 一劳永逸的办法
在总配置文件 my.ini中进行配置,
[client] port=3306 [mysql] default-character-set=gbk;


6. 备份与恢复

(1) 数据库导出sql脚本(备份数据库内容,并没有数据库创建)
mysqldump –u 用户名 –p密码 数据库名>脚本路径;

(2) 执行sql脚本(备份恢复)
不登录:mysql -u用户名 –p密码 数据库名<脚本路径;
登录:source 脚本路径


7. 约束

(1) 主键约束(唯一标识)
特点:非空 唯一 被引用(学习外键)
eg: id int primary key; primary key(字段名);
修改表主键 alter table 表名 add primary key(字段名);
删除表主键 alter table 表名 drop primary key;

(2) 主键自增长(整数)(auto_increment)
eg: id int primary key auto_increment

(3) 非空约束(not null)
eg:name id int not null;

(4) 唯一约束(unique)
eg:name id int not null unique;

(5) 概念模型
对象模型:可以双向关联,而且引用的是对象,而不是一个主键
关系模型: 只能多方引用一方,而且引用的只是主键,而不是一整行记录

实体和实体之间的关系:
一对一:夫妻 (从表的主键是外键)
constraint 外键名 foreign key(从表主键) references 主表名(主键);

一对多:医院和部门

多对多:老师和学生
两张主表(无关系),一张从表(关系表,两个外键)

(6) 外键约束
特性:引用主键 可以重复 可以为空 一张表可以有多个外键
创建时:
constraint 外键名 foreign key(列名) references 主表名(主键);
修改时:
alter table 表名 add constraint 外键名 foreign key(列名) references 从表名(主键);


8. 多表查询

(1) 合并结果集(两张表的结果类型相同,)

select * from ab union all select * from cd ;(不去重)
select * from ab union select * from cd ;(去重)

(2) 连接查询

内连接 笛卡尔积
方言:select * from 表名1 别名1,表名2 别名2 where 别名1.列名=别名2.列名;
标准:select * from 表名1 别名1, inner in 表名2 别名2 on别名1.列名=别名2.列名;
自然:select * from 表名1 别名1 natural join表名2 别名2

外连接 无数据填null 部位
左外(外表一主一次,左外即左边为主)
select * from 表名1 别名1,left outer join 表名2 别名2 on别名1.列名=别名2.列名;
右外(外表一主一次,右外即右边为主)
select * from 表名1 别名1,right outer join 表名2 别名2 on别名1.列名=别名2.列名;
全外(不支持

自然连接

(3) 子查询
查询中有查询
查询的位置 :where 后 或者 from
条件:
单行单列 select * from 表名1 别名1 where 列名= (select 列名 from 表名2);
多行单列 select * from 表名1 别名1 where 列名1 (in all any ) (select 列名 from 表名2);
单行多列 select * from 表名1 别名1 where (列名1,列名2)in (select列名1,列名2 from 表名2 where 条件 );
多行多列 select * from 表名1 别名1 ,(select ….) 别名2 where 条件;
步骤:找出要查询的列,表,条件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统介绍 图书馆管理系统主要的目的是实现图书馆的信息化管理。图书馆的主要业务就是新书的借阅和归还,因此系统最核心的功能便是实现图书的借阅和归还。此外,还需要提供图书的信息查询、读者图书借阅情况的查询等功能。项目实施后,能够提高图书馆的图书借阅、归还流程,提高工作效率。整个项目需要在两个月的时间内交付用户使用。 操作注意事项 (1)本系统的用户名为:tsoft,密码为:111 (2)读者类型不同,可借图书的本数也有所区别。 操作流程 (1)用户登录图书馆管理系统后,可看到图书借阅排行榜,通过排行榜可以看出借阅图书的名称、图书类型、借阅次数等相关信息。 (2)单击“系统设置”/“图书馆信息”命令,对图书馆信息进行设置操作。 (3)单击“系统设置”/“管理员设置”命令,对管理员信息进行添加、权限设置、查询及删除操作。 (4)单击“系统设置”/“参数设置”命令,对办证费用及有效期限信息进行添加操作。 (5)单击“系统设置”/“书架设置”命令,对书架信息进行添加、修改及删除操作。 (6)单击“读者管理”/“读者类型管理”命令,对读者类型信息进行添加、修改及删除操作。 (7)单击“读者管理”/“读者档案管理”命令,对读者信息进行添加、修改及删除操作。 (8)单击“图书管理”/“图书类型设置”命令,对图书类型信息进行添加、修改及删除操作。 (9)单击“图书管理”/“图书档案管理”命令,对图书信息进行添加、修改及删除操作。 (10)单击“图书借还”/“图书借阅”命令,对图书借阅信息添加操作。 (11)单击“图书借还”/“图书续借”命令,对图书续借信息进行添加操作。 (12)单击“图书借还”/“图书归还”命令,对图书归还信息进行添加操作。 (13)单击“系统查询”/“图书档案查询”命令,对图书档案信息进行查询操作。 (14)单击“系统查询”/“图书借阅查询”命令,对借阅的图书信息进行查询操作。 (15)单击“系统查询”/“借阅到期提醒”命令,对借阅到期提醒信息进行查询操作。 (16)单击“更改口令”按钮,对当前的用户密码进行修改操作。 (17)单击“退出系统”按钮,退出当前操作系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值