SQL语句

约束具体表现在表的层面,属性具体表现在字段的层面。

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;来查看更多表的信息。

一个数据库表现在操作系统层面就是一个文件夹(目录),一个表表现在操作系统层面就是多个文件。

相关推荐
hefaxiang25 分钟前
【MYSQL】mysql约束---自增长约束(auto_increment)
数据库·mysql
琴智冰26 分钟前
SpringBoot
java·数据库·spring boot
AAEllisonPang34 分钟前
Oracle 时间计算
数据库·oracle
m0_7164990635 分钟前
达梦8-数据守护集群主备故障实验和脑裂处理
数据库
小登ai学习1 小时前
简单认识 redis -3 -其他命令
数据库·redis·缓存
m0_687399841 小时前
QT combox 前缀匹配
开发语言·数据库·qt
vvvae12349 小时前
分布式数据库
数据库
雪域迷影10 小时前
PostgreSQL Docker Error – 5432: 地址已被占用
数据库·docker·postgresql
bug菌¹11 小时前
滚雪球学Oracle[4.2讲]:PL/SQL基础语法
数据库·oracle
逸巽散人11 小时前
SQL基础教程
数据库·sql·oracle