数据库分类
- 关系型数据库(SQL)
- MySQL、Oracle、Sql Server
- 通过表和表之间,行和列之间的关系进行数据的存储。
- 非关系型数据库(NoSQL(Not Only))
- Redis、MongDB
- 通过对象存储,通过对象的自身的属性来决定。
DBMS:数据库管理系统
连接数据库
命令行连接
–:单行注释(SQL本来的注释)
/*
*/:多行注释
mysql -uroot -p123456 --连接数据库
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost'; --修改用户密码
flush privileges; --刷新权限
----------------
-- 所有的语句都是用“;”结尾
show databases; --查看所有的数据库
use <数据库名> --切换数据库:use 数据库名
Database changed:表示切换成功
show tables; --查看数据库中的所有表
describe student; --显示数据库中所有表的信息
create database <数据库名>; --创建一个数据库
drop database <数据库名>; --删除数据库
exit; --退出连接
MySQL分为四个语言
-
DDL:数据库定义语言
-
DML:数据库操作语言
-
DQL:数据库查询语言
-
DCL:数据库控制语言
操作数据库
MySQL关键字不区分大小写
-
创建数据库
CREATE DATABASE IF NOT EXISTS westos --创建数据库westos
-
删除数据库
DROP DATABASE IF EXISTS westos --删除数据库westos
-
使用数据库
-- tab键上的`如果你的表名或者字段名是一个特殊字符,就需要带“`<数据库>`” USE `school` --切换到“school”数据库上
-
查看数据库
SHOW DATABASES --查看所有的数据库
数据库的列类型
数值
- tinyint 十分小的数据 1个字节
- smallint 较小的数据 2个字节
- mediumint 中等大小的数据 3个字节
- int 标准的整数 4个字节(常用)
- bigint 较大的数据 8个字节
- float 浮点数 4个字节
- double 浮点数 8个字节
- decimal 字符串形式的浮点数 (一般用于金融计算)
字符串
- char 字符串固定大小 0~255
- varchar 可变字符串 0~65535(常用变量)
- tinytext 微型文本 2^8 - 1
- text 文本串 2^16 - 1(存储大文本)
时间日期
- data YYY-MM–DD,日期格式
- time HH:mm:ss 时间格式
- datetime YYY-MM–DD HH:mm:ss (常用时间格式)
- year 年份表示
null
- 没有值,未知
- 不要使用NULL进行运算,结果为NULL
数据库的字段属性(重点)
Unsigned:
- 无符号的整数
- 声明了该列不能声明为负数
zerofill:
- 0填充
- 不足的位数,使用0来填充 —>int(3) >>> 6 —> 006
Auto Incr:
- 自增,自动在上一条记录的基础上 + 1(默认)
- 通常用来设计唯一的主键,必须是整数类型
- 可以自定义主键的起始值和步长
Not Null:
- 非空
- 假设设置为空,如果不赋值,会报错
Default:
- 设置默认值,如果不指定会自动生成默认值