資料庫MySQL基礎語法的學習筆記
目錄
1.進入資料庫
找出自己主機資料庫的位置,再使用Dos.指令進入自己主機的資料庫
MySQL -hlocalhost -uroot -p;
password:********
2.建立資料庫
建立資料庫:
creat database 資料庫名;
刪除資料庫:
drop database 資料庫名;
檢視所有資料庫:
show databases ;
3.建立資料表
建立資料表
creat table 表名(
欄位名1 資料型別1 其他1,
欄位名2 資料型別2 其他2,
....................);
刪除資料表
drop table 表名;
顯示資料表的結構
desc 表名;
檢視資料表
show tables;
4.資料型別
數字資料型別
-
tinyint - 一個非常
-
smallint - 一個小的整數,可以帶符號。如果有符號,允許範圍為-32768至32767。如果無符號,允許的範圍是從0到65535,佔2個位元組。
-
mesiumint - 一箇中等大小的整數,可以帶符號。如果有符號,允許範圍為-8388608至8388607。 如果無符號,允許的範圍是從0到16777215,佔3個位元組。。
-
int - 正常大小的整數,可以帶符號。如果是有符號的,它允許的範圍是從-2147483648到2147483647。如果是無符號,允許的範圍是從0到4294967295,佔4個位元組。
-
bigint - 一個大的整數,可以帶符號。如果有符號,允許範圍為-9223372036854775808到9223372036854775807。如果無符號,允許的範圍是從0到18446744073709551615. 佔8個位元組。
-
float(M,D) - 不能使用無符號的浮點數字。可以定義顯示長度(M)和小數位數(D)。這不是必需的,並且預設為10,2。其中2是小數的位數,10是數字(包括小數)的總數。佔4個位元組。
-
doubleM,D) - 不能使用無符號的雙精度浮點數。可以定義顯示長度(M)和小數位數(D)。 這不是必需的,預設為16,4,其中4是小數的位數,佔8個位元組。
-
decimal(M,D) - 非壓縮浮點數不能是無符號的。在解包小數,每個小數對應於一個位元組。定義顯示長度(M)和小數(D)的數量是必需的。 NUMERIC是DECIMAL的同義詞。
時間和日期型別
-
date - 以YYYY-MM-DD格式的日期,在1000-01-01和9999-12-31之間。 例如,1999年10月30日將被儲存為1999-10-30。
-
datetime - 日期和時間組合以YYYY-MM-DD HH:MM:SS格式,在1000-01-01 00:00:00 到9999-12-31 23:59:59之間。例如,1999年10月30日下午3:30,會被儲存為1999-10-30 15:30:00。
-
timestamp - 1970年1月1日午夜之間的時間戳,到2037的某個時候。這看起來像前面的DATETIME格式,無需只是數字之間的連字元; 1973年12月30日下午3點30分將被儲存為19731230153000(YYYYMMDDHHMMSS)。
-
time - 儲存時間在HH:MM:SS格式。
-
year(M) - 以2位或4位數字格式來儲存年份。如果長度指定為2(例如YEAR(2)),年份就可以為1970至2069(70〜69)。如果長度指定為4,年份範圍是1901-2155,預設長度為4。
字串型別
-
char(M) - 固定長度的字串是以長度為1到255之間個字元長度(例如:CHAR(5)),儲存右空格填充到指定的長度。 限定長度不是必需的,它會預設為1。
-
varchar(M) - 可變長度的字串是以長度為1到255之間字元數(高版本的MySQL超過255); 例如: VARCHAR(25). 建立VARCHAR型別欄位時,必須定義長度。
-
blob或 TEXT - 欄位的最大長度是65535個字元。 BLOB是“二進位制大物件”,並用來儲存大的二進位制資料,如影象或其他型別的檔案。定義為TEXT文字欄位還持有大量的資料; 兩者之間的區別是,排序和比較上儲存的資料,BLOB大小寫敏感,而TEXT欄位不區分大小寫。不用指定BLOB或TEXT的長度。
-
tinyblob或 TINYTEXT - BLOB或TEXT列用255個字元的最大長度。不指定TINYBLOB或TINYTEXT的長度。
-
mediumblob 或 MEDIUMTEXT - BLOB或TEXT列具有16777215字元的最大長度。不指定MEDIUMBLOB或MEDIUMTEXT的長度。
-
longblob 或 LONGTEXT - BLOB或TEXT列具有4294967295字元的最大長度。不指定LONGBLOB或LONGTEXT的長度。
-
enum - 列舉,這是一個奇特的術語列表。當定義一個ENUM,要建立它的值的列表,這些是必須用於選擇的項(也可以是NULL)。例如,如果想要欄位包含“A”或“B”或“C”,那麼可以定義為ENUM為 ENUM(“A”,“B”,“C”)也只有這些值(或NULL)才能用來填充這個欄位。
5.表的增刪修改操作
插入
insert into(列1,列2.....) values (值1,值2....);
刪除
delate from 表名 where 條件表示式;
更新(修改)
update 表名 set 列名1=值1,列2=值2,... where 條件表示式;
查詢
select 列1,列2,....... from 表名 [條件表示式];
6.查詢的擴充套件
過濾查詢 where
查詢列表中id>2的
select * from 表名 where id>2;
like 操作符
查詢username中所有帶 '任務‘ 的語句
select * from 表名 where username like '任務%';
between操作符
查詢年齡在16歲到19歲之間的語句
select * from 表名 where age between 16 and 19;
多條件組合and和or
查詢年齡16歲並且性別為1的語句
select * from 表名 where age is 16 and sex = 1;
order by 對查詢結果排序
desc 降序 asc 升序
查詢年齡在16歲到19歲之間的語句並且按照id降序顯示
select * from 表名 where age between 16 and 19 order by id desc;
limit 獲定指定行的資料
查詢年齡在16歲到19歲之間的語句並且只輸出0到3行的資料
select * from 表名 where age between 16 and 19 limit 0 , 3;
7.表的修改、
修改列的定義
alter table 表名 modify 列名 資料型別;
alter table visitor modify mid int(11);
追加列
alter table 表名 add 列名 資料型別;
alter table visitor add age int(3);
修改列名和定義
alter table 表名 change 修改前列名 修改後列名 修改後型別;
alter table visitor change birth birthday date;
刪除列
alter table 表名 drop 列名;
alter table visitor drop age;
8.表的複製
表的複製
creat table 新表名 select * from 舊錶名;
create table new_user select * from user;
只向複製表結構而不需要資料
creat table 新表名 like 舊錶名;
create table new_user_no_data like user;
從一張表中向另外一種表複製資料
insert into 表名 select * from 帶資料的表;
insert into new_user_no_data select * from user;