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 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章