3、MySQL數據庫數據類型
MySQL數據庫中支持多種數據類型:數值型、字符型、日期型
經常使用的數據類型:
1.整型
int:整形,存儲整數
int(M):M表示預期值。與存儲大小和數值的範圍無關。
id int 10000
id int(3) zerofill 10000
zerofill 零填充 會在左側補0
2.浮點型
float[(M,D)]:浮點型,存儲小數
salary float(6,2):表示最多6位,小數佔2位,最大存儲數值爲:9999.99
double:浮點型,小數
3.字符型
char(M):固定長度的字符串類型 name char(5) '1 '
varchar(M):可變長度的字符串類型(推薦) name varchar(5) '1'
text:大的字符串類型,4G字符串
blob:字節類型
4.日期
date:日期類型,年月日 YYYY-MM-DD 日期格式
time:時間類型,時分秒 HH:mm:ss 時間格式
year:年份,年 YYYY格式的年份值
timestamp:年月日 時分秒 ,時間戳 2037年的某一個時刻 YYYYMMDDhhmmss
datetime:年月日 時分秒 YY-MM-DD hh:mm:ss
5:整型
tinyint 1 -128~127
smallint 2 32767/65535
int 4 21億
bigint 8 兆
mediumint 3 八百多萬/一千六百多萬
注意:選擇合適的數據類型,是數據庫優化的一部分。 short it better 原則。
4、MySQL數據庫中的數據的使用
<1>SQL概述
結構化查詢語言,能夠用於查詢和修改關係數據庫的語言。
SQL語言,是數據庫的核心語言,被ISO採納爲數據庫語言的國際標準,幾乎全部的數據庫都支持SQL
<2>組成
數據定義語言(Data Definition Language,DDL):用於管理和必定數據對象,包括數據庫,數據表等。
create:建立數據庫和表
drop:刪除表對象
alter:修改表結果
數據操做語言(Data Manipulation Language,DML):用於操做數據庫對象中所包含的數據
insert:添加數據
delete:刪除數據
update:修改數據
數據查詢語言(Data Query Language,DQL):用於查詢數據庫對象中所包含的數據
select:查詢數據
事務控制語言(Transaction Control Language,TCL):包括提交事務、事務回滾
commit:提交事務
rollback:事務回滾
savepoint:事務節點
數據控制語言(Data Control Language,DCL):用來管理數據庫中,包括管理權限以及數據更改
grant:受權
revoke:收回權限
1.數據定義語言(DDL)
數據庫的操做
<1>建立數據庫
語法格式: create database [if not exists] 數據庫名稱 [character set [=] 編碼名稱];
例如:
create database tlxy;
create database if not exists tlxy;//忽視錯誤,顯示警告
show warnings;//查看警告
create database db character set gbk;//指定建立的數據庫的字符集
<2>查詢數據庫
語法格式:show databases;//查看全部的數據庫
show create database 數據庫名稱;//查詢某一個已經建立的數據庫
<3>修改數據庫
語法格式:
alter database [if not exists] 數據庫名稱 [character set 新的編碼名稱]
例如:
alter database db character set = utf8;
<4>刪除數據庫
語法格式:
drop database 數據庫名稱;
例如:
drop database db;//刪除數據庫db
數據表的操做
<1>建立數據表
使用一個數據庫:use 數據庫名稱;
查看當前正在使用的數據庫:select database();
建立數據表語法:
create table 表名(
字段名 字段類型 約束,
字段名 字段類型 約束,
........
);
例如: 建立用戶表
create table user(
uid int,
username varchar(32),
password varchar(32),
birthday date,
sex enum('男','女')
);
<2>查詢數據表
show tables;顯示當前數據庫中全部的數據表
show columns from 表名;//查詢某張表表結構
desc 表名; //查詢某張表表結構
<3>修改數據表
3.1 修改表名
方式一:alter table 表名 rename [as|to] 新表名;
例如:alter table user rename us;
方式二:rename table 舊錶名 to 新表名 [,舊錶名 to 新表名,..........]
例如:rename table us to user;
3.2 添加列
語法格式:
alter table 表名 add [column] 列名 列定義 [first|after 列名];
例如:
alter table user add sal double after password;//在指定的列後面添加新的列
alter table user add phone varchar(32); //默認在列的最後添加新的列
alter table user add hobby varchar(32) first;//在列的最前面添加新的列
3.3 修改列定義
語法格式:
alter table 表名 modify 列名 列定義 [first|after 列名];
例如:
alter table user modify sex varchar(32) first;
3.4 修改列名
語法格式:
alter table 表名 change 列的列名 新的列名 新的列定義 [first|after 列名];
例如:
alter table user change hobby address varchar(20) after sal;
3.5 刪除列
語法格式:
alter table 表名 drop [column] 列名;
例如:
alter table user drop phone;
<4>刪除數據表
語法格式:
drop table 表名;
例如:
drop table user;
2.數據操做語言(DML):用於操做數據庫對象中所包含的數據
基本查詢數據的語句: select * from 表名;
<1>插入操做
語法格式:insert [into] 表名 [(列名1,列名2,.....)] values|value (數值1|表達式,數值2|表達式,....);
例如:
insert into teacher (id,note) values ('1','先掙它一個億.');
insert into teacher value (2,'wangjianlin','xian zheng ta yi ge yi');
<2>刪除操做
語法格式:
delete from 表名 where 條件;
例如:
delete from teacher where id=1;//指定條件刪除記錄
delete from teacher;//不帶條件刪除,刪除全部的記錄
擴充:
truncate table 表名; ---------- 清空表,會清空表中全部的數據
面試題:
delete刪除與truncate 有什麼區別??
刪除方式:
delete :一條一條的刪除,不清清空 auto_increment 記錄數
truncate 直接將表中的數據進行清空, auto_increment自增將被重置,重新開始
<3>修改操做
語法格式:
update 表名 set 列名1=數值,列名2=數值,..... where 條件;
例如:
update teacher set name='xiaosan',note='ming nian zai zhao yi ge' where id=1;//帶條件修該,修改指定記錄
update teacher set name='xiaosi';//不帶條件 修改表中全部數據