第68節:Java中的MYSQL運用從小白到大牛javascript
學習java
必備要求,學會運用!!!css
常見關係化數據庫html
BootStrap
是輕量級開發響應式頁面的框架,全局css
組件,js
插件.柵格系統是將頁面的寬度分爲12等分.java
bootstrap
教程,SQL
mysql
col-xs-*: 手機屏幕
col-sm-*: 平板
col-md-*: PC電腦
col-lg-*: 超大屏幕
複製代碼
數據庫
crud
操做jquery
數據庫,什麼是數據庫,數據的做用有哪些呢?redis
數據庫就是一個文件系統,如文件夾目錄同樣,存儲數據,好久好久之前是用sql
命令來操做.算法
數據庫介紹,sql
數據庫是structured query language
結構化查詢語言的縮寫,sql
是爲數據庫而創建的操做命令集,是一種功能齊全的數據庫語言.咱們在使用它的時候,只要發出命令,就能夠展現數據了,sql
功能強大啊,可是也是很容易進行學習,使用起來也很方便呢,sql
已經成爲了數據庫操做的基礎,而且全部的數據庫基本上都支持sql
.spring
sql
數據庫 是結構化查詢語言, 簡稱爲sql
數據庫, 英文名: structured query language
, 功能齊全的數據庫語言.sql
sql
數據庫的優勢:
它是非過程化語言,是統一的語言,是全部關係數據庫的共同語言.
一個sql
數據庫是表的集合,它是由一個或多個sql
模式定義的,sql
數據表由行集構成,一行是列的序列集合,每行與行對應的一個數據項,一個表或者一個基本表或者是視圖,.基本表是實際尺寸在數據庫的表,而視圖是由若干基本表或其餘視圖構成的表的定義.一個基本表能夠拷一個或多個存儲文件,一個存儲文件也能夠存放一個或多個基本表,每一個存儲文件與外部存儲上的一個物理文件對應.
數據庫是按照數據結構來組織,存儲和管理數據的倉庫,它產生於距今六十多年前.數據庫的基本結構分三個層次,英文名database
數據庫,有三種數據種類.
數據庫按照數據結構來組織,存儲和管理數據的創建在計算機存儲設備上的倉庫.數據庫是能夠在計算機內進行長期存儲的,有組織,可共享的數據集合.
做用:用來存儲數據,具備訪問權限能夠限制不一樣人的不一樣操做.
java
開發工程師
2
年以上的經驗,基礎號 理解io
,多線程,集合等基礎框架 對jvm
原理的瞭解. mvc,spring,mybatis,Webservice
等 主流開發框架和技術,各類算法,數據庫查詢語言 熟悉mysql,oracle
等數據庫,有必定的數據庫設計經驗,瞭解Linux,Unix
等. html,css,javascript,jquery,
eclipse,myeclipse
等
瀏覽器: html/css/js
用於顯示頁面 服務器: javaee
後臺程序 數據庫
常見的數據庫:
mysql
: 是開源免費的, 適用於中小型企業的數據庫. sun
收購mysql
, sun
公司被oracle
收購了. 而後就開始收費了.
mariadb
: 是mysql
開源版的一個分支.
oracle
: 甲骨文公司. 收費軟件,適用於大型電商網站.
sun
公司擁有了java
.google
收購了安卓. 就致使了 sun
->google
db2
: IBM公司,解決方案:軟件和硬件.銀行系統大多采用db2
.
sqlserver
: 用於windows
裏面.大學教學採用sqlserver
,圖形化工具.
非關係型數據庫: key
: value
mongodb
:
redis
:
關係型數據庫:
用來描述實體與實體之間的關係.
E-R
關係圖
E-R
表明:
實體:方框,屬性:橢圓,關係:菱形.
mysql
數據庫服務器 mysql
server
進行刪除mysql
MYSQL
的安裝
有「Typical
(默認)」、「Complete
(徹底)」、「Custom
(用戶自定義)」三個選項,選擇「Custom
」,按「next
」鍵繼續
MySQL Server
, Client Programs
, Documentation
同理,點擊.
「Detailed Configuration
(手動精確配置)」、「Standard Configuration
(標準配置)」
「Developer Machine
(開發測試類,mysql
佔用不多資源)」、「Server Machine
(服務器類型,mysql
佔用較多資源)」、「Dedicated MySQL Server Machine
(專門的數據庫服務器,mysql
佔用全部可用資源)」
「Decision Support(DSS)/OLAP
(20個左右)」、「Online Transaction Processing
(OLTP
)(500個左右)」、「Manual Setting
(手動設置,本身輸一個數)」
通常選UTF-8
mysql
語句
DDL
數據定義語言,用於定義數據庫,
create建立
drop刪除
alter修改
複製代碼
DML
: 數據操做語言,用於操做數據
insert 插入
update 修改
delete 刪除
複製代碼
DCL
: 數據控制語言,定義訪問權限,取消訪問權限,安全設置.
grant
複製代碼
DQL
: 數據查詢語言:
select 查詢
from
where
複製代碼
create database 建立數據庫
create database dashucoding;
create database dashucoding character set字符集 collate校對規則
create database
create database dashucoding character set utf8;
複製代碼
數據庫的建立
登陸數據庫 mysql -uroot -padmin
建立數據庫 create database stu;
建立數據庫同時指定字符集 create database 數據庫的名字 character set 字符集
create database stu character set utf8
字符集是一套符號和編碼,校對規則 是在字符集內用於比較字符的一套規則.
create database stu character set utf collate utf8_bin;
展現數據庫 show databases;
informartion_schema
performance_schema
mysql
複製代碼
查看數據庫定義時的語句 show create database
數據庫的名字 show create database stu;
修改數據庫
修改數據的字符集 alter database 數據庫的名字 character set 字符集
alter database stu character set gbk;
刪除數據庫
drop database 數據庫的名字
drop database stu;
切換數據庫 use 數據庫名字
use student;
查看當前使用的數據庫 select database();
建立表
create table 表名(列名 列的類型 約束,列名2 列的類型 約束);
複製代碼
create table student ( sid int primary key, sname varchar(31), sex int, age int);
列的約束: 主鍵的約束: primary key
, 惟一的約束: unique
, 非空約素: not null
,
列的類型: char
: 固定長度 varchar
: 可變長度
date
:
date : YYYY-MM-DD
time : hh:mm:ss
datetime : YYYY-MM-DD hh:mm:ss 默認值爲null
timestamp : YYYY-MMM-DD hh:mm:ss 默認使用當前時間
複製代碼
text
:用了存放文本 blob
存放二進制
查看錶 show tables
查看錶的定義 show create table student;
查看錶的結構 desc student;
修改表 add
添加列 modify
修改列 change
修改列名 drop
刪除列 renamme
修改表名
添加列 alter table 表名 add 列名 列的類型 列的約束
alter table student add chengji int not null;
修改列 alter table student modify sex varchar(2);
desc student;
修改列名 alter table student change sex gender varchar(2);
刪除列 alter table student drop chengji;
修改表名 rename table student to dashucoding;
修改表的字符集 show create table student;
alter table student character set gbk;
刪除表 drop table student;
數據庫: sql
的分類: DDL
數據庫的定義,與表的結構: create
, drop
, alter
DML
數據操縱語言 insert
update
delete
DCL
數據控制語言 設置用戶的訪問權限
DQL
數據查詢語言 select form where
數據庫 建立數據庫 create database 數據庫的名字
查看數據庫 show databases;
查看全部的數據庫 查看數據庫定義 show create database 數據庫名字
select database();
查看當前使用的數據庫 修改數據庫 alter database character set 字符集
刪除數據庫 drop database 數據庫名字
選中數據庫 use
數據庫的名字
表數據的操做 建立表create table 表名(列名 列的類型 約素);
列的約素: 主鍵的約素:primary key
惟一約素: unique
非空約素: not null
刪除表:drop table 表名
查看錶:show tables
查看當前數據庫中全部的表名 show create table 表名
查看錶的定義結構 desc 表名;
查看錶的結構 添加列 alter table 表名 add 列名 列的類型 列的約束
修改列 alter table 表名 modify 列名 列的類型 列的約束
修改列名 alter table 表名 change 舊列名 新列名 列的類型 列的約束
刪除列 alter table 表名 drop 列名
表的字符集 alter table 表名 character set 字符集
修改表名 rename table 舊錶名 to 新的表名
sql
完成對錶中數據的操做 插入數據: insert into 表名 (列名1, 列名2, 列名3) values (值1, 值2, 值3);
insert into studnet(sid,sname,sex,age) values (1, 'dashu', 1, 23);
簡單寫法 insert into student values(2,'dashu', 1, 23);
查看錶中的數據 select * from student;
批量插入 insert into student values (3,'da',1,32),(4,'coding',1,32);
解決亂碼的問題: 修改my.ini
配置,先暫停服務,57
行修改gbk
,保存重啓便可.
刪除的操做: delete from 表名 [where條件];
delete from student where sid=6;
delete from student;
會刪除全部的數據;
delete
刪除數據和truncate
刪除數據有什麼區別?
delete
: 屬於DML
一條一條的刪除表中的數據. truncate
: 屬於DDL
先刪除表再重建表.
如何刪除的數據比較少,delete
比較高效,刪除的數據多,就truncate
比較高效.
查詢
select [distinct] [*] [列名,列名2] from 表名 [where 條件];
更新表:
update 表名 set 列名=列的值, 列名2=列的值2 [where 條件];
update student set sname='dahsu' where sid=5
表數據的操做 insert into 表名 values(值1,值2,值3)
刪除記錄 delete from 表名 [where 條件]
更新 update 表名 set 列名=列到的值 [where 條件];
查看數據 select * from student;
select
查詢 數據查詢的操做 select [distinct 可選參數,去除重複的數據] [*] [列名,列名2] from 表名 [where 條件];
distinct
: 去除重複的數據.
create table category(cid int primary key auto_increment, cname varchar(10), cdesc varchar(31) );
插入數據 insert into category values (null, 'dashu', 'dashucoding');
查詢數據 select * from category;
create table product(
pid int primary key auto_increment,
pname varchar(10),
price double,
pdate timestamp,
cno int
);
複製代碼
select * from product;
查詢商品名稱和商品價格: select pname,price form product;
別名查詢,關鍵字爲as
,能夠省略 別名: select p.pname, p.price form product p;
select p.pname, p.price from product as p;
列別名: select pname as 商品名稱, price as 商品價格 from product;
select pname 商品名稱, price 商品價格 from product;
去除重複內容: select price from product;
select distinct price from product;
select *,price*1.5 as 折後價 from product;
select * from product where price > 100;
like
: 模糊查詢:
_: 表明一個字符
%: 表明多個字符
複製代碼
in
查詢 在某個範圍內的值 select * from product where con in(1,2,3);
排序查詢:order by
關鍵字 asc
: ascend
升序 desc
: descend
降序
按照價格排序: select * from product order by price;
select * from product order by price desc
降序 select * from product where pname like '%dashu%';
select * from product where pname like '%dashu%' order by price asc;
聚合函數
// 一些函數
sum(): 求和
avg(): 求平均值
count(): 統計數量
max(): 最大值
min(): 最小值
複製代碼
select sum(price) from product;
select avg(price) from product;
select count(*) from product;
select avg(price) from product;
select * from product where price > (select avg(prive) from product);
分組: group by
select con, count(*) from product group by cno;
select cno, avg(price) from product group by con;
having
關鍵字
select cno, avg(price) from product group by con having avg(price) > 60;
select ... from ... where .. group by .. having .. order by ..
from.. where.. group by ... having.. select .. order by ...
複製代碼
SQL分類:
DDL: 數據庫的定義: create, drop, alter
DML: 數據操縱語言: insert, update, delete
DCL: 數據控制語言: 設置用戶的訪問權限
DQL: 數據查詢語言: select, from, where
複製代碼
表中數據操做:
CRUD
插入數據: insert into 表名 (列名1,列名2) values(值1,值2);
insert into 表名 values(值1,值2);
批量插入: insert into 表名 values (值1,值2),(值1,值2);
刪除數據: delete from 表名 where 條件
truncate table 表名: 先刪表,再重建
update 表名 set 列名=值, 列名=值 where 條件
select [distinct] [*] [ 列名1,列名2 ]
from 表名 where 條件 group by ...
having 條件過濾 order by 排序
複製代碼
asc: ascend
desc: descend
order by: order by price asc
group by
and or not
關係運算 <> 不等於
int 範圍
like 查詢
sum();
avg();
min();
max();
count();
複製代碼
MySQL
數據庫的安裝和配置 配置Mysql
按照bin
目錄到Path
中
命令:
mysql –u用戶名 –p密碼
複製代碼
通常會在數據庫建立多個表,以保存程序中實體的數據.Structured Query Language
, 結構化查詢語言,SQL
是用來存取關係數據庫的語言.
功能:
查詢、操縱、定義和控制關係型數據庫
DDL
(數據定義語句)-Data Definition Language
DML
(數據操縱語句)-Data Manipulation Language
DCL
(數據控制語句)-Data Control Language
DQL
(數據查詢語句)-Data Query Language
1. 用來定義數據庫的對象
2. 在數據庫表中更新,增長和刪除記錄
3. 用於設置用戶權限
4. 數據查詢
複製代碼
約束:
primary key
:不容許爲空,不容許重複unique
not null
Insert 增長數據
Update 更新數據
Delete 刪除數據
Select 查找數據
複製代碼
實體關係:
多對多: n:m
一對多: 1:n
一對一: 1:1
複製代碼
重置Root
密碼:
// 案例:
建立數據庫
create database stu;
使用utf8字符集
create database stu character set utf8;
帶規則
create database stu character set utf8 collate utf8_general_ci;
修改字符集
alter database stu character set gbk;
刪除數據庫
drop database stu;
查看全部數據庫
show databases;
查看數據庫的字符集
show create database stu;
操做員工表:
create table employee (id int primary key auto_increment,
name varchar(20) not null,
gender varchar(10),
birthday date,
entry_date date,
job varchar(30),
salary double,
resume text
);
刪除表
drop table student;
複製代碼
添加
alter table student add name varchar(20);
修改
alter table student modify name varchar(30);
刪除列
alter table student drop gender;
修改表名
rename table student to student_s;
修改表的 字符集
alter table student character set utf8;
修改列名name -> username
alter table student change name username varchar(20) not null;
查看錶結構:
show tables;
show create table student;
desc student;
複製代碼
update student set salary = 2000;
update student set salary = 3000 where name = 'dashu';
update student set salary = 2000, job = 'java' where name= 'dashu';
update student set salary = salary + 1000 where name='dashu';
delete from student where name='da';
刪除表中全部記錄
delete from student;
查詢表中全部信息
select * from student;
select name, sex from student;
select *,chinese+math+english from exam;
使用別名
select *,chinese+math+english as 總分 from exam;
select * from student where name='dashu';
select * from exam where chinese+math+english>200;
複製代碼
in:
select * from exam where math in(89,75,91);
使用order by
select *,chinese+math+english as 總分 from exam order by 總分 desc;
select count(id) from exam;
統計總分大於250的人數有多少?
select count(id) from exam where chinese+math+english>250;
統計數學成績大於或等於90的學生有多少個?
select count(math) from exam where math>=90;
使用avg函數
select avg(math) from exam;
查詢購買了幾類商品,而且每類總價大於100的商品
select product,sum(price) from orders where price>100 group by product;
複製代碼
mysql-5.5.27-winx64
,查百度.
若是看了以爲不錯
點贊!轉發!
達叔小生:日後餘生,惟獨有你 You and me, we are family ! 90後帥氣小夥,良好的開發習慣;獨立思考的能力;主動而且善於溝通 簡書博客: 達叔小生 www.jianshu.com/u/c785ece60…