约束具体表现在表的层面,属性具体表现在字段的层面。
1.SQL语句的类型
根据作用进行分类:
DDL 数据定义语言
create,drop,alter
DML 数据操作语言(对数据本身做操作,增删改查)
insert,delete,update,select
DCL 数据控制语言
grant,revoke
2.数据库管理操作(DDL数据定义语言)
1.查看数据库
如上图所示,使用show databases;查看数据库
mysql数据库中本来就有的4个数据库的基本作用
information_schema
mysql
performance_schema
sys
MySQL首次启动初始化生成的数据库,作用说明
information_schema 【保存数据库服务器上元数据信息,(数据库名称,数据表名,字段名称,数据类型)】
mysql 【保存用户名,密码,权限】
performance_schema 【保存数据服务器性能相关的数据,例如连接数,进程,线程,】
sys【储存的是跟 performance_schema 中一模一样的信息,】
对 performance_schema数据库的简化,方便数据路管理员查看
mysql软件中的数据库表现在操作系统上面就是在/var/lib/mysql中有对应的文件夹名称
如上图所示,在MySQL中有自己的数据目录,即表现在操作系统层面就是在/var/lib/mysql中有与数据库名称相对应的文件夹。
2.创建数据库
create database test01;
可以使用show databases; 查看数据库当前系统中有哪些数据库,
但是想查看当前系统处于那个数据库可以使用命令select database();
如上图所示,可以使用命令select database();来查看当前处于那个数据库中,
可以使用命令show create database test01;
来查看所创建的数据库的详细信息。
也可以在Linux操作系统 使用 命令 ls /var/lib/mysql 查看MySQL自己的数据目录中是否有与数据库名称相对应的文件夹名称,
在创建数据库的同时必须设置数据库的字符集为utf8,不然无法存入中文数据。
create database test02 charset utf8;
其中的charset utf8参数是用来设置字符集,如果设置字符集是utf8则可以存入中文。
如果不设置字符集为charset utf8则只能存入英文和数字以及特殊符号,不能存入中文,
如果想要数据库中有中文则必须设置数据库的字符集是utf8,如果不给数据库设置字符集则数据库中默认的字符集是latin,中文的数据是无法存入数据库的。
3.删除数据库
如上图所示。可以使用命令drop database test01;
去删除数据库test01
4.切换数据库
use test02;
使用use <数据库名称>就可以切换数据库
如上图所示,可以用命令use <数据库名称>,来切换数据库,可以使用select database();命令来查询当前处于那个数据库下。
3.数据表管理操作
1.创建表
create table 表名(字段名称 数据类型 {约束}【属性】字段名称 数据类型{约束}【属性】。.........)
数据类型:
1.数字
int (表示整数)
int unsigned 表示无符号整数即只能存入正数。
float(m,d)//单精度浮点数{8位精度,m个总数,d个小数}
double(m,d)//双精度浮点数
decimal(m,d)//精确数字,财务数据
2.字符串
char(20) //定长字符,最多存入大小为20个字符的数据。如果存入数据字符数小于20则以空格补齐。
varchar(50) //可变长字符,最多存入大小为50个字符的数据。如果存入数据字符数小于50则以空格补齐。
enum(“男”,“女”) //枚举
3.日期时间
date YYYY-MM-DD
time HH:MM:SS
datetime //年月日时分秒连接到一起
当你以后在数据库的表中操作字符串数据和日期时间数据时,必须用引号将字符串数据和日期时间数据引起来,单引号或者是双引号格式不限。
属性:
1.primary key 主键
2.unique key 惟一键
3.not null 不允许为空
4.auto_increment 自动增长(表中的编号,如果一个表中有几行信息被删除了,那么相应表的编号不会改变。)
5.dafault “值” 是用来设置字段的默认值的,比方说当你在数据库中的表中某一字段中某一行什么信息都不填时,系统填入默认值。
2.删除表
首先要切换到相对应的数据库中,然后使用
drop table 表的名称; 去删除表
最后可以用命令show full tables;
来查看这个数据库中有哪些表。
3.查看表
在数据库中可以使用show tables; 来查看数据库中有哪些表,
也可以使用show full tables;来查看更多表的信息。
4.查看表的结构
如上图所示,可以使用命令desc 表名称;来查看表的具体结构。
实际创建表
mysql> create table inof(
-> ID int primary key auto_increment,
-> name char(10) not null);
Query OK, 0 rows affected (0.01 sec)
如上述文字,其中在数据库test01中创建了名称为inof的表,这个表中有两个字段分别是ID和name
一般我们在create database test01 charset utf8;的数据库进行表的创建时必须要有一个字段是关于编号的,即对表的字段进行设置:ID int primary key auto_increment not null
如上所示,为表的编号字段设置了三个属性分别是primary key主键属性(第一数据不能为空,
第二填入数据的这一列不能为空){通常为编号字段设置主键属性。}
auto_increment自动增长
not null不允许为空
当我们在MySQL数据库中去创建表的时候可以使用use 数据库名称,先切换到相应的数据库中,或者使用create table 数据库名称.表名称(); 这也是表明了我们想在那个数据库中建表。
在数据库中可以使用show tables; 来查看数据库中有哪些表,也可以使用show full tables;来查看更多表的信息。
一个数据库表现在操作系统层面就是一个文件夹(目录),一个表表现在操作系统层面就是多个文件。