SQL语句分类和语法
DQL:Data QueryLanguage 数据查询语言
作用: 查询表中的字段
命令: select 查询
⑦select 查询列表
①from 表1 别名
②连接类型 join 表2
③on 连接条件
④where 筛选
⑤group by 分组列表
⑥having 筛选
⑧order by排序列表
⑨limit 起始条目索引,条目数;
DML:Data Manipulation Language数据操纵语言
作用:对数据库的数据进行相关操作(对表中的记录进行操作)
命令: delete 删除表中一条或多条记录
update 更改表中记录
insert 向表中添加记录.
truncate 清空表
- delete 语法:
DELETE FROM 表名 WHERE 列名 = 值
- update 语法:
UPDATE 表名 SET 列名 = 新值 WHERE 列名称 = 某值
- insert 语法:
INSERT INTO 表名(列1,列2,...) VALUES (值1,值1,...)
可以省略列名,但是值要和列名的顺序和个数一一对应
- truncate 语法:
TRUNCATE table 表名;
TRUNCATE table user;
DDL:Data Definition Language数据定义语言
作用:创建表,删除表,定义或改变表的结构、数据类型、表之间的链接、约束
命令: create 创建表,创建库,复制表
alter 修改表中字段(增加列,更改列,删除列)
drop 删除表
- create 语法:
创建库
create database 库名
更改库的字符集 CHARACTER字符集
ALTER DATABASE 库名 CHARACTER SET 字符集;ALTER DATABASE books CHARACTER SET gbk;
修改库名
需要修改:
1.停止MySQL服务
2.修改文件夹名
3.启动MySQL服务创建表
create table 表名(
列名 列的类型【长度 约束】,
列名 列的类型【长度 约束】,
列名 列的类型【长度 约束】,
...
列名 列的类型【长度 约束】
)复制表
①仅仅复制表的结构
create table 表名 like 旧表CREATE TABLE copy LIKE author;
②复制表的结构+数据
create table 表名 select 查询列表 from 旧表【where筛选】全部复制
CREATE TABLE copy2
SELECT * FROM author;复制一小部分
CREATE TABLE copy3
SELECT id,au_name
FROM author
WHERE nation='中国';可以跨库复制表的结构 库名.表名
CREATE TABLE dept2
SELECT department_id,department_name
FROM myemployees.departments;
- alter 语法:
ALTER TABLE 表名
add|drop|modify|change COLUMN 列名 新的列名 类型【约束】
①修改列名
after table 表名 change column 旧列名 新列名 类型;ALTER TABLE user CHANGE COLUMN annual2 pubDate datetime;
②修改列的类型或约束
after table 表名 modify column 列名 新类型【新约束】ALTER TABLE `user` MODIFY COLUMN pubDate TIMESTAMP not null;
③添加新列
after table 表名 add column 列名 类型【(first|after 字段名)控制添加的位置】默认就是在最后ALTER TABLE `user` ADD COLUMN annual DOUBLE FIRST;
ALTER TABLE `user` ADD COLUMN annual2 DOUBLE AFTER id;
ALTER TABLE test2 ADD COLUMN ddd3 INT last;不支持,默认就是在最后
④删除列
ALTER TABLE 表名 DROP COLUMN 列名;ALTER TABLE user DROP COLUMN annual;
⑤修改表名
after table 表名 rename 【to】 新表名;ALTER TABLE user RENAME TO book_author;
- drop 语法:
DROP table 表名;
IF EXISTS 做判断,仅仅在表的删除和表的创建时使用
exists : 强调的是是否返回结果集,不要求知道返回什么
exists (sql 返回结果集为真) 有
not exists (sql 不返回结果集为真)没有
DROP DATABASE IF EXISTS 旧的库名
CREATE DATABASE 新的库名
DROP TABLE IF EXISTS 旧的表名
CREATE TABLE 新的表名
DCL:Data Control Language 数据控制语言DCL
作用: 数据控制语言DCL用来设置或更改数据库用户或角色权限
命令: grant 授权
revoke 收回已经授予的权限
TCL:Transaction Control Language 事务控制语言TCL
命令:COMMIT 提交
ROLLBACK 回滚
SAVEPOINT 在事务中设置保存点,可以回滚到此处
SET TRANSACTION 改变事务选项
#显示自动提交的状态
SHOW VARIABLES LIKE 'autocommit';
autocommit 自动提交
value on 表示开启#步骤1:开启事物
set autocommit=0;#禁用自动提交,写了这个就默认开启事物
start transaction;#可选的#步骤2:编写事物中的SQL语句
(只支持 insert update delete,增删改查才有用。select可以使用但是没什么意义)ddl语言没有事物之说
语句1;
语句2;
...#步骤3:结束事物
commit;提交事物,没有意外,语句可以全部执行rollback;回滚事物,有意外回滚,语句不能全部执行(jdbc使用)
SQL语句分类和语法的更多相关文章
- 五、mysql中sql语句分类及常用操作
1.sql语句分类: DQL语句 数据查询语言 select DML语句 数据操作语言 insert delete update DDL语句 数据定义语言 create drop alter TCL语 ...
- MySQL(三)之SQL语句分类、基本操作、三大范式
一.SQL语句的分类 DML(Data Manipulation Langauge,数据操纵/管理语言) (insert,delete,update,select) DDL(Data ...
- MariaDB——SQL语句分类汇总
常用SQL语句汇总 SQL语句在所有的关系型数据库中都是通用的,算起来sql语句也是一门语言,只不过这门语言的主要操作对象是关系型的数据库,其中最常用的还是查询相关的语句. sql语句主要分为: DQ ...
- Oracle中SQL语句分类
Oracle中SQL语句分类如下:1.DML语句 insert/delete/update/select/merge/explan plan/lock table2.DDL语句 create/atlt ...
- SQL语句分类
SQL Structured Query Language SQL是结构化查询语言,是一种用来操作RDBMS的数据库语言,当前关系型数据库都支持使用SQL语言进行操作,也就是说可以通过 SQL 操作 ...
- oracle Sql语句分类
dml语句:数据操作语句[insert,update,delete] ddl语句:数据定义语言[create table,drop table] dql语句:数据查询语句[select] dtl语句: ...
- oracle中sql语句的to_date语法
完整日期:TO_DATE('2009-4-28 00:00:00', 'yyyy-mm-dd hh24:mi:ss'); to_date('2008/09/20','yyyy/mm/dd') 创建视图 ...
- 1 Oracle概述&与MySQL的差别&SQL语句分类复习
一. 知识点目录 Oracle的概念和安装 基本查询 条件查询 Oracle中的函数 多表查询 子查询 表空间的状态 用户 视图 索引 序列 同义词 PLSQL编程 游标 存储过程 存储函数 触发器 ...
- 常用的sql语句(存储过程语法)
1.存储过程语法 ①package create or replace package PKG_RPT_WAREHOUSE is -- Author : -- Created : 2018/9/28 ...
随机推荐
- windows系统安装部署python3.5和python2.7双解释器并存
前提材料准备: 下载对应版本的安装包:下载地址:https://www.python.org/downloads/windows/ python3.8.x安装包下载: python2.7.x安装包下载 ...
- C# 调用APlayer教程
APlayer介绍 引擎介绍: APlayer 媒体播放引擎是迅雷公司从 年开始开发的通用音视频媒体文件播放内核. 迅雷看看播放器和迅雷影音就是使用 APlayer 作为播放内核,目前迅雷看看播放器在 ...
- tensor数据基操----索引与切片
玩过深度学习图像处理的都知道,对于一张分辨率超大的图片,我们往往不会采取直接压平读入的方式喂入神经网络,而是将它切成一小块一小块的去读,这样的好处就是可以加快读取速度并且减少内存的占用.就拿医学图像处 ...
- MySQL学习——备份和还原
MySQL学习——备份和还原 摘要:本文主要学习了如何备份和还原数据库. 部分内容来自以下博客: https://www.cnblogs.com/chenmh/p/5300370.html 常用命令 ...
- github下载总是失败解决
解决访问github等网站慢或下载失败的问题 第二种方法可以使用
- P2048 [NOI2010]超级钢琴 [堆+st表]
考虑只能取长度为 [L,R] 的,然后不难想到用堆搞. 搞个前缀和的st表,里面维护的是一个 最大值的位置 struct rmq { int mx[N][20] ; void qwq(int n) { ...
- 浏览器console控制台不显示编译错误/警告
浏览器正常显示报错应该是这样的 ,但是我一不小心右键给Hide message from...了,红色报错字体就没了,解决方法如下: 直接将红色框内的内容叉掉,恢复成filter就OK了
- 0011 基于DRF框架开发(04 普通序列化器)
普通序列化器和模型无关,只是对针对提交字段的定义. 本文定义三个序列化器: 教师序列化器,学生序列化器,教师学生序列化器.这三个序列化器都使用普通序列化器. 1 教师序列化器 在Application ...
- xctf进阶-unserialize3反序列化
一道反序列化题: 打开后给出了一个php类,我们可以控制code值: `unserialize()` 会检查是否存在一个 `__wakeup()` 方法.如果存在,则会先调用 `__wakeup` 方 ...
- 我的翻译--一个针对TP-Link调试协议(TDDP)漏洞挖掘的故事
前言 我写这篇文章原本是为了简化WiFi渗透测试研究工作.我们想使用去年由Core Security发布的WIWO,它可以在计算机网络接口和WiFi路由器之间建立一个透明的通道. 研究的第一步,就是选 ...