MySql數據庫的概念
一個應用對應一個數據庫,數據庫中可以存放多張不同的表結構,表裏面存放的纔是真正的數據,一個表中含有多個字段(字段和JavaBea的屬性是對應的)
SQL(操作數據庫)
結構化查詢語言 (Structured Query Language),簡稱SQL。SQL是非過程性的語言,一條語言,就對應着一個返回結果。
SQL的分類:
1.DDL 數據庫定義語言(操作數據庫,表)
創建數據庫,創建表,創建視圖,創建索引,修改數據庫,刪除數據庫,修改表,刪除表
create--創建 alter--修改 drop--刪除
2.DML 數據庫操作語言(操作數據)
操作數據 插入數據(insert) 修改數據(update) 刪除數據(delete)
3.DCL 數據庫控制語言
if else while
4.DQL 數據庫查詢語言
從表中查詢數據(select)
數據庫的增刪改查(CRUD)
創建數據庫
創建數據庫的語法
基本語法:create database 數據庫名稱;
其他語法:create database 數據庫名稱 character set 編碼;
創建一個使用utf8字符集的mydb1數據庫
create database mydb1 character set 'utf8';
查看數據庫
show databases; --查看所有的數據庫
show create database 數據庫名稱; --查詢數據庫的創建信息
use 數據庫名稱; --使用(切換)數據庫
select database(); --查詢當前正在使用的數據庫
刪除數據庫
drop database 數據庫名稱; --刪除數據庫
數據類型
使用 MySql 數據庫存儲數據時,不同的數據類型決定了 MySql 存儲數據方式的不同,MySql 數據庫提供了多種數據類型。
-
字符串類型
varchar 長度可變,使用較多 name varchar(8) 存入數據hello後,name字段的長度自動轉換爲5 char 固定長度,不可變 name char(8) 存入數據hello後,用空格補全剩餘位置
-
二進制大數據類型
BLOB 字節,二進制大數據 TEXT 字符,大文本數據
-
數值類型
tinyint smallint mediumint int bigint double float
-
時間日期類型
year 只包含年份 date 只包含日期,年月日 time 只包含時間,時分秒 datetime 包含日期和時間,若插入數據時,字段值爲空,則顯示爲空 timestamp 時間戳,包含日期和時間,若插入數據時爲空,默認獲取當前系統時間
-
邏輯性
bit 在Java中是true或false 在數據庫bit類型(1或者0)
表的約束
1.非空約束:not null
字段名 數據類型 not null;
2.唯一約束:unique --把某個字段聲明成唯一的值
字段名 數據類型 unique;
3.主鍵約束:primary key
字段名 數據類型 primary key;
主鍵約束包含非空和唯一
4.默認約束:default
字段名 數據類型 default 默認值;
5.自動增加:auto_increment
字段名 數據類型 auto_increment;
只作用於整形數據
數據表的增刪改查(CRUD)
創建表
創建表的語法:
create table 表名稱(
字段1,數據類型,
字段2,數據類型,
...
字段n,數據類型
);
注意:1.創建表時,後面用小括號,且最後用分號結束。
2.編寫字段時,字段之間使用逗號隔開,但是最後一個字段不能使用逗號。
3.聲明字符串類型時,長度必須指定。
4.如不指定數據的長度,有默認值,int類型默認值爲11。
查看數據表
show tables; --查看當前數據庫中所有表,首先要進入到數據庫中
desc 表名稱; --查詢表結構的詳細信息
show create table 表名稱; --查看錶創建的信息
刪除表
drop table 表名稱; --刪除表結構
修改表
添加新字段:
alter table 表名稱 add 字段名 數據類型;
修改字段的數據類型:
alter table 表名稱 modify 字段名 數據類型;
修改字段名:
alter table 表名稱 change 舊字段名 新字段名 數據類型;
修改表名:
rename table 舊錶名 to 新表名;
alter table 舊錶名 rename as 新表名;
刪除字段:
alter table 表名稱 drop 字段名;
刪除表:
drop table 表名;
修改字段的排列位置:
alter table 表名 modify 字段名 數據類型 first;
將該字段修改爲表的第一個字段
alter table 表名 modify 字段1 數據類型 after 字段2;
將字段1插入到字段2的後面