mysql 黑窗口連接數據庫以及常用數據類型

//tee d:1.txt 可將操作保存在d盤的1.txt中

開始鍵+R打開運行輸入cmd進入黑窗口

1.基本操作

1.連接
    本地連接:
        mysql -u root -p回車
        密碼
    遠程連接:
        mysql -h ip -u 帳號 -p回車
        mysql -h 127.0.0.1 -u root -p
        遠程連接,必須經過授權

    root :  超級管理員,權限最高,默認存在 

2.退出客戶端
    exit
    quit
    \q
    ctrl+c

語法:
    1.每個SQL指令以 分號 結束 
    2.可以一行拆分多行
    3. \c 取消本次執行
    4.不區分大小寫,建議區分

-- my.ini 設置字符集
[mysql]
    default-character-set=utf8
    character-set-server=utf8


選庫: use `庫名`;

    庫的位置:mysql/data

反引號 `` 
        避免用戶使用系統關鍵字,導致語法錯誤!
        如果是 `庫名`,`表名`,`字段名`  請使用反引號,將名字引起來
        建議別使用敏感字

查看當前庫:
    select database();

查看錶結構:
    desc `表名`;

+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  |   PRI  | NULL    |    auto_increment   |
+-------+---------+------+-----+---------+-------+

2.整型

tinyint 1字節
int     4字節
存儲單位:
    1(byte)字節 = 8(bit)位
        1111 1111
    1024字節 = 1KB
    1024KB   = 1MB

無符號:8位都用於表達一個數
    1111 1111 最大值爲  255
    不能表示負數的
    取值範圍:0 - 255

有符號:
    符號位

    取值範圍:-128 - 127
    可以表示正數,負數
--建表
create table if not exists `t1`(
    `col1` tinyint ,
    `col2` int ,
    `col3` smallint 
)engine=innodb default charset=utf8;
--插入數據
insert into `t1`(`col1`,`col2`,`col3`) values();
--查看所有字段,所有數據
select * from `t1`;


--- 測試有符號與無符號區別
create table if not exists `t2`(
    `col1` tinyint,
    `col2` tinyint unsigned
)engine=innodb default charset=utf8;


-- col2 字段是無符號的,不能插入負數,以最小值插入
insert into `t2` (`col1`,`col2`) values(-13,-23);



--插入不是整型的
create table if not exists `t3`(
    `col1` tinyint,
    `col2` int
)engine=innodb default charset=utf8;

-- 超出範圍取最大值 ,並警告
insert into `t3` (`col1`,`col2`) values(182 , 12345678912);

-- 插入布爾值
insert into `t3` (`col1`,`col2`) values(false , true);

-- 插入浮點型 4舍5入
insert into `t3` (`col1`,`col2`) values(1.53 , 123.21);

-- 插入字符串
-- 插入字符,會從字符串中提取數字,無法提取,插入的值就是 0 
insert into `t3` (`col1`,`col2`) values('zheng' , 'mao');
insert into `t3` (`col1`,`col2`) values('85zheng' , '32mao');

--自增    每插入一條數據,該字段自+1
create table if not exists `t4`(
    `col1` int unsigned auto_increment primary key,
    `col2` int 
)engine=innodb default charset=utf8;

auto_increment : 自增 (要配合primary key使用纔有效)
primary key : 主鍵

insert into `t4` (`col1`,`col2`) values(1.53 , 123.321);
insert into `t4` (`col2`) values( 123.321);

3.浮點型

create table if not exists `f1`(
    `col1` float ,
    `col2` double 
)engine=innodb default charset=utf8;

insert into `f1`(`col1`,`col2`) values(12.22,33.98);

--超出長度  
insert into `f1`(`col1`,`col2`) values(120000000000000000000000000000000000000000000000000000000000000000000000,33);

-- 浮點數不需要指定無符號,默認就可以

-- 數字字符串
insert into `f1`(`col1`,`col2`) values('88.12','98.59');

-- 插入字符串轉換爲 0
insert into `f1`(`col1`,`col2`) values('asdf','req');

-- 提取數字
insert into `f1`(`col1`,`col2`) values('11.23asdf','33.12req');

-- 定點浮點型
create table  `f2`(
    `col1` float(6,2),
    `col2` double(10,2) 
)engine=innodb default charset=utf8;

--超出長度
insert into `f2` (`col1`,`col2`) values(99999994,989889988998832);

-- 保留位數 4舍5入
insert into `f3` (`col1`,`col2`) values(3.97569,8.1233123);

4.字符串

char()  定長
varchar() 非定長

create table if not exists `c1`(
    `col1` char(3), 
    `col2` varchar(6)

)engine=innodb default charset=utf8;

char: 定長
    如果定義時,指定了長度,在插入時,不滿足長度,其餘使用空格替代
    效率略高
varchar : 變長
    如果定義時,指定了長度,在插入時,按實際長度插入

-- 超出長度 ,按定義長度截取
insert into `c1`(`col1`,`col2`) values('abcd','demaxiya');  

insert into `c1`(`col1`,`col2`) values('ac','jie');

-- 空格 也是普通字符串
insert into `c1`(`col1`,`col2`) values(' s b','hehe');

-- 中文 char 與varchar 不考慮中英文,統一長度

insert into `c1`(`col1`,`col2`) values('智勇','今晚浪哥大戰');
insert into `c1`(`col1`,`col2`) values('勇哥給你直播','今晚浪哥大戰在小樹林');

5.枚舉

-- 創建表
create table if not exists `user`(
    `id` int unsigned not null auto_increment primary key,
    `name` varchar(255),
    `age` tinyint unsigned,
    `sex` enum('0','1','2'),
    `like` set('籃球','足球','排球')

)engine=innodb default charset=utf8;

enum() set() 插入非法數據,將其截取爲 空
enum()  多個選一個
        insert into `user`(`name`,`age`,`sex`,`like`) values('提莫',19,'1','籃球');
        insert into `user`(`name`,`age`,`sex`,`like`) values('提莫',19,'3','籃球'); -- 插入2
        insert into `user`(`name`,`age`,`sex`,`like`) values('提莫',19,'工','籃球'); -- 截取爲空
        insert into `user`(`name`,`age`,`sex`,`like`) values('提莫',19,'a','籃球'); -- 截取爲空

        insert into `user`(`name`,`age`,`sex`,`like`) values('琴女',36,'0,2','籃球'); -- 不符合

set()   多個選多個
        insert into `user`(`name`,`age`,`sex`,`like`) values('lili',29,'2','hello');
        insert into `user`(`name`,`age`,`sex`,`like`) values('lili',29,'2','籃球,排球');

6.null

空表示,沒有或未知

在數據庫,不要使用 null 做任何計算
null 運算後,結果還是 null 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章