MySQL數據庫筆記5——表的創建及數據的增刪改

1.創建表
建表語句的語法格式:
   create table 表名(
      字段名1 數據類型,
      字段名2 數據類型,
      字段名3 數據類型,
      …
   );

(1)關於MySQL中字段的(常見)數據類型?
在這裏插入圖片描述
      此外還有BLOB(二進制大對象,存儲圖片、視頻等流媒體信息)、CLOB(字符大對象,存儲較大文本,如可存儲4G字符串)。Varchar最多存儲255個字符。

(2)char和varchar怎麼選擇?
      某一字段數據類型爲char(6)時,不論其輸入幾個字符,都無條件的分配6個存儲空間,輸入字符超過6個,報錯;若其數據類型爲varchar(6)時,輸入的是幾個字符,就分配幾個存儲空間,若輸入字符超過6個,報錯。
      在實際開發中,當某個字段中的數據長度不發生改變的時候,是定長的,例如性別可以採用char;當一個字段的數據長度不確定,例如簡介、姓名等都是採用varchar。

(3)BLOB和CLOB類型的使用?
在這裏插入圖片描述
      一般來說,較大的視頻、圖片、文本不會直接存儲在數據庫中。字段數據類型爲BLOB和CLOB類型的數據不能通過insert插入數據庫中,只能通過java的IO流插入。
(4)表名在數據庫中一般建議以:t_或者tbl_開始。

案例:創建學生表:
學生信息包括:學號(bigint)、姓名(varchar)、性別(char)、班級編號(int)、生日(char)
create table t_student(
      no bigint,
      name varchar(255),
      sex char(1),
      classno varchar(255),
      birth char(10)
);

2.insert語句插入數據
語法格式:insert into 表名(字段名1,字段名2,字段名3…) values (值1,值2,值3…)
要求:字段的數量和值的數量一致,並且數據類型要對應相同。

案例1:插入一行數據:
insert into t_student(no,name,sex,classno,birth) values(1,‘zhangsan’,‘1’,‘gaosan1ban’,‘1950-10-12’);
或者
insert into t_student(name,sex,classno,birth,no) values(‘lisi’,‘1’,‘gaosan1ban’,‘1950-10-12’,2); //字段順序可以調換,只要能與後面的值對應上
或者
insert into t_student(name) values(‘wangwu’); //除name之外,剩下的所有字段自動插入NULL
或者
insert into t_student values(1,‘Jack’,‘1’,‘gaosan1ban’,‘1950-10-12’); //字段可以不寫,但後面的值的數量和順序要對應好

drop table if exists t_student; //當這個表存在的話刪除
create table t_student(
      no bigint,
      name varchar(255),
      sex char(1) default 1,
      classno varchar(255),
      birth char(10)
);//當插入一條數據,不給sex插入值時,sex字段的默認值是1

案例2:一次插入多行數據:
insert into t_student(no,name,sex,classno,birth) values(3,‘rose’,‘1’,‘gaosan2ban’,‘1950-10-12’),(4,‘Marry’,‘1’,‘gaosan2ban’,‘1950-10-12’);

3.表的複製
語法:create table 表名 as select語句;
將查詢結果當做表創建出來。

4.將查詢結果插入到一張表中
語法:insert into 表名 select語句;

5.修改數據
語法格式:update 表名 set 字段名1=值1,字段名2=值2…where 條件;
注意:沒有條件整張表數據全部更新。

案例:將部門10的LOC修改爲’SHANGHAI’,將部門名稱修改爲’RENSHIBU’?
update dept1 set dname = ‘RENSHIBU’,LOC = ‘SHANGHAI’ where deptno = 10;

6.刪除數據
語法格式:delete from 表名 where 條件;
注意:沒有條件全部刪除。

案例1:刪除部門號爲10的數據?
delete from dept1 where deptno = 10;

案例2:刪除所有記錄?
delete from dept1;

案例3:怎麼刪除大表中的數據?(重點)
用delete刪除大表的效率非常慢。
truncate table emp1; //表被截斷,不可回滾,永久丟失。

案例4:刪除表?
drop table 表名; //通用
drop table if exists 表名; //Oracle不支持這種寫法

7.對於表結構的修改,使用工具完成即可。因爲在實際開發中,一旦表設計好之後,對錶結構的修改是很少的,修改表結構就是對之前的設計進行了否定,即使需要修改表結構,我們也可以直接使用工具操作。修改表結構的語句不會出現在Java代碼中,出現在Java代碼當中的sql包括:insert、delete、update、select。
增刪改查有一個術語:CRUD操作(create、retrieve、update、delete)。

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