SQL语言

SQL语言简介

概述:sql语言是一门特殊查询语言、全称是结构化查询语言简称sql、主要可以对数据库中的数据进行增删改查。
 根据sql语言功能类型不同可以划分为以下几种
  DDL数据定义语言:主要就是创建、修改、删除数据库以及数据库表
  DML数据操作语言:主要就是对数据库中表数据的增删改
  DQL数据查询语言:主要就是对数据库中表数据的查询操作
  DCL数据管理语言:DBA职位给程序员创建用户并且给用户配置角色和相对应的权限

MySQL中的数据类型


 tinyint 短整形 表示-128 — 127
 int 表示整形数值 表示2^32
   在java中有boolean类型,在mysql中没有 我们通常使用int 去表示 0表示false 1表示true
 float 单精度小数
 double 双精度小数
 char 固定长度的字符串(比如说我们给属性上用char类型长度放5,那么就表示该字段最大只能放5个字符长度的值、如果放的值不足5个字符它会默认用空格进行填充)
 varchar 可变的字符串(比如说我们给属性上用varchar类型长度放10,那么久表示该字符最大只能放10个字符值、如果放的值不足10个字符它会自动的缩减容量)
 date 年月日
 time 时分秒
 dateTime 年月日时分秒
 timestamp 时间戳(年月日时分秒)
  区别:
    dateTime 年月日时分秒可以表示最大日期是9999年12月31日 23:59:59秒 默认值是null
    timestamp 年月日时分秒表示的日期是从1970- 1月1日 8:00开始 到2037年12月31日 23:59:59秒 默认值是当前日期

DDL数据定义语言

概述:DDL数据定义语言:主要就是创建、修改、删除数据库以及数据库表
  create:创建
  alter:修改
  drop:删除
  show:展示

DDL之数据库的操作

创建数据库

语法格式:create database 数据库名称
SQL语言 2020.11.16
 如果创建了已存在的数据库会报一下错误
SQL语言 2020.11.16
 解决:可以在创建数据库的时候先判断当前数据库是否在数据库系统中存在、如果存在不创建、如果不存在就创建
 语法格式:create database if not exists 数据库名称
SQL语言 2020.11.16

查询服务器上已存在的所有数据库

语法格式:show databases;
SQL语言 2020.11.16
 使用当前要操作的数据库:
 语法格式:use 数据库名称
SQL语言 2020.11.16

修改数据库字符集

语法格式:alter database 数据库名称 character set 字符集
SQL语言 2020.11.16
SQL语言 2020.11.16
 查看当前数据库的信息(包含默认字符集):
 语法格式:show create database 数据库名称
SQL语言 2020.11.16

删除数据库

语法格式:drop databse 数据库名称
SQL语言 2020.11.16

DDL之数据表的操作

创建数据表

语法格式: create table 表名(
  字段名称 字段类型,
  字段名称 字段类型,
  字段名称 字段类型
 );
 注意事项
  1、字段和字段之间必须用,号隔开、最后一个字段不需要加,
  2、如果字段类型是字符串或者是字符类型必须给长度
SQL语言 2020.11.16
 查看表结构:desc 表名;
SQL语言 2020.11.16
 查看表的创建信息:show create table 表名
SQL语言 2020.11.16

查看当前数据库中的所有表

语法格式:show tables;
SQL语言 2020.11.16

修改表名

语法格式:alter table 表名 rename 新名称
SQL语言 2020.11.16

新增一列

语法格式:alter table 表名 add 字段 字段类型
 --在所有列末尾添加新列
SQL语言 2020.11.16
 – 在某个指定列后面插入新列
 语法格式 alter table 表名 add 字段 字符类型 after 已存在的字段
SQL语言 2020.11.16
 --在表的第一列前面添加新列
 语法格式 alter table 表名 add 字段 字段类型 first;
SQL语言 2020.11.16

删除列

语法格式:alter table 表名 drop 列名
SQL语言 2020.11.16
SQL语言 2020.11.16

修改列

语法格式:alter table 表名 modify 列名称 新类型
 --不能修改列名,只能修改列信息
SQL语言 2020.11.16
 -可以修改列名及其他信息
 alter table 表名 change 老列名 新列名 新类型
SQL语言 2020.11.16
  区别:modity只能修改列的类型、change既可以修改类型、也可以修改列名称

删除表

语法格式:drop table 表名
SQL语言 2020.11.16

DML数据操作语言

概述:DML数据操作语言主要对数据库表中数据增删改
  insert 添加
  update 修改
  delete 删除
SQL语言 2020.11.16

insert添加操作

添加操作分为单行添加和多行添加。

单行添加

