Java中兩種常用的數據庫: MYSQL Oracle
MYSQL :開源免費的數據庫,小型的數據庫。由瑞典MySQL AB 公司開發,適合中小企業使用,由C語言和C++編寫的。已經被Oracle收購了MySQL6.x版本也開始收費。
Oracle :收費的大型數據庫,Oracle公司的產品。Oracle收購SUN公司,收購MYSQL。
MYSQL啟動:
1. 登入mysql:
格式1:cmd> mysql –u用戶名 –p密碼
例如:mysql -uroot –proot
格式2:cmd> mysql --host=ip地址 --user=用戶名 --password=密碼
例如:mysql --host=127.0.0.1 --user=root --password=root
SQL通用語法
1. SQL語句可以單行或多行書寫,以分號結尾
2. 可使用空格和縮進來增強語句的可讀性
3. MySQL數據庫的SQL語句不區分大小寫,關鍵字建議使用大寫
4. 例如:SELECT * FROM user。
5. 同樣可以使用/**/的方式完成注釋
6. MySQL中的我們常使用的數據類型如下
數據庫操作:database
創建數據庫* create database 數據庫名;
#創建數據庫數據庫中數據的編碼采用的是安裝數據庫時指定的默認編碼 utf8
CREATE DATABASE webdb_1;
查看數據庫
show databases;
查看某個數據庫的定義的信息:
show create database 數據庫名;
show create database webdb_1;
刪除數據庫
drop database 數據庫名稱;
drop database webdb_2;
切換數據庫:
use 數據庫名;
數據表操作:table
create table 表名(
字段名類型(長度) [約束],
字段名類型(長度) [約束],
...
);
類型:
varchar(n)字符串
int 整形
double 浮點
date 時間
timestamp 時間戳
刪除表格式:drop table 表名;
例如:drop table category;
修改表結構
/*
修改表添加列:alter table 表名 add 列名類型[長度] [約束];
*/
ALTER TABLE category ADD NAME INT;
/*
修改表修改列的類型長度及約束.:
alter table 表名 modify 列名類型[長度] [約束];
注意: 如果有數據,必須注意數據類型varchar-->int 容易有錯誤數據
*/
ALTER TABLE category MODIFY description INT;
ALTER TABLE category MODIFY description VARCHAR(20) NOT NULL;
/*
修改列名以及數據類型和約束:
alter table 表名 change 原列名新列名類型[長度] [約束];
*/
ALTER TABLE category CHANGE description descr INT;
插入表數據
往數據庫表中插入數據:使用關鍵字 insert [into]
格式:
包含主鍵:insert into 表名(字段1,字段2,...) values(值1,值2,...);
主鍵自增,省略主鍵:insert into 表名(不包含主鍵) values(不包含主鍵);
-- 包含主鍵:insert into 表名(字段1,字段2,...) values(值1,值2,...);
INSERT INTO category (cid,cname) VALUES(1,"服裝");
-- 主鍵自增,省略主鍵:insert into 表名(不包含主鍵) values(不包含主鍵);
INSERT INTO category (cname) VALUES("彩電");
批量插入數據
格式:
包含主鍵:insert into 表名(字段1,字段2,...) values(值1,值2,...),(值1,值2,...),(值1,值2,...)...
主鍵自增,省略主鍵:insert into 表名(不包含主鍵) values(不包含主鍵),(值1,值2,...),(值1,值2,...)...;
更新表數據,使用關鍵字 update(更新,修改) set(設置)
格式:
不帶條件過濾,一次修改列中所有的數據
update 表名 set 字段名=字段值,字段名=字段值,...;
帶條件過濾,使用關鍵字where
update 表名 set 字段名=字段值,字段名=字段值,... where 過濾條件;
刪除表數據使用關鍵字 delete(刪除) from(來自)
格式:
delete from 表名 [where 條件過濾];
delete from 表名刪除表中的所有數據,但是不會刪除主鍵自增
truncate table 表名;刪除表中的所有數據,會刪除主鍵自增,讓主鍵自增重置重1開始
主鍵約束使用關鍵字 primary key
非空約束使用關鍵字 not null
-- 創建唯一約束的第一種格式,創建表時,在字段后直接給出
-- 添加的第一種方式,在列名之后直接添加
CREATE TABLE persons(
Id_P INT PRIMARY KEY,
LastName VARCHAR(255) UNIQUE,
City VARCHAR(255) NOT NULL
);
-- 刪除主鍵
-- ALTER TABLE Persons DROP PRIMARY KEY
-- 刪除非空約束
ALTER TABLE persons MODIFY city VARCHAR(255);
刪除唯一約束 ALTER TABLE Persons DROP INDEX 名稱
定義約束的時候,如果沒有創建名稱,則名稱為字符串
ALTER TABLE persons DROP INDEX LastName;
MySQL數據庫密碼重置(擴展)
a. 停止mysql服務器運行輸入services.msc 停止mysql服務
b. 在cmd下,輸入mysqld --console --skip-grant-tables 啟動服務器,出現一下頁面,不要關閉該窗口
c. 新打開cmd,輸入mysql -uroot 不需要密碼
use mysql;
update user set password=password('abc') WHERE User='root';
d. 關閉兩個cmd窗口