MySQL數據庫常用語法|JDBC、Template常用方法歸納

數據庫語法歸納

第一大塊:入門四大類別數據庫操作(DDL DML DQL DCL)

一、DDL

  • a.數據庫

create database if not exists 數據庫名 character set 字符編碼格式;
drop database if exists 數據庫名;
show databses;
select database();
show create database 數據庫名;
alter database 數據庫名 character set 新字符編碼格式;
use 數據庫名;

  • b.表

create table 表名(字段名 字段類型,…);
create table 新表名 like 目標表名;
drop table 表名;
show tables;
desc 表名;
alter table 表名 rename to 新表名;
alter table 表名 字段名 character set 新字段名;
alter table 表名 add 字段名 字段數據類型;
alter table 表名 modify 字段名 字段新數據類型;
alter table 表名 change 字段名 新字段名 字段新數據類型;
alter table 表名 drop 字段名;

二、DML

insert into [表名(字段名…)] values(字段值);
delete from 表名 [where 條件];
truncate tabale 表名;
update 表名 set 字段名 = 字段值… [where 條件];

三、DQL

select 字段… distinct、as、空格、ifnull(字段名,字段值)、算術運算符、聚合函數
from 表名… as、空格
where 條件… and、between and、or、in(值…)、is(null)、isnot(null)、比較運算符、邏輯運算符
order by 字段 asc… asc、desc
group by 字段… [having 同where條件,額外可添加聚合函數]
limit 開始索引 信息條數

四、DCL

create user ‘’@’’ identified by ‘’;
drop user ‘’@’’;
update user set password=password(’’) where user=’’;
set password for ‘’@’’=password(’’);
show grants for ‘’@’’;
grant 權限列表 on 數據庫.表名 to ‘’@’’; 可以使用通配符,權限列表字段可以使用all關鍵字代表所有
revoke 權限列表 on 數據庫名.表名 from ‘’@’’;
第二大塊 約束

一、非空約束

not null
alter table 表名 modify 字段名 數據類型 [not null] 通過modify添加或去除非空約束
alter table 表名 drop 字段名 [not null];
alter table 表名 add 字段名 數據類型 [not null]

二、唯一約束

unique
alter table 表名 modify 字段名 數據類型 [unique] 通過modify可以添加唯一約束,但是不可以刪除
alter table 表名 drop 字段名 unique; 刪除含有唯一約束的字段必須在後面添加修飾符
alter table 表名 add 字段名 數據類型 [unique]

三、主鍵約束

primary key
alter table 表名 modify 字段名 數據類型 [primary key] 通過modify可以添加主鍵約束,但是不可以刪除
alter table 表名 drop 字段名 [primary key]; 刪除含有唯一約束的字段必須在後面添加修飾符
alter table 表名 add 字段名 數據類型 [primary key]
auto_increment
alter table 表名 modify 字段名 數據類型 [primary key] [auto_increment] 通過modify可以添加或者刪除自動增長屬性,可以單獨寫自動增長屬性
alter table 表名 drop 字段名 [primary key];
alter table 表名 add 字段名 數據類型 [primary key] [auto_increment];

四、外鍵約束

[constraint 外鍵名] foreign key(外鍵字段名) references 主表名(主表關聯外鍵字段名)
alter table 表名 drop foreign key(外鍵名); 這裏的刪除外鍵操作還是比較特別的,需要額外記憶
alter table 表名 add [constraint 外鍵名] foreign key(外鍵字段名) 主表名(主表關聯外鍵字段名); 創建外鍵也是有簡寫形式
第三大塊 多表查詢

一、內連接查詢

  • a.顯示內連接

select … from … where 條件

  • b.隱式內連接

select … from 左表 [inner] join 右表 on 條件;

二、外連接查詢

left right
select … from 左表 left [outer] join 右表 on 條件;

三、子連接查詢(就是select語句創建出來的表作爲虛擬表或者條件)

  • a.單行單列

select … from … where [select語句] 條件

  • b.單行多列

select … from … where [select語句] in(值…)

  • c.多行多列

select … from …[select語句] where 條件
第四大塊 事務、隔離級別

一、事務

start transaction;
commit;
rollback;

二、隔離級別

  • a.隔離級別

read uncommitted
read committed
repeatable read
serializable

  • b.設置

select @@tx_isolation;
set global transaction isolation level 隔離級別字段;

數據庫JDBC

第一大塊 五個對象

一、DriverManager

Class.forName(“com.mysql.jdbc.Driver”);
DriverManager.getConnection(jdbc:mysql//ip地址(域名):端口號/數據庫名);

二、Connection

Statement createStatement();
PreparedStatement prepareStatement(String SQL語句);
void setAutoCommit(boolean 標識符); false代表開啓事務
void commit();
void rollback();

三、Statement

int executeUpdate(String SQL語句);
ResultSet executeQuery(String SQL語句)

四、PreparedStatement

int executeUpdate();
void setXxx(參數);
ResultSet executeQuery();

五、ResultSet

T(數據) getXxx(參數);
第二大塊 連接池、Spring框架

一、C3P0連接池

DataSource ComboPoolDataSource();
DataSource ComboPoolDataSource(Sring 配置文件內部設置種類名);
Connection getConnection(); //DataSorce對象調用
void close();//Connection對象調用

二、Druid連接池

DataSource DruidDataSourceFactory.createDataSource(pro); //參數是一個雙列集合
Connection getConnection();
void close();

三、Spring JDBCTemplate數據庫連接框架

Template template = new JdbcTemplate(ds); //這裏的參數是連接池對象
update(); //返回值是int型,適用於Statement和PrepareStatement對象的語句
queryForMap(); //這個方法只能封裝一個結果集,也就是一行數據
queryForList(); //封裝進去的Map對象
query(); //用於封裝一個對象到List集合中,有兩種方式:1.自己定義封裝方式使用 RowMapper重寫其中抽象方法mapRow(ResultSet rs, int i) 2.使用已經寫好的實現類 BeanPropertyRowMapper(emp.class),注意哦這個方法使用前需要先把你要分裝的對象的成員變量裝箱,否則一些基本類型的變量無法接收null值,那麼就會報錯。
queryForObject()//查詢聚合函數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章