1. 程式人生 > >MySQL之基本操作語法

MySQL之基本操作語法

基本SQL命令

sql命令的使用規則

  • 每條命令以分號結尾
  • 命令不區分大小寫

庫的管理

檢視所有的庫:

show databases;

建立資料庫(指定字符集):

create database 庫名 [character set 字符集(一般使用utf8)];
create database stuinfo character set utf8;

檢視建立庫的語句:

show create database 庫名;

檢視當前所在庫:

select database();

切換庫:

use 庫名;(這個可以不加分號,但最好寫)

檢視庫中所有的表:

show
tables;

刪除資料庫:

drop database 庫名;

表的管理

建立表:

create table 表名(
欄位名 資料型別,
欄位名 資料型別,
...
)[character set 字符集];

檢視建立表的語句(包括字符集、儲存引擎)

show create table 表名;

查看錶結構

desc 表名;

刪除表

drop table 表名;

表記錄管理

插入語句

insert into 表名 values(記錄1),(記錄2)....
insert into 表名(欄位名1,欄位名2...) values(記錄1)...

eg:insert
into stuinfo values(1, 'zhangsan', 28), (2, 'lisi', 25);
insert into stuinfo(id, name) values(3, 'Tom'), (4, 'Lucy');

查詢語句

select 欄位名列表 from 表名;
select 欄位名列表 from 表名 where 條件;

eg:select name from stuinfo;
select id from stuinfo where name='lisi';

欄位的資料型別

數值型別:整型、浮點型

  • 整型
    • int 大整形(佔4個位元組)取值範圍:0~(2^32-1)
    • tinyint 微小整型(佔1個位元組)
      • 有符號:signed為預設,取值範圍:-128~127
      • 無符號:unsigned,取值範圍:0~255
  • 浮點型
    • float:佔4個位元組,最多顯示7位
      • float(m,n) 其中m表示總位數,n表示保留的小數位數
    • double:佔8個位元組,不常用
    • decimal:詳見緊挨著的註釋 註釋:decimal(m, n)比較常用 它的儲存比較特殊,整數和小數部分分開儲存 儲存規則:將9的倍數包裝成4個位元組,餘數詳見如下表
餘數 位元組
0 0
1-2 1
3-4 2
5-6 3
7-8 4

舉個栗子: decimal(19, 9) 分析: 整數部分:10 / 9 = 1餘1—-> 4位元組+1位元組=5位元組 小數部分:9 / 9 = 1 餘0—–>4位元組+0位元組=4位元組 所以共佔9個位元組

**字元型別:**char、varchar、text / longtext

  • char:定長(固定長度),範圍:1~255
  • varchar:變長(不固定),範圍:1~65535
  • text / longtext:存放文字,可存放4G char和varchar的特點: char:浪費儲存空間,效能高 varchar:節省儲存空間,效能低

字元型別的寬度和數值型別的寬度的區別:

  1. 數值型別寬度為顯示寬度,只用於select查詢時顯示,和佔用儲存空間無關,可用zerofill檢視效果
  2. 字元型別的寬度超過後無法儲存

列舉型別:單選、複選

  • enum:單選
    • 如:sex enum(‘男’,‘女’)
  • set:複選
    • 如:hobby set(‘籃球’,‘足球’,‘乒乓球’)

單選在插入記錄時只能選擇其中的一個,並且只能插入enum裡的內容,否則會報錯,如:

insert into stuinfo(sex) values('男') --正確
insert into stuinfo(sex) values('man') --錯誤

複選在插入記錄時可選擇一個或多個,但只能選擇set有的內容,否則會報錯,多個使用逗號隔開,並且都在一個引號內,如

insert into stuinfo(hobby) values("籃球,足球")   --正確
insert into stuinfo(hobby) values("籃球""足球")   --錯誤
insert into stuinfo(hobby) values("籃球,足球,羽毛球")   --錯誤