博客
关于我
SQL语言-DDL、DML、DCL
阅读量:595 次
发布时间: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/

你可能感兴趣的文章
Java中有几种基本数据类型?它们分别占多大字节?
查看>>
Java中基本类型的转换规则
查看>>
Mapper 接口方法如何与注解里的 SQL 进行绑定的?
查看>>
python安装和配置(win10)
查看>>
重构函数(1)条件合并
查看>>
2020编码大赛(1)题目
查看>>
BitChanger语言
查看>>
Pythagorea(3)第16-21章
查看>>
纪念碑谷(1-5章)
查看>>
基数树(radix tree)
查看>>
58Q游戏(4)73(5)85(6)98(7)
查看>>
独立钻石棋详解
查看>>
106 多米诺骨牌(12)119(8)130(9)142(10)150(11)
查看>>
点亮细胞171-180
查看>>
C++ Primer Plus读书笔记:c++字符串
查看>>
CSU 1757: 火车入站(区间覆盖的最大覆盖深度)
查看>>
C++ Primer Plus读书笔记:循环读取(错误处理)
查看>>
《架构师36项修炼》Mysql 异常情况下的事务安全 -- 详解 Mysql redolog
查看>>
skimage与cv2 安装失败的解决办法
查看>>
linuxmint 上面装谷歌浏览器
查看>>