1. 数据库基本命令
/*连接数据库第一种,只输入用户名,密码密文输入,
输入下列信息后按回车,再输入密码。*/
mysql -u root -p
--连接数据库第二种,直接输入账户和密码,账户后加空格,密码后不加空格。
mysql -u root -pswrici
--退出连接
exit;
--创建一个数据库 ,create database 数据库名
create database databaseName;
--展示数据库,显示出MySQL当前中有的数据库名字。
show databases;
--切换数据库 use 数据库名
use databaseName;
--展示当前数据库拥有的表,(只显示表名),show 表名
show tables;
--要显示表的具体信息,describe 表名
describe tableName;
--两个横线是当行注释,
/* 是多行注释 */
ps1:数据库语言分成四种:
- DDL(数据定义语言)::
- DML(数据操作语言):
- DQL(数据查询语言):
- DCL(数据控制语言):
ps2:MySQL中的关键字不区分大小写
2. 操作数据库
操作数据库>操作数据库中的表>操作数据库中表的数据
2.1 操作数据库
- ps1: [] 中括号内的内容表示可选。
- ps2:如果表名或字段名是特殊字符就要带 ``符号。
2.1.1 .创建数据库
--在创建数据库的时候可以使用 if not exits 来判断数据库是否存在避免报错
create database [if not exits] databaseName;
2.1.2. 删除数据库
--同样删除也可以先进行判断!
drop datanase [if exits] databaseName;
2.1.3 使用数据库
--use加上数据库名。
use databaseName;
2.1.4 查看数据库
--只查看所有的数据库
show databases;
--查看特定表的属性
describe databaseName;
学习思路:
- 强行记住 create 和 drop 类似的关键字。
- 遇到不会的,通过观察SQLYog里的可视化操作历史记录里的代码进行学习。
2.2 数据库的列类型
数值
- tinyint:十分小的数据 1个字节
- smallint:较小的数据 2个字节
- mediumint:中等的数据 3个字节
- int: 标准的数据 4个字节 常用
- bigint:较大的数据 8个字节
- float: 单精度浮点数 4个字节
- double 双精度浮点数 8个字节
- decimal 字符串形式的浮点数 金融使用,解决浮点数的精度问题
字符
- char :固定大小的字符串 0-255;
- varchar:可变大小的字符串 0-65535; 对应Java的String
- tinytext:微型文本 2^8-1
- text:文本串 2^16-1 保存大文本
时间日期
java.util.Date
- date: YYYY-MM-DD 日期格式
- time: HH:MM:SS 时间格式
- datetime: YYYY-MM-DD HH:MM:SS 最常用的时间格式
- timestamp: 时间戳 1970.1.1到现在的毫秒数。也较为常用。
- year : 年份表示。
null
- 没有值,未知
- 不要使用NULL进行运算,结果会为NULL,没有意义
2.3 数据库的字段属性(重点)
-
Unsigned:
- 无符号的整数。
- 声明该字段不能为负数 。
-
zerofill:
- 0填充。
- 长度为10,指输入了1,系统自动填充到0000000001。
-
自增
- 自动在上一条记录加1。
- 通常用来设置主键。
- 可以设置自增的起始值和步长。
-
非空
- 如果是非空的话,不填值就会报错。
- 如果设置为空的话,默认值就是NULL。
-
默认
- 指定一个值为默认值,如果在填写数据的时候,没有填入数据,就会由该默认值顶替上去。
拓展—每个表中都必须存在以下5个固定的字段,做项目用的,表示一个记录存在的意义。
-
自增 : id 主键是必须要的。
-
version: 每一条记录都有自己对应的一个版本号。 做乐观锁的。
-
is_delete :伪删除,一个标志位,通过判断该字段的状态判断该记录是否被删除,但该记录还存在于数据库中,管理员可以通过这查看被删除的东西。
-
gmt_create:阿里巴巴规范,该记录创建时间。
-
gmt_update:修改时间。