//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