方法1:
  语法格式:insert into 表名(列1,列2,列3…) values(值1,值2,值3…)
  注意实现:
    1、列和值必须一一对应
    2、值如果是数值直接插入即可、如果是除数值外的其他类型加单引号或者双引号其中一种
 示例:向学生表student中添加一条记录
SQL语言 2020.11.16
SQL语言 2020.11.16
SQL语言 2020.11.16
 方法2:
  语法格式:insert into 表名 set列1=值1,列2=值2,列3=值3…
 示例:向学生表student中添加一条记录
SQL语言 2020.11.16
SQL语言 2020.11.16
SQL语言 2020.11.16
 方法1的变形:可以省略列名,但要求值的个数和顺序必须与表中保持一致
 语法格式:insert into 表名 values(值1,值2,值3…)
 示例:向学生表student中添加一条记录
SQL语言 2020.11.16
SQL语言 2020.11.16

多行添加

语法格式:insert into 表名(列1,列2,列3…) values(值1,值2,值3…),(值1,值2,值3…),(值1,值2,值3…)
 示例:向学生表student中同时添加多行记录
SQL语言 2020.11.16
SQL语言 2020.11.16

update修改操作

语法格式:update 表名 set 列1=新值,列2=新值,列3=新值… [where 条件]
 注意:在修改数据的时候如果不加where条件默认是将表中所有的数据都修改
 示例:
 #修改单个列的数据
 示例:将仓啊空修改为苍井空
SQL语言 2020.11.16
SQL语言 2020.11.16

#同时修改多列数据
 将波多野结衣1改为武藤兰 数据全部修改
SQL语言 2020.11.16

#无条件修改表中所有行的该列数据都会变 - 谨慎使用

delete删除操作

语法格式:delete from 表名 [where 条件]
 示例:删除仓啊空1
 #条件删除
SQL语言 2020.11.16

#删除全部delete from 表名
 方式一:
SQL语言 2020.11.16
 方法二:
 语法格式:truncate table 表名
SQL语言 2020.11.16

面试问题
  delete from 与 truncate table 删除表区别
   方式上
   delete from删除方式会将表中数据逐条删除、而truncate table 直接删除整个表、创建创建一个一模一样表结构的新表
  效率上
   truncate table 删除效率要远远高于delete from
  回滚上
   delete from 删除的数据可以回滚、truncate table删除数据不可以回滚
  自增上
   delete from 删除后数据自增的序列还保留着、truncate table删除后数据自增序列从1开始
 #无条件删除表中所有的数据-谨慎使用

DQL数据查询语言

DQL(Data Query Language)数据查询语言,主要是针对数据表做查询操作。查询操作只是根据用户需求从原始数据表中筛选出符合查询条件的结果集,对原始表的数据没有任何影响。
 查询关键字:select

查询全部数据

语法格式:select * from 表名 *:表示展示所有列

筛选部分列

语法格式:select 列名列表 from 表名
 示例:只展示员工的姓名ename和员工的薪资sal

查询列上起别名

格式select 列名 as 别名,列名 as 别名 from 表名
 as 可以省略

给表起表名

语法格式:select 别名.列名,别名.列名 from 表名 别名

条件查询查询所有经理的信息 where

语法格式:select * from 表名 where 条件

查询不是经理的信息 != <>
 语法格式:select * from 表名 where 条件

多条件查询 and

格式:select * from 表名 where 条件1 and 条件2
 示例:查询工作是经理、并且工资大于2500的员工信息

范围查询

>=  <=  between 区间1 and 区间2
 格式:select * from 表名 where 字段 >= 值1 and 字段<= 值2
 select * from 表名 where 字段 between 值1 and 值2
 示例:查询工资在1000-3000之间的员工信息

区间查询

SQL语言 2020.11.16

模糊查询 like

查询带A的员工

%:表示0个到多个任意字符
 格式select * from 表名 where 字段 like ‘%A%’

查询姓A且名字只有5个字的员工信息

_:表示一个任意字符
 格式select * from 表名 where 字段 like ‘A____’

查询员工姓名中第二个字符是A的

’_A%’
 格式select * from 表名 where 字段 like ’_A%’

空值查询

is null为空 is not null 不为空
 格式:select * from 表名 where 字段 is null

限制返回行查询

(分页查询)limit 0,3 0:从索引几开始 3:要几条

查询表中前三条记录

格式 select * from 表名 limit 0,3

分页查询

每页显示3条记录,查询第1页数据
 算起始索引的公式
 (当前页-1)*每页显示条数

查询排序

desc 降序 asc 升序 默认
 格式:select * from 表名 order by 字段 desc/ asc

去重查询

distinct 表示去除重复
 格式:select distinct 字段名 from 表名

分类:

技术点:

相关文章: