記錄一些mysql的基礎語句
show databases; //檢視資料庫
use ***database; //使用某個資料庫
show tables; //選定了資料庫後,可檢視相應資料庫下的表
describe tablename; //檢視表的結構
show create table tablename; //檢視表結構等詳情
show variables like 'charac%'; //檢視mysql編碼格式
show variables like 'port'; //檢視埠號
create database databasename; //建立資料庫
drop database databasename; //刪除資料庫
drop table tablename; //刪除表 但需要先use 相應資料庫
通用語句
create table table_name(column_name column_type);
示例
create table if not exists `t_student`(
'id' int unsigned auto_increment,
`runoob_title` varchar(100) not null,
`runoob_author` varchar(40) not null,
`submission_date` date,
primary key ( `id` )
)engine=innodb default charset=utf8;
將字段設定為not null,在運算元據庫時,若輸入該字段為null,就會報錯。
auto_increment 為自增屬性,一般用在主鍵,可以用auto_increment=10,設定初始值。
primary_key 定義列為主鍵,不定義則預設為『id』。復合主鍵用逗號分隔即可
資料型別
整數型別
大小範圍
tinyint
1位元組(-128,127) 2^7
smallint
2位元組(-32768,32767) 2^15
mediumint
3位元組2^23
int4位元組
2^31
bigint
8位元組2^63
實數型別
大小範圍
float
4位元組1bit 符號位 8bits 指數字 23bits 小數
double
8位元組1bit 符號位 16bits 指數字 47bits 小數
decimal
8位元組1bit 符號位 16bits 指數字 47bits 小數
decimal型別從mysql 5.1引入,列的宣告語法是decimal(m,d),多用在金錢上。
m是數字的最大數(精度)。其範圍為1~65(在較舊的mysql版本中,允許的範圍是1~254),m 的預設值是10。
d是小數點右側數字的數目(標度)。其範圍是0~30,但不得超過m。
decimail(m,d)佔m+2個位元組。
文字型別
大小char
utf-8 每個字元佔3個位元組
varchar
儲存變長字串
char 最多能存放的字元個數 255,和編碼無關。
varchar型別,用於儲存變長字串,只占用必要的儲存空間。由於是變長,因此需要乙個位元組儲存字串的長度(字串長度小於255時),字串長度大於255時,用兩個位元組儲存字串長度。
使用最小的符合需求的長度。
系統上線後盡量不要修改varchar的長度,因為在mysql 5.7之前,只要一修改就會發生鎖表。
varchar(5)和varchar(200)儲存』aaaaa』這乙個字串時都是使用乙個額外的位元組來記錄字串的長度,那麼他們的效能有什麼不同呢?
varchar(5)優於varchar(200)
因為mysql為了能夠更有效的優化查詢,對於varchar欄位使用的是其最大的寬度來分配記憶體,所以如果我們把寬度定的太長就會消耗更多的記憶體。
時間型別
大小datatime
格式:yyyy-mm-dd hh:mm:ss佔8個位元組時間範圍:1000-1-1 00:00:00至9999-12-31 23:59:59
timestamp
格式:yyyy-mm-dd hh:mm:ss佔4個位元組
date
格式:yyyy-mm-dd佔3個位元組範圍為1000-01-01到9999-12-31
time
格式:hh:mm:ss佔3個位元組範圍為』-838:59:59』/『838:59:59』
year
格式:yyyy佔1個位元組範圍為1901~2155
說明:timestamp 是自動儲存記錄修改的時間
timestamp將客戶端插入的時間從當前時區轉化為utc(世界標準時間)進行儲存,查詢時又將其轉化為客戶端當前時區的時間返回。
datetime不做任何改動,原樣輸入原樣輸出。
另外,兩者範圍不一樣,timestamp儲存的時間範圍:『1970-01-01 00:00:01.000000』 到 『2038-01-19 03:14:07.999999』
datetime儲存的時間範圍:『1000-01-01 00:00:00.000000』 到 『9999-12-31 23:59:59.999999』
增
insert into table_name
-> (name, age)
-> values
-> ("tom", 10);
delete from tablename where id=3; //刪除表中資料
select * from tablename; //檢視表中的內容
在/etc/mysql/my.cnf或者conf.d資料夾下建立乙個*.cnf檔案,寫入以下兩行**
[mysqld]
character-set-server=utf8
重啟mysql
sudo service mysql restart
改好編碼格式後再建立資料庫
1、主鍵應當對使用者沒有意義
2、主鍵應當由計算機自動生成
3、主鍵不應包含動態變化的資料,如時間戳
4、不要更新主鍵
5、主鍵最好是單列,可以提高連線和篩選操作的效率
MySql基本使用指令
1.啟動mysql etc init.d mysql start 執行成功顯示 the mysql monitor.commands end with or g.your mysql connection id is18 server version 5.7 20 0ubuntu0.16 04.1 ...
今日使用學習MySql指令
檢視所有的資料庫 show databases 建立資料庫 create databasename 資料庫名 切換資料庫 use databasename 資料庫名 判斷表是否存在,存在刪除,然後建立表 drop table if exists tablename 表名 create table t...
mysql手機指令 MySQL常用指令
mysql相關指令 資料庫排序規則 常用utf8 general ci 1cmd連線資料庫 1.版本檢視 mysqladmin version 2.連線root mysql u root p,輸入密碼 退出ctrl c 或quit 2查詢資料庫 show databases 3查詢資料表 show ...