博客
关于我
SQL语言-DDL、DML、DCL
阅读量:610 次
发布时间:2019-03-12

本文共 2278 字,大约阅读时间需要 7 分钟。

SQL基础入门与分类

一、SQL概述

SQL(Structure Query Language,结构查询语言)是一种标准化的关系型数据库查询语言,由美国国家标准局(ANSI)确定为关系型数据库的美国标准,后被国际化标准组织(ISO)采纳为关系型数据库的国际化标准。

各数据库厂商都支持ISO的SQL标准,也在标准基础之上做了扩展。
SQL提供了CRUD操作的实现,即Create、Read、Update、Delete四个基本操作。

二、SQL语言分类

根据功能划分,SQL可以分为以下几类:

1. DDL(Data Definition Language,数据定义语言)

用于定义数据库对象:包括库、表、列等。

2. DML(Data Manipulation Language,数据操作语言)

用于对数据库记录(数据)进行增删改操作。

3. DCL(Data Control Language,数据库控制语言)

用于定义数据库安全权限和访问级别。

4. DQL(Data Query Language,数据查询语言)

用于查询数据库记录(数据)。

三、DDL操作

1. 操作数据库

创建数据库

create database mydb1;create database mydb1 character set utf8mb4;create database mydb1 set GBK collate gbk_chinese_ci;

查看数据库

show databases;show create database mydb1;

修改数据库

alter database mydb1 character set utf-8;

删除数据库

drop database mydb1;

切换数据库

use mydb2;

2. 操作表

创建表

create table card(	cardid int not null,	cardnum varchar(20),	regDate date);

查看表

show tables;desc cardinfo;

表操作

  • 删除表
drop table cardinfo;
  • 增加列
alter table cardinfo add delDate date;
  • 修改列
alter table cardinfo change cardnum cardnum varchar(30);
  • 删除列
alter table cardinfo drop regDate;
  • 修改表名
alter table card rename CardInfo;
  • 查看字符集
alter table 表名 character set utf-8;

四、DML操作

1. INSERT操作

basic insert

insert into 表名(列名) values(数据值);insert into student(stuname,stuage,stusex,birthday) values('张三1',18,'a','2000-1-1');

omit column name

insert into student values('李四',12,'1111',189.98,'2000-1-1','男','2007-1-1');

multiple rows

insert into student(stuname,stuage,stusex,birthday) values('张三3',18,'a','2000-1-1'), ('张三4',18,'a','2000-1-1');

注意事项

  • 列名与列值一一对应且顺序一致。
  • 非数值字段需用单引号括起来。
  • 日期和字符串需用单引号括起。
  • 注意字段长度和约束。

2. UPDATE操作

basic use

update 表名 set 列名1=值1,列名2=值2... where 条件;update student set stuname='张三', stuage=18 where id=1;

3. DELETE操作

basic delete

delete from 表名 [where 条件];delete from student where id=1;

truncate table

truncate table 表名;

注意事项

  • delete用于删除数据,表结构不变,数据可恢复。
  • truncate直接清空表,执行速度快,删除的数据不可恢复。

五、日期类型

SQL提供多种日期类型:

  • dateyyyy-MM-dd
  • timehh:mm:ss
  • datetimeyyyy-MM-dd hh:mm:ss

获取当前时间:now()

六、SQL运算符

算术运算

+-*/%

赋值运算

= 从右向左赋值

逻辑运算

andornot

关系运算

>, <, >=, <=, !=, <>, =

七、DCL操作

创建用户

create user 用户名@localhost identified by 密码;create user test@'%' identified by 'test@123';

授权用户

grant select,insert,delete,update,create on test_db.* to test@'%';grant all on *.* to test@localhost;

查询权限

show grants for test@'%';

移iors

转载地址:http://mrtxz.baihongyu.com/

你可能感兴趣的文章
nginx配置一、二级域名、多域名对应(api接口、前端网站、后台管理网站)
查看>>
Nginx配置代理解决本地html进行ajax请求接口跨域问题
查看>>
nginx配置全解
查看>>
Nginx配置参数中文说明
查看>>
Nginx配置后台网关映射路径
查看>>
nginx配置域名和ip同时访问、开放多端口
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
Nginx配置负载均衡到后台网关集群
查看>>
ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
查看>>
NHibernate学习[1]
查看>>
NHibernate异常:No persister for的解决办法
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>