1. 程式人生 > >資料庫MySQL基礎語法的學習筆記

資料庫MySQL基礎語法的學習筆記

目錄

 

1.進入資料庫

2.建立資料庫

3.建立資料表

4.資料型別

5.表的增刪修改操作

6.查詢的擴充套件

7.表的修改、

8.表的複製


 

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 - 一個非常

    小的整數,可以帶符號。如果是有符號,它允許的範圍是從-128到127。如果是無符號,允許的範圍是從0到255,佔1個位元組。。

  • 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;