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

本文共 2291 字,大约阅读时间需要 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/

你可能感兴趣的文章
node编译程序内存溢出
查看>>
Node读取并输出txt文件内容
查看>>
node防xss攻击插件
查看>>
noi 1996 登山
查看>>
noi 7827 质数的和与积
查看>>
NOI2010 海拔(平面图最大流)
查看>>
NOIp2005 过河
查看>>
NOIP2011T1 数字反转
查看>>
NOIP2014 提高组 Day2——寻找道路
查看>>
NOIp模拟赛二十九
查看>>
Nokia5233手机和我装的几个symbian V5手机软件
查看>>
Non-final field ‘code‘ in enum StateEnum‘
查看>>
none 和 host 网络的适用场景 - 每天5分钟玩转 Docker 容器技术(31)
查看>>
None还可以是函数定义可选参数的一个默认值,设置成默认值时实参在调用该函数时可以不输入与None绑定的元素...
查看>>
NOPI读取Excel
查看>>
NoSQL&MongoDB
查看>>
NoSQL介绍
查看>>
Notadd —— 基于 nest.js 的微服务开发框架
查看>>
Notepad ++ 安装与配置教程(非常详细)从零基础入门到精通,看完这一篇就够了
查看>>
Notepad++在线和离线安装JSON格式化插件
查看>>