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