操作数据库
一. 数据库的连接(命令行)
1.连接
1 | mysql -uroot -p+password --直接输入密码可以,或者回车输入都可以 |
2.修改密码
1 | update mysql.user set anthentication_string=password('123456') where user='root' and Host='localhost'; --修改用户密码 |
3.==数据库的四种语言==
DDL: 数据库定义语言
DQL: 数据查询语言
DML: 数据操纵语言
DCL: 数据控制语言
二. 操作数据库
==sql语言关键字不区分大小写==
1.创建数据库
1 | CREATE DATABASE [if not EXISTS] saxon;--[]内部的可写可不写,如果在创建的数据库已经有了,那么就报错。 |
2.删除数据库
1 | DROP DATABASE [IF EXISTS] saxon; |
3.使用数据库
1 | USE saxon; |
4.查看数据库
1 | show DATABASES; |
三. 数据库表创建时的类型属性说明

1.整数数值类
tinyint :tinyint数据类型存储从0 到255 之间的所有正整数。每个tinyint类型的数据占用1 个字节的存储空间
smallint :SMALLINT 数据类型存储从-2的15次方( -32, 768) 到2的15次方-1( 32 ,767 )之间的所有正负整数。每个SMALLINT 类型的数据占用2 个字节的存储空间,其中1 位表示整数值的正负号,其它15 位表示整数值的长度和大小。
==int :数据类型存储从-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,647) 之间的所有正负整数。每个INT 类型的数据按4 个字节存储,其中1 位表示整数值的正负号,其它31 位表示整数值的长度和大小。==
bigint:BIGINT 数据类型存储从-2^63 (-9 ,223, 372, 036, 854, 775, 807) 到2^63-1( 9, 223, 372, 036 ,854 ,775, 807) 之间的所有正负整数。每个BIGINT 类型的数据占用8个字节的存储空间。
2.浮点数数值类型
- real: 每个REAL类型的数据占用4 个字节的存储空间。
- float: 每个FLOAT 类型的数据占用4 个字节的存储空间.
- double: 每个double 类型的数据占用8 个字节的存储空间.
- decimal:字符串类型的小数
3.字符串
- char:定长字符串。0-255;
- ==varchar:可变字符串。0-65535;==
- tinytext:微型文本; 2^8-1;
- ==text:保存文本;==
- longtext:极大文本数据;
4.日期类
- date: 格式:YYYY-MM-DD;
- time:格式:HH:mm:ss;
- year:格式:YYYY
- ==datetime:格式:YYYY-MM-DD HH:mm:ss;最常用的数据库日期格式;==
- ==timestamp:时间戳,与Java一样,自1970年1月1日0时0分0秒到现在的时间的毫秒数==
四、数据库的字段属性(重点)
1.unsigned(无符号)
- 无符号整数
- 不可以为负数
2.zerofill(填充零)
- 位数不足,用0来填充。navicat中有一个填充0的操作就是这个意思!
3.自增(自动递增)
- 通常理解为自增,在上一条记录上默认加上一
- 一般用于设置主键,设置递增长度可以确保一次增加值的多少
4.非空(不是null)
- 设置为该属性不设置值的话,就会报错;不填写默认就是null;
5.default(默认)
- 如果输入该列的值,就会有默认值填入
每一个表都必须有下面的几个字段
- ID 就是主键,用来唯一辨识它的东西,不可以重复
version乐观锁- is_delete 伪删除,只是为了在查询的时候设置的一个标志位
- gmt_create 创建时间
- gmt_update 修改时间
五、创建数据库表
1.创建数据库表
1 | --格式 |
2.查看其他的数据库或者数据库表的创建语句
1 | show CREATE DATABASE `saxon` |
3.两种数据库引擎(innodb和myisam)
| InnoDB | MyISAM | |
|---|---|---|
| 事务的支持 | 支持 | 不支持 |
| 外键 | 支持 | 不支持 |
| 适用范围 | InnoDB适合频繁修改以及涉及到安全性较高的应用 | MyISAM适合查询以及插入为主的应用 |
| 是否支持行锁 | 支持 | 不支持 |
| 删除整个表 | 一行一行删除 | 重新建立 |
| 查询数据 | 不会保存行数,查找需要先知道有几行 | 会保存行数,下次直接读出保存的行数 |
1.mysql下的user的表(引擎为MyISAM)
2.mysql下的time_zone_transition_typer的表(引擎为InnoDB)
==具体的细节:https://blog.csdn.net/qq_35642036/article/details/82820178==
4.数据库的字符编码
- 不修改的话默认的就是lanti-,为了保证一致性,我们要在创建时就用上utf-8的字符编码
六、修改和删除表结构
1.修改表名
1 | ALTER TABLE `student` RENAME `student1` |
2.增加表的字段
1 | ALTER TABLE result ADD `sno` INT(4) not null COMMENT'编号'; |
3.修改表的字段
1 | ALTER TABLE `student1` MODIFY `hobby` INT(10);--修改表的字段数值类型,不改变字段的名字 |
4.删除表及字段
1 | ALTER TABLE `student1` DROP lover--删除字段 |



