MySQL数据库

一.先了解数据库中的几类语言
DDL(data definition language):数据定义语言
    create 创建
    drop 删除
    alter 修改
DML(data manipulation language):数据操纵语言
    insert  插入 
    delete  删除
    update 更新
DQL(data query language):数据查询语言
    select  
DCL(data control language):数据控制语言
    grant
    revoke
    commit

二.数据库的基本操作

数据库的创建:
命令的基本形式:
	A {B | C} [D] ...
注意:
	1.没有用{}包的就是正常的必有的
	2.{}内的就是必须要有的参数选项,
		通常其中用‘|’来表示多个选项有且仅有一个。
	3.[]内的就是可有可无的参数选项
	4.语句以分号结尾;

一.创建与删除:
MariaDB下:	
1.创建数据库
	create database [if not exists]数据库名 [采用的字符集] [采用的字符集校验规则];
	表示不存在就创建该数据库,并且指定了字符集以及字符集校验规则;
	后两者不写代表使用默认值
	这里的字符集 charset = utf8;
	字符集校验规则 collation = utf8_general_ci;  -- 不区分大小写
				   collation = utf8_bin;  		 --  区分大小写
2.删除数据库
drop database [if exists]数据库名;

3.数据库的备份与恢复:
	备份:mysqldump -uroot -p -B 生成的文件名 > 重定向的路径; 
	恢复:source 文件路径;
注意:
	备份是在系统命令行下
	恢复是在MariaDB下
二.操纵数据库
1.查看数据库
	show databases;		--显示出所有已经创建的数据库
	show create database 数据库名;	--会显示出创建语句
2.修改数据库
	alter database 数据库名 需要修改的参数信息;
	其实修改的无非也就是字符集或其校验规则;
	如果还要在修改其他的就说明创建数据库时有太多不合理的存在(如变量类型等),
		此时可能需要做的就不是修改数据库了,而是重新创建数据库。
3.查看数据库连接
	show processlist;
	查看连接到该数据库的用户情况。

三.数据库表的操作

数据库表的操作:
一.创建与删除:
1.创建表:
	create table [if not exists]表名(
		字段1名称 类型  [约束类型],
		...(最后一个语句后不加 ‘,’)
	) character set 字符集 collate 校验规则 engine 存储引擎;
	字符集、校验规则、存储引擎这几个参数不给会用默认值
2.删除表:
	drop table [if exists]表名;
二.操纵表
1.插入数据
	insert into 表名(列名) values(各字段的值);
	注意:如果是整行插入则无需再写入列名。
2.查看表信息
	show tables;  --显示在该数据库下的所有数据表
	show create 表名; -- 查看创建该表的语句
	desc 表名;		--查看具体的表信息

四.几种约束

几种约束:
1.null/not null约束:
	表示该字段是否可以为空。
2.unique约束:
	表示该字段的信息不能重复
3.primary key:
	表示该字段可以决定该表的唯一确定的一行数据,并且该约束也会要求该字段非空
4.foreign key:
	该字段是用来建立该表与其他表之间的联系的
	定义方式:
		先创建主表
		foreign key 从表中的列信息 references 主表表名(主表列名)
5.zerofill:
	自动补0。假定某字段被定义成10位数,则其余位数不够的自动在前面补0
6.auto_increment:
	自增长约束,表示插入数据的时候该列可以不用给值,直接按照类型进行++操作;
	该约束可以加在任意列上,但通常加在主键上。
7.default:
	默认值:为某字段设置默认值。
	
注意:以上约束除了foreign key,其余都可以直接在创建表时直接在列后面加上某约束