表的創建、插入與洗掉
- 1>表的創建
- MySQL中的資料型別
- char和varchar如何選擇
- BLOB和CLOB型別的使用
- 2>表中插入資料
- 修改資料
- 洗掉資料
- 怎么洗掉大表
- 3>刪表
- 4>表結構修改
1>表的創建
建表陳述句得到語法格式:
create table 表名{
欄位名1 資料型別,
欄位名2 資料型別,
欄位名3 資料型別,
...
};
MySQL中的資料型別
常用的資料型別:
| 資料型別 | 中文名 |
|---|---|
| int | 整數型 |
| bigint | 長整型(java中的long) |
| float | 浮點型 (java中的float double) |
| char | 定長字串(java中的String型別) |
| varchar | 可變長字串,可以存最多255個字符 java中的StringBuffer/StringBuilder |
| date | 日期型別 (對應Java中的java.sql.Date型別) |
| BOLB | 二進制大物件(存盤圖片、視頻等流媒體資訊) Binary Large OBject(對應java中的Object) |
| CLOB | 字符大物件(存盤較大文本,比如,可以存盤4個G的字串) (對應java中的Object) |
char和varchar如何選擇
- char(6) 可以存盤的不超過6個字符,每個資料都只分配6個字符的空間,(比如 存取 性別欄位 )
- varchar(6) 根據實際存入資料動態分配不超過6個字符的空間,
~~~~
在實際開發中,當某個字符中的長度不發生改變時,是定長的,例如:性別、生日等都是采用char,優點:無需計算資料長度 效率高,
~~~~
當一個欄位的資料長度不確定時,例如:簡介、姓名等都是采用varchar,
BLOB和CLOB型別的使用
id(int) name(varchar) playtime(date,char) haibao(BLOB) history(CLOB)
--------------------------------------------------------------------
1 蜘蛛俠
2
3
~~~ 表名在資料庫當中一般建議以:t_或者tab_開始, 資料庫中處理表還有視圖等,
創建學生表:
~~~~~~~~
學生資訊包括:
~~~
學號、姓名、性別、班級編號、生日
~~~
學號: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,....)
//要求:欄位的數量和值的數量相同
//并且資料型別要對應相同
insert into t_student(no,name,sex,classno,birth)
values('zhangsan','1','gansan1ban','1950-10-12');
insert into t_sudent(name,sex,classno,birth,no) values('lisi','1','gansan1ban','1950-10-12',2);
//前后能對上就行,順序不重要
insert into t_sudent(name) values('wangwu');
//除name以外,所有其他欄位自動插入NULL;
將性別的默認值改為1
create table t_student{
no bigint,
name varchar(255),
sex char(1) default 1,
classno varchar(255),
birth char(10)
};
需要注意的地方:
~~~
當一條insert陳述句執行成功之后,表格當中必然會多一行記錄,
~~~
即使多的這一行記錄當中某些欄位是NULL,后期也沒有辦法在執行insert陳述句插入資料了,只能使用update進行更新,
insert into t_student values(1,'jack','0','gaosan2ban','1986-10-23');
//省略欄位名的話
//后面的values必須數量和順序都一致
//一次插入多行資料
insert into
t_student(no,name,sex,classno,birth)
values
(1,'jack','0','gaosan2ba','1952-12-14'),(4,'laotie','1','gaosi2ban','1955-12-14');
表的復制:
語法:
create table 表名 as select 陳述句;
將查詢結果當做表創建出來,
//復制表
create table emp1 as select * from emp;
//區域復制
create table emp2 as select empno.ename from emp;
將查詢結果插入到一張表中
insert into dept1 select * from dept;
//欄位數有要求
修改資料
語法格式:
update 表名 set 欄位名1=值1,欄位名2=值2,... where 條件;
//注意:沒有條件整張表資料全部更新
//注意欄位名=值1后是','不是and
~~~ 案例:將部門10的LOC修改為SHANGHAI,將部門名稱修改為RENSHIBU,
update dept1 set loc ='SHANGHAI',dname = 'RENSHIBU' where deptno = 10;
//更新所有記錄
update dept1 set loc = 'x',dname = 'y';
洗掉資料
語法格式
delete from 表名 where 條件;
//注意:沒有條件全部洗掉
//洗掉10部門資料
delete from dept1 where deptno = 10;
//洗掉所有記錄
delete from dept1;
delete陳述句類似橡皮擦,擦完之后格還留著,沒有釋放格的空間,可以回滾,
怎么洗掉大表
不能回滾,不存在反悔空間,速度快,僅僅留下表頭,(需要反復確認,才進行),
truncate table emp1;
//表被截斷,不可回滾,永久丟失
3>刪表
//當這個表存在話洗掉
drop table if exists t_student;
4>表結構修改
~~~~
這里不講,使用工具很方便,因為在實際開發中表一旦設計好之后,對表結構修改是很少的,修改表結構就是對之前的設定進行了否定,即使需要修改表結構,我們也可以直接使用工具即可,修改表結構的陳述句不會出現在JAVA代碼當中,
~~~~
出現在Java代碼當中的sql包括:insert delete update select (這些都是表中的資料操作,)
增刪改查有一個術語:CRUDE操作
Create(增) Retrieve(檢索) Update(修改) Delete(洗掉)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/243910.html
標籤:其他
上一篇:作業流第六章之用戶組與用戶
下一篇:docker安裝mysql
