第68节:Java中的MYSQL运用从小白到大牛
第68節:Java中的MYSQL運用從小白到大牛
前言
學習java必備要求,學會運用!!!
常見關系化數據庫
BootStrap是輕量級開發響應式頁面的框架,全局css組件,js插件.柵格系統是將頁面的寬度分為12等分.
bootstrap教程,SQL
col-xs-*: 手機屏幕 col-sm-*: 平板 col-md-*: PC電腦 col-lg-*: 超大屏幕數據庫crud操作
數據庫,什么是數據庫,數據的作用有哪些呢?
數據庫就是一個文件系統,如文件夾目錄一樣,存儲數據,很久很久以前是用sql命令來操作.
數據庫介紹,sql數據庫是structured query language 結構化查詢語言的縮寫,sql是為數據庫而建立的操作命令集,是一種功能齊全的數據庫語言.我們在使用它的時候,只要發出命令,就可以展示數據了,sql功能強大啊,但是也是很容易進行學習,使用起來也很方便呢,sql已經成為了數據庫操作的基礎,并且所有的數據庫基本上都支持sql.
sql數據庫 是結構化查詢語言, 簡稱為sql數據庫, 英文名: structured query language, 功能齊全的數據庫語言.
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: 數據控制語言,定義訪問權限,取消訪問權限,安全設置.
grantDQL: 數據查詢語言:
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;
查看數據庫定義時的語句
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;
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 byand 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
約束:
實體關系:
多對多: 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后帥氣小伙,良好的開發習慣;獨立思考的能力;主動并且善于溝通
簡書博客: 達叔小生
https://www.jianshu.com/u/c785ece603d1
結語
- 下面我將繼續對 其他知識 深入講解 ,有興趣可以繼續關注
- 小禮物走一走 or 點贊
轉載于:https://www.cnblogs.com/dashucoding/p/11140353.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的第68节:Java中的MYSQL运用从小白到大牛的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql-in关键字,分组查询,分页查
- 下一篇: Django两天搭建个人博客