数据库、数据表操作
文章目錄
- 數據庫
- 數據庫管理系統
- Java類和數據表的對應關系
- 常?數據庫
- MySql數據庫
- SQL語句的書寫語法
- SQL中數據的常?數據類型
- 數據庫操作: database
- 1. 創建數據庫
- 2. 查看數據庫
- 3. 刪除數據庫
- 4. 使?數據庫
- 表操作:table
- 1. 創建表
- 2. 查看表
- 3. 刪除表
- 4. 修改表結構格式
- 表中記錄操作
- 插入表操作
- 更新表記錄
- 刪除表記錄
數據庫
數據庫就是存儲數據的倉庫,其本質是?個?件系統,數據按照特定的格式將數據存儲起來。?戶可以
對數據庫中的數據進行增加,修改,刪除及查詢操作。
集合、文件和數據庫三者的異同點 :
都成文件,數據的操作就更成問題了
數據庫管理系統
數據庫管理系統(DataBase Management System,DBMS):指?種操作數據庫、管理數據庫的大型
軟件。
作用:用于數據庫的建立、使用和維護數據庫。
注意:
數據庫管理系統的功能:實現了對多個數據庫進?統?管理和控制,以保證數據庫的安全性和完整性
- 數據庫與數據庫管理系統的內部結構
Java類和數據表的對應關系
數據庫中以表為基本單位,進?存儲數據。
| 類 | 表 |
| 定義的成員變量 | 字段(列) |
| 對象 | 記錄(列) |
常?數據庫
MYSQL:開源免費的數據庫,?型的數據庫.已經被Oracle收購了.MySQL6.x版本也開始收費。
Oracle:收費的?型數據庫,Oracle公司的產品。Oracle收購SUN公司,收購MYSQL。
DB2 :IBM公司的數據庫產品,收費的。常應?在銀?系統中.
SQLServer:MicroSoft 公司收費的中型的數據庫。C#、.net等語?常使?。
SyBase:已經淡出歷史舞臺。提供了?個?常專業數據建模的?具PowerDesigner。
SQLite:嵌?式的?型數據庫,應?在?機端。
常?數據庫:MYSQL
我們學習的是MySQL數據庫。為了追求?性能,開發中多個Mysql,搭建MySQL?可?負載均衡集群
MySql數據庫
MySQL是?個需要賬戶名密碼進?連接的數據庫,連接后才能使?,它提供了?個默認的root賬號,使?安裝時設置的密碼即可登錄。
上代碼,
默認情況下,mysql只允許本地登錄,如果要開啟遠程連接,則需要修改/etc/mysql/my.conf?件。
數據庫是不認識JAVA語?的,但是我們同樣要與數據庫交互,這時需要使?到數據庫認識的語?【SQL語句】,它是數據庫的代碼。
結構化查詢語?(Structured Query Language)簡稱SQL,是關系型數據庫管理系統都需要遵循的規范。
不同的數據庫?產?商都?持SQL語句,但都有特有內容。簡單來說,SQL就像普通話,全國人都聽得懂并以此為標準,有些特有的東西只能在自己的產品或地區使用。
SQL語句分類:
① 數據定義語?:簡稱DDL(Data Definition Language),?來定義數據庫對象:數據庫,表,
列等。關鍵字:create,alter,drop等
② 數據控制語?:簡稱DCL(Data Control Language),?來定義數據庫的訪問權限和安全級別,及創建?戶。
③ 數據操作語?:簡稱DML(Data Manipulation Language),?來對數據庫中表的記錄進?
更新。關鍵字:insert,delete,update等
④ 數據查詢語?:簡稱DQL(Data Query Language),?來查詢數據庫中表的記錄。關鍵字:
select,from,where等
SQL語句的書寫語法
- MySQL數據庫的SQL語句不區分??寫,關鍵字建議使??寫,以分號結尾。例如:
- 使?/**/、 – 、# 的?式完成注釋
SQL中數據的常?數據類型
| int | 整數類型 |
| double | 小數類型 |
| decimal(m,d) | 定義整數位和小數位長度的小數類型 |
| date | 日期類型,格式為yyyy-MM-dd,包含年??,不包含時分秒 |
| datetime | ?期類型,格式為 YYYY-MM-DD HH:MM:SS,包含年??時分秒(默認是計算機中的時間) |
| timestamp | 日期類型,時間戳(默認是格林尼治時間) |
| varchar(M) | 文本類型,M為0~65535中的一個整數 |
| char(M) | 文本類型,M為0~65535中的一個整數 |
上面的varchar和char的說明是一樣的,但是還是有本質上的區別的。通俗來講:varchar是一個設定上限的動態文本類型,你儲存多少數據,就開放多少內存,不會造成內存的浪費;而char文本不管存儲多少數據,就開放那么大的內存,會造成一些內存的浪費。
數據庫操作: database
1. 創建數據庫
/*創建數據庫*/-- ?式?: 使?指定的字符編碼表,創建數據庫. 格式: create database 數據庫名 character set 字符編碼; CREATE DATABASE mydb CHARACTER SET utf8;-- ?式?: 使?默認的字符編碼表,創建數據庫. 格式: create database 數據庫名; CREATE DATABASE mydb2;2. 查看數據庫
/*查看數據庫*/-- 查看所有的數據庫. 格式: show databases; SHOW DATABASES;-- 查看指定數據庫的字符編碼. 格式: show create database 數據庫名; SHOW CREATE DATABASE mydb; SHOW CREATE DATABASE mydb2;3. 刪除數據庫
/*刪除數據庫*/-- 刪除數據庫. 格式: drop database 數據庫名; DROP DATABASE mydb2;4. 使?數據庫
/*使?數據庫*/-- 查看當前使?的數據庫. 格式: select database(); SELECT DATABASE();-- 設置當前使?的數據庫. 格式: use 數據庫名; USE mydb;表操作:table
1. 創建表
/* 創建表, 格式: create table 表名 ( 字段名 數據類型[?度] [約束], 字段名 數據類型[?度] [約束], ... ); 注:[]中的內容是可選項 */ -- 創建表student, 字段包括 編號id\ 姓名name\ 年齡age CREATE TABLE student ( id INT, NAME VARCHAR(100), age INT ); -- 創建表users, 字段包括 編號id\ ?戶名username \ 密碼password CREATE TABLE users ( id INT, username VARCHAR(100), PASSWORD VARCHAR(100) );2. 查看表
-- 查看所有表, 格式: show tables SHOW TABLES; -- 查看指定表的建表結構, 格式: show create table 表名; SHOW CREATE TABLE users;3. 刪除表
-- 刪除表, 格式: drop table 表名; DROP TABLE users;4. 修改表結構格式
/* 對表中的列進?修改 1. 添加新的列, 格式: alter table 表名 add 新列名 數據類型(?度); 2. 修改列的數據類型(?度), 格式: alter table 表名 modify 列名 修改后的數據類型(? 度); 3. 修改列的名稱, 格式: alter table 表名 change 列名 新列名 新列名的數據類型(?度); 4. 刪除指定列, 格式: alter table 表名 drop 列名; */ ALTER TABLE student ADD `desc` VARCHAR(100); -- 添加新的列 ALTER TABLE student MODIFY `desc` VARCHAR(50);-- 修改列的數據類型(?度) ALTER TABLE student CHANGE `desc` description VARCHAR(100);-- 修改列的名稱 ALTER TABLE student DROP description;-- 刪除指定列 /* 對表進?修改 1. 修改表的名稱, 格式: rename table 表名 to 新表名; 2. 修改表的字符編碼, 格式: alter table 表名 character set 字符編碼; */ RENAME TABLE student TO stu; -- 修改表的名稱 ALTER TABLE stu CHARACTER SET gbk; -- 修改表的字符編碼表中記錄操作
插入表操作
/* 插?表記錄 ?式?, 對指定的字段插?值, 格式: insert into 表名(字段1, 字段2, ...) values (值 1, 值2, ...); ?式?, 對所有字段插?值, 格式: insert into 表名 values(值1, 值2, ...); */ INSERT INTO student(id, NAME, age) VALUES(1, 'tom', 24); INSERT INTO student(NAME, age) VALUES('lili', 22); INSERT INTO student(id, NAME, age) VALUES(3, 'jim', NULL); INSERT INTO student VALUES(4, 'jack', 26); INSERT INTO student VALUES(5, 'zhangsan', 26), (6,'lisi',27);- 注意:
更新表記錄
-- 更新表記錄, 格式: update 表名 set 字段1=值, 字段2=值... where 條件; UPDATE student SET NAME='lili', age=21 WHERE id=1; UPDATE student SET age=25 WHERE age=27;- 注意:
刪除表記錄
-- 刪除表記錄, 格式: delete from 表名 where 條件; DELETE FROM student WHERE id=1; DELETE FROM student WHERE age IS NULL;總結
- 上一篇: centos关机重启命令
- 下一篇: MySQL数据库密码重置