sql操作数据库(1)-->DDL、DML、DQL
SQL 操作数据库
概念:结构化查询语言 Structured Quary Language
作用:
1.是一种数据库的查询的标准,对所有的数据库都支持
2.不同的数据库SQL语句可能有点不同 (方言),mysql oracle DB2
sql语句分类
1.DDL:操作数据库、表 数据定义语言 Data Definition Language
2.DML:增删改表中的记录 数据操作语言 Data Manipulation Language
3.DQL: 查询表中的记录 数据查询语言 Data Query language
4.DCL:管理用户与授权 数据控制语言 Data Control language
DDL 语言
1.操作数据库 CRUD操作
1.创建数据库 方式有很多种: C ---create
create database 数据库名;
create database if not exists 数据库名;// 创建的时候先判断数据库是否存在
create database 数据库名 character set 编码字符集;// 创建数据库的指定编码字符集
-- 分号 一般是sql语句的结束标志
create DATABASE java31;
-- 创建数据库的第二种方式 create database if not exists 数据库名;
create database if not EXISTS apartment;
-- 创建数据库的第三种方式 create database 数据库名 character set 编码字符集;
create database school character set utf8;
-- 三者组合到一起表达
create database if not EXISTS college character set utf8;
2. 查询 r --->retrieve
查询当前数据库服务器的所有的数据库
show databases;查询某个数据库的编码字符集:查询某个创建的数据库的编码字符集
show create database 数据库名称;
3.修改 u-->update
- 修改数据库的编码字符集
alter database 数据库名称 character set 编码字符集;
-- alter database 数据库名称 character set 编码字符集;
alter database college character set gbk;
4. 删除 d -->delete drop
删除数据库
drop database 数据库名称;判断数据库是否存在,如果存在删除掉
drop database if exists 数据库名称;
-- drop database if exists 数据库名称;
drop database if EXISTS school;
- 操作表
1. 创建表 C --> create
语法:
create table 表名(
列名1 数据类型,
列名2 数据类型,
。。。。。。。
);
数据类型
整数类型 tinyint(微整形) 8位 smallint(小整形)16位 mediumint(中整形)24位 int(integer) 整形32位
小数类型 double 8个字节 float 4个字节
日期类型 date (年月日) time (时分秒) datetime (年月日时分秒) timestamp 时间戳 年月日时分秒
时间戳,如果该字段为时间戳类型,没有赋值或者该字段值为null,则默认使用系统当前的时间自动赋值。一般情况一张表中只能有一个字段使用时间戳数据类型。
- 字符串类型 char(固定长度的字符串) varchar(可变长度的字符串) 使用几个字符就占几个
- 二进制类型 tinyblob(允许0~255个字节) big large blob(允许0~65535个字节) longblob(非常大)
- 文本类型 tinytext (允许长度为0~255个字节) text(允许0~65535个字节) longtext(非常大)
2. 查看表 查询 retrieve
show tables 查看当前使用的数据库下面的所有的表
desc 表名; 描述该表的结构
查看创建的表 show create table 表名;---->查看该表创建使用到的sql语句
快速创建一个表结构相同的表 create table 新表名 like 旧表名;
3. 修改 update
修改表名 alter
alter table 旧表名 rename to 新表名;修改表的字符集
alter table 表名 character set 编码字符集;添加一列字段 add
alter table 表名 add 列名 数据类型;删除一列 drop
alter table 表名 drop 列名;修改列名 数据类型
- change alter table 表名 change 旧列名 新列名 新数据类型;
- modify alter table 表名 modify 列名 新数据类型;
4. 删除 delete
删除表 drop table 表名;
删除判断表是否存在 drop table if exists 表名;
大多数情况下我们是直接借助于图形化管理工具 Navicat直接操作。
DML 增删改数据库中的表的数据
添加数据:
语法:
insert into 表名(列名1,列名2,......列名n) values(值1,值2,......值n);
注意事项:
列名和后面值的类型要保持一致。
如果表名后面没有指定列名,默认为给该表中的所有的列添加对应的值。注意依然是有顺序的。
insert into 表名 values(值1,值2,......值n);
除了数字类型外(int,double),其他类型一律要使用引号(单引号和双引号都可以)引起来。
删除数据:
语法: delete
delete from 表名 [where 条件];
注意事项:
如果后面不跟条件 ,则删除整张表的数据
删除表的所有的记录 delete from student / truncate table 表名;(底层是先把表删除掉,然后再创建一张一模一样的表)
如果条件中的字段值有重复的,凡是符合条件的都删除。
修改数据:update
语法:
update 表名 set 列名1 = 替换值1, 列名2 =替换值2,.....列名n = 替换值n [where 条件];
注意:
- 如果不带条件,则会修改表中的所有记录
DQL 查询表中的记录 select .... from .....
语法
select 需要查询的信息(列名1,列名2,.......列名n) / * from 表名 [where 条件];
完善下:
select
字段列表 from
表名列表 where
条件列表 group by
分组字段having
分组之后的条件
limit
分页限定去重查询 distinct
使用关键字 distinct 去掉重复的记录
语法格式: select distinct 字段名 from 表名;
例如:
-- 查询本班同学都来自于哪些地方法?
select distinct address from student;
查询的结果值可以参与数学运算
ifnull表达式 ifnull(表达式1,表达式2)
表达式1: 代表那个字段需要判断是否为null
表达式2:如果该字段值为null 后面的进行替换
起别名操作
语法 as 也可以省略不写
表名 as 新的名字 查询出来的字段信息 as 新名字
当你查询同一张表,并且进行多次查询的时候可以使用起别名来实现
对指定列进行别名操作: select 列名1 as 新名字,列名2 as 新名字,..... from 表名;
对表和列同时进行别名操作: select 列名1 as 新名字,列名2 as 新名字,..... from 表名 as 新表名;
如:对学生表进行操作:查询学生表的姓名和年龄;
select
s.age as 年龄,
s.name as 姓名
from
student as s;
-- as关键字可以省略不写。
注意:
起别名 只是在sql语句中方便查询使用的,并不会对数据原来的文件起到任何影响
sql操作数据库(1)-->DDL、DML、DQL的更多相关文章
- sql操作数据库(2)--->DQL、数据库备份和还原
查询 查询表中的所有的行和列的数据 select * from 表名; select * from student; 查询指定列的数据:如果有多个列,中间用逗号隔开. select 列名1,列 ...
- SQL语言:DDL/DML/DQL/DCL
SQL (Structure Query Language)语言是数据库的核心语言. SQL 的发展是从1974年开始的,其发展过程如下: 1974年-----由Boyce和Chamberlin提出, ...
- 数据库:DDL/DML/DCL/TCL基本概念
SQL(Structure Query Language)语言是数据库的核心语言 1. 数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE 子句组成的查询块: ...
- android: SQLite使用 SQL 操作数据库
虽然 Android 已经给我们提供了很多非常方便的 API 用于操作数据库,不过总会有一些 人不习惯去使用这些辅助性的方法,而是更加青睐于直接使用 SQL 来操作数据库.这种人 一般都是属于 SQL ...
- SQL 函数 排序 等基础操作 DDL DML DQL 用法和<> <=>等
sql基础汇总 --根据函数别名排序 --排序规则,默认是升序 sleect LENGTH(NAME) nameLength from user ORDER BY nameLength DESC -- ...
- MySql用statement实现DDL,DML,DQL的操作Demo
Demo1 Connection connection=null; Statement stmt=null; int result=-1; try { Class.forName("com. ...
- DCL,DDL,DML,DQL
DCL(Data Control Language)是数据库控制语言. 是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句. 在默认状态下,只有sysadmi ...
- 区别 |DCL |DDL |DML |DQL
DCL(Data Control Language)数据控制语言: 用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句.这个比较少用到. 对于大多数人,在公司一 ...
- 数据库中"DDL","DML","DCL"
sql组成:DDL:数据库模式定义语言,关键字:createDML:数据操纵语言,关键字:Insert.delete.updateDCL:数据库控制语言 ,关键字:grant.removeDQL:数据 ...
随机推荐
- 第11.12节 Python元字符“|”支持的正则表达式多选一匹配模式
re模块支持多个正则表达式使用"|"(逻辑或)模式来组合,扫描目标字符串时, '|' 分隔开的正则表达式组合从左到右进行匹配,只要其中一个匹配成功就认为该组合匹配成功,不再进行组合 ...
- PHP中双引号引起的命令执行漏洞(Kuwebs代码审计 )
在代码审计一书中提到Kuwebs的配置文件中可以利用PHP可变变量的特性执行代码 在PHP语言中,单引号和双引号都可以表示一个字符串,但是对于双引号来说,可能会对引号内的内容进行二次解释,这就可能会出 ...
- leetcode计划
5.17 星期日,应完成的下周leetcode题目:279,300,1143,72,(前4个动态规划),104,110,543(后三个关于树)(https://cyc2018.github.io/CS ...
- 移动端点击300ms延迟问题
移动端点击延迟事件 1. 移动端浏览器在派发点击事件的时候,通常会出现300ms左右的延迟 2. 原因: 移动端的双击会缩放导致click判断延迟 解决方式 1. 禁用缩放 `<meta nam ...
- Java IO源码分析(三)——PipedOutputStream和PipedInputStream
简介 PipedOutputStream和PipedInputStream主要用于线程之间的通信 .二者必须配合使用,也就是一段写入,另一端接收.本质上也是一个中间缓存区,讲数据缓存在PipedInp ...
- 深入理解Java虚拟机(四)——HotSpot垃圾收集器详解
垃圾收集器 新生代收集器 1.Serial收集器 特点: 单线程工作,收集的时候就会停止其他所有工作线程,用户不可知不可控,会使得用户界面出现停顿. 简单高效,是所有收集器中额外内存消耗最少的. 没有 ...
- win 7 MongoDB 下载安装
准备: 1.mongodb-win32-x86_64-2008plus-ssl-3.4.3-signed.msi 官方下载 2.1.建立数据存放目录 F:\MongoDB\ 2.建立日志文件 ...
- Python排序函数用法
Python排序函数完美体现了Python语言的简洁性,对于List对象,我们可以直接调用sort()函数(这里称为"方法"更合适)来进行排序,而对于其他可迭代对象(如set,di ...
- (原创)nginx反向代理上网,使docker可以拉取镜像
转载请注明出处:饭饭博客:https://www.cnblogs.com/zzf0305/p/9602107.html 摘语:参考了N多大侠的资料,终于将自己的环境配置起来了.站在众多巨人的肩膀进行总 ...
- 自动化管理平台rundeck的安装方法
简介 RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程.通过命令行或者web界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自 ...