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