標籤:ima 個人 配置 0.12 資料類型 esc 定義 cap tab
like語句與萬用字元
insert into teacher_1 values(‘胖胖‘, ‘男‘, 18),
(‘小明‘, ‘男‘, 19),
(‘張三‘, ‘男‘, 30),
(‘李四‘, ‘男‘, 27),
(‘張成‘, ‘男‘, 21),
(‘三胖‘, ‘女‘, 31),
(‘張三丰‘, ‘男‘, 66),
(‘張‘, ‘男‘, 11),
(‘王_白‘, ‘男‘, 14),
(‘王大白‘, ‘男‘, 19);
需求一: 查詢出姓張的人;
select * from teacher_1 where name like ‘張%‘; --%表示配置0個或者多個任一字元
需求二: 查詢出名字中第二個字元是‘胖‘的人;
select * from teacher_1 where name like ‘_胖%‘;
ps: %表示配置0個或者多個任一字元, _表示配置一個任一字元
需求三: 查詢出 名字中第一個和第二個字元是 ‘王‘和‘_‘ 的那個人;
select * from teacher_1 where name like ‘王/_%‘ escape ‘/‘;
select * from teacher_1 where name like ‘王\_%‘;
***********************************************************************************************************************
資料類型
1: 數實值型別
2: 日期類型
3: 字串類型
***********************************************************************************************************************
1: 整形
tinyint類型
tinyint如果有符號範圍則是(-128, 127), 如果無符號範圍則是(0, 255);
可以使用unsigned標識來定義是否符號, 加上unsigned標識則表示無符號, 預設是有符號的
create table t_1(
a tinyint,
b tinyint unsigned
);
例: insert into t_1 values(-128, 127);
例: insert into t_1 values(-128, -1); --報錯
例: insert into t_1 values(255, 255); --報錯
例: insert into t_1 values(-128, 255);
定義資料的顯示寬度
create table t_2(
a tinyint(2)
);
ps: 類型(2), 比如tinyint(2), (2)並不是表示最大隻能輸入2位元字的值;
而是表示顯示的最小寬度是多少, 如果想要達到顯示最小寬度的目的,還需要使用zerofill(前置字元為零填充)來標識
例: insert into t_2 values(123);
例: insert into t_2 values(1);
alter table t_2 add b tinyint(2) zerofill;
例: insert into t_2(b) values(2);
例: insert into t_2(b) values(123);
例: insert into t_2(b) values(-1); --報錯, 標識了zerofill後 也會預設加上一個unsigned;
2: 小數型
浮點類型
float(單精確度), double(雙精確度)
create table t_3(
a float,
b double
);
例: insert into t_3(a, b) values(1234567890.123456789,1234567890.123456789);
+------------+--------------------+
| a | b |
+------------+--------------------+
| 1234570000 | 1234567890.1234567 |
+------------+--------------------+
ps: float與double類型雖然可以表示一個很大的小數, 但是如果值超過精度位元,這裡則會損失精度
float預設精度位元是6位左右, double預設的精度位元是17左右;
create table t_4(
a float(4) zerofill
);
insert into t_4 values(12);
insert into t_4 values(12345);
create table t_5(
a float(6, 2)
);
ps: 浮點型(M,D) 比如float(6, 2) 這裡的6表示的是能夠最大的所有位元(不包括符號和小數號), 2表示最大小數位元
例: insert into t_5 values(1234.56);
例: insert into t_5 values(123.56);
例: insert into t_5 values(123.5);
例: insert into t_5 values(12345.6); --報錯
例: insert into t_5 values(1234.128); --不報錯,但會把多餘的小數以四捨五入的方式截取掉
定點數類型(decimal)
ps: decimal(M,D)定點數型依賴於M和D, M的預設值是10, D的預設值是0; M一樣表示總數位, D表示小數位 總數
create table t_6(
a decimal(21, 2) zerofill
);
例: insert into t_6 values(123456789123456789.12);
+------------------------+
| a |
+------------------------+
| 0123456789123456789.12 |
+------------------------+
***********************************************************************************************************************
日期類型
datetime(年月日時分秒)與timestamp類型(時間戳記)
create table t_7(
a datetime,
b timestamp
);
例: insert into t_7 values(‘2012-08-08 08:08:08‘, 54389867575365); --報錯, 時間戳記儲存時是整形,但是表示是日期型
例: insert into t_7 values(‘2012-08-08 08:08:08‘, ‘2012-08-08 08:08:08‘);
例: select a+0, b+0 from t_7; --在檢索時如果列+0, 時間的格式會整形來顯示
+-----------------------+----------------+
| a+0 | b+0 |
+-----------------------+----------------+
| 20120808080808.000000 | 20120808080808 |
+-----------------------+----------------+
例: insert into t_7 values(‘2012-08-08 08:08:08‘, ‘2038-01-20‘); --報錯
例: insert into t_7 values(‘2012-08-08 08:08:08‘, ‘2038-01-19‘); --不報錯
例: insert into t_7 values(‘2012*08*08‘, ‘2038*01*19‘); --支援任意的分隔字元日期
例: insert into t_7 values(‘20120808‘, ‘20380119‘); --也可以不用寫分隔字元
例:insert into t_7 values(‘20128808‘, ‘20380119‘); --報錯
Date類型
create table t_t(
a date,
b datetime
);
例: insert into t_t values(‘2012-08-08 08:08:08‘, ‘2012-08-08 08:08:08‘);
ps: Date類型是以YYYY-MM-DD形式顯示日期, datetime以年月日時分秒形式來顯示日期
Time類型(D HH:MM:SS) D表示天
ps: Time表示的一天中的日間
create table t_8(
a time
);
例: insert into t_8 values(‘2 08:08:08‘);
例: insert into t_8 values(‘99:08:08‘);
例: insert into t_8 values(‘990808‘);
例:insert into t_8 values(‘99-08-08‘); --報錯
year類型
create table t_9(
a year
);
例: insert into t_9 values(‘1901‘);
例: insert into t_9 values(‘1900‘);
***********************************************************************************************************************
3: 字串類型
char(M) M表示嚴格限定的長度
varchar(M) M表示允許的最大長度;
create table t_10(
c char(4),
v varchar(4)
);
例: insert into t_10 values(‘ab‘, ‘ab‘);
例: insert into t_10 values(‘ab‘, ‘abcde‘); --報錯
例: insert into t_10 values(‘abcde‘, ‘ab‘); --報錯
Text類型(長文本類型)--還有tinyText, longText
create table t_11(
a text,
b tinytext
);
enum枚舉類型
create table t_12(
sex enum(‘男‘,‘女‘,‘保密‘)
);
例: insert into t_12 values(‘不男不女‘);
例: insert into t_12 values(‘男‘);
set集合類型
create table t_13(
hobby set(‘eat‘, ‘drink‘, ‘sleep‘)
);
例: insert into t_13 values(‘eat,sleep‘);
例:insert into t_13 values(‘eat,sleep,drink‘);
例:insert into t_13 values(‘eat,sleep, drink‘); --報錯 不要有空格
例:insert into t_13 values(‘eat,sleep,胖胖‘); --胖胖
Mysql之資料類型(胖胖老師)