数据库
首页 > 数据库> > Linux结构化查询语言SQL——SQL的分类和DDL使用

Linux结构化查询语言SQL——SQL的分类和DDL使用

作者:互联网

SQL:Structured Query Language 即结构化查询语言,SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。

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

数据库服务器:运行着数据库应用程序的设备,硬件+系统软件+MYSQL软件

默认数据库
硬件+系统软件+MYSQL软件

information_schema: 虚拟库,主要存储了系统中的一些数据库对象的信息,例如用户表信息、列信息、权限信息、字符信息等

performance_schema: 主要存储数据库服务器的性能参数
1.提供进程等待的详细信息,包括锁、互斥变量、文件信息;
2.保存历史的事件汇总信息,为提供MySQL服务器性能做出详细的判断;
3.对于新增和删除监控事件点都非常容易,并可以随意改变mysql服务器的监控周期

mysql: 授权库,主要存储系统用户的权限信息

sys: 主要存储数据库服务器的性能参数:SYS database中,可以获取mem page、io 、latch/mutex/lock等各种性能数据,方便做peformance turning 和 troubleshooting。比如可以方便获取2个sql发生 lock block,用户占用的资源等信息。
数据库

表:记录的管理单元

记录(行):信息的载体,字段的管理单元
字段(列):字段名,字段类型(长度),字段约束组成(可选)
类型:字符,数字,日期
约束:不能为空,自动增长
图示
在这里插入图片描述

DDL-库
创建业务数据库 CREATE DATABASE 数据库名;
要求(区分大小写,唯一性,不能使用命令作为数据库命名 create select,不能单独使用数字和特殊符号“如-";正常的:用拼音或单词即可。

查看所有数据库        SHOW DATABASES;
选择/进入数据库       USE 数据库名
调用函数,查询当前库   SELECT database();
删除数据库           DROP DATABASE 数据库名;
系统中的位置         /var/lib/mysql/

数据类型
1.数值类型: 整数类型 int 浮点数类型 float
2.字符串类型 字符系列 CHAR和VARCHAR (char的长度不可变。varchar的长度可以增加。)
枚举类型 ENUM 单选
集合类型 SET 多选
3.时间和日期类型 (年 YEAR 日期 DATE 时间 TIME )

完整性约束:
由于生活中需要避免重名的情况,所以数据库中某列使用完整性约束来限定此类要求,用于保证数据的完整性和一致性。

约束类型
PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录,不可以为空

FOREIGN KEY (FK) 标识该字段为该表的外键,实现表与表(父表主键/子表1外键/子表2外键)之间的关联

UNIQUE KEY (UK) 标识该字段的值是唯一的,可以为空,一个表中可以有多个UNIQUE KEY

AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键)

DEFAULT 为该字段设置默认值(字段是否有默认值,缺省的默认值是NULL,如果插入记录时不给字段赋值,此字段使用默认值
sex enum(‘male’,‘female’) not null default ‘male’ //默认值male
age int unsigned NOT NULL default 20 //必须为正值(无符号) 不允许为空 默认是20)

NOT NULL 标识该字段不能为空(是否允许为空,默认NULL,可设置NOT NULL,字段不允许为空,必须赋值)

UNSIGNED 无符号,正数

ZEROFILL 使用0填充,例如0000001

在这里插入图片描述

DDL-表

创表目的:表是数据库存储数据的基本单位,表由若干个字段(列)组成,主要用来存储数据记录(行)。

create table 表名(字段名1 类型,字段名2 类型,字段名3 类型 );

mysql> CREATE  DATABASE school;        创建数据库school
mysql> use school;	                   使用库
mysql> create table student1(  id int, name varchar (20) ,   sex enum('m','f'), age int );
mysql> show tables;	                   查看表名(需要进入一个数据库)

insert into student1 values (1,'zhangsan','m',33) ,
insert into student1 values (2,'lisi','f',20) ,
insert into student1 values (1,'wangwu','m',40) ,

mysql> select * from student1;      查询表中所有字段的值 
desc student1;                              查看表结构

标签:SQL,数据库,Linux,为空,mysql,类型,查询语言,默认值,student1
来源: https://blog.51cto.com/u_15157833/2706840