sql(structured query language,结构化查询语言)语言:和数据库交互的语言,进行数据库管理的语言。

1.1 sql语句的作用:说白了就是增删改查

管理数据库

管理表

管理数据

2数据库的操作

2.1创建数据库

create database db_name

[default] character set charset_name  -- character set:指定数据库采用的字符集

[default] collate collation_name  --collate:指定数据库字符集的比较方式(校对规则)

例:

create database mydb1;

create database java0929 default character set utf8;

2.2查看数据库

1)查询所有数据库

show databases;

2)显示数据库创建语句:

show create database db_name;

2.3修改数据库

alter database db_name

[default] character set charset_name

|   [default] collate collation_name

例:alter database mydb2 default character set gbk;

12.4删除数据库

drop database db_name

3表的操作

注意(创建表前,要先使用use db语句使用库)

3.1查看所有表

show tables;

3.2创建表

create table table_name

(

field1  datatype,

field2  datatype,

field3  datatype

)

--field:指定列名 datatype:指定列类型

3.3查看表结构

desc 表名;

3.3数据类型

数据类型:http://www.runoob.com/mysql/mysql-data-types.html

最常用的有四个:

整型: int

浮点型:double(精度更大,常用)

字符:varchar(可变长度,最常用,按实际占用的为准)

日期:datetime(年月日时分秒)

3.4删除表

drop table 表名;

3.5修改表

1)添加字段

alter table 表名add column 字段名 字段类型;

例:alter table order01 add column odesc varchar(50);

2)删除字段alter table 表名 drop column 字段名;

例:alter table order01 drop column money;

3)修改字段类型

alter table 表名 modify column 字段名 字段类型;

例:alter table order01 modify column otime varchar(20);

4)修改字段名称

alter table 表名 change column 原字段 新字段 字段类型;

例:alter table order01 change column otime ordertime varchar(20);

5)修改表名称

alter table 原表名 rename to 新表名;

例:alter table order01 rename to order02;

4 数据的操作

4.1增加数据

插入所有字段。一定依次按顺序插入

insert into 表名 values(值1,值2,值3...);

-- 注意不能少或多字段值

例:insert into order02 values(1,'名称1','2018-11-13','商品描述');

-- 插入部分字段

insert into student(id,name) values(2,'李四');

insert into 表名(字段1,字段2,字段3...) values(值1,值2,值3...);

例:insert into order02(oid,productname,odesc) values (2,'手表','手表的描述');

4.2修改数据

带条件的修改(推荐使用)

update 表名 set字段名=值,字段名=值,....

例:update student set gender='男',age=30 where id=2;

4.3删除数据

4.3.1-- 带条件的删除(推荐使用)

delete from 表名 where条件;

例:delete from student where id=2;

4.3.2两种全表删除的方式:

delete from: 可以全表删除

1)可以带条件删除

2)只能删除表的数据,不能删除表的约束

3)使用delete from删除的数据可以回滚(以后学“事务”时会再学)

-- truncate table: 可以全表删除

1)不能带条件删除

2)即可以删除表的数据,也可以删除表的约束

3)使用truncate table删除的数据不能回滚

truncate table student;

类似一个进回收站,一个直接从硬盘上删了

5查询数据(重点)

以下都是单表查询:

5.1查询所有列

select * from 表名;

5.2查询指定列

select 字段1,字段2,字段3... from student;

例:select id,name,gender from student;

5.3查询时添加常量列(添加别名)

select 字段 as '别名' from 表名;

例:select id,name,gender,age,'java就业班' as '年级'  from student;

5.4查询时合并列

select id,name,(servlet+jsp) as '总成绩' from student;

注意:合并列只能合并数值类型的字段

结果图:

5.5查询时去除重复记录

select distinct 字段 from 表名;

-- 另一种语法

select distinct(字段) from 表名;

5.6条件查询

条件查询使用where

1)逻辑条件and(与)     or(或)

select * from score where sid=1 and ssex='男';

select * from score where sid=2 or ssex='女';

2)比较条件: >   <   >=  <=  =  <>(不等于) between and (等价于>= 且 <=)

例:

select * from score where html>60 and js<=80;

select * from score where html>=60 and html<=100;

select * from score where html between 60 and 100;

select * from score where jquery<>66;

3)判空条件(null 空字符串)

null vs  空字符串

-- null:表示没有值

-- 空字符串:有值的,但是值是空字符串

例:

/*判断是否为null*/

select * from score where js is not null;

select * from score where js is null;

/*判断是否为空字符串*/

select * from score where ssex <> '';

select * from score where ssex = '';

4)模糊条件

like

% : 表示任意个字符

_ : 表示一个字符

例:

select * from score where sname like '张%';

select * from score where sname like '__';

select * from score where sname like '%超%';

select * from score where sname like '张__';

5.7聚合查询(使用聚合函数的查询)

常用的聚合函数: sum()  avg()  max()  min()  count()

注意:count()函数统计的数量不包含null的数据

-- 使用count统计表的记录数,要使用不包含null值的字段

例:

select sum(js) as 'js总成绩' from score;

select sum(js) as 'js总成绩' from score where ssex='男';

select avg(html) as 'html平均分' from score;

select max(jquery) from score;

select min(js) from score;

select count(*) from score;

5.8分页查询

语法格式:limit 起始行,查询几行

行:一条记录

起始行从0开始

用户只能点页数,所以可以获取到“当前页”,计算起始行:(当前页-1)*每页显示的条数,每页显示的条数可以人为设定。

例:

/*第一页*/

select * from score limit 0,2;

/*第二页*/

select * from score limit 2,2;

/*第三页*/

select * from score limit 4,2;

5.9 查询排序(order by)

语法 :order by 字段 asc/desc

默认情况下,按照插入记录顺序排序

select * from 表名;

-- asc: 顺序,正序。数值:递增,字母:自然顺序(a-z)

-- desc: 倒序,反序。数值:递减,字母:自然反序(z-a)

默认正序,所以asc可以不写

例:

select * from score order by html;

select * from score order by js desc;

先写where,再order by

select * from score where ssex='男' order by js desc;

按两个字段排序:(当第一个字段有相同值时,再按第二个排)

select * from score order by js,jquery desc;

5.10 分组查询(group by)

5.10.1

select 字段1, 字段2 from 表名 group by 字段;

例:

select ssex,count(*) from score group by ssex;

select ssex as '姓别',sum(js) as 'js总分' from score group by ssex;

5.10.2分组查询后筛选

分组之前条件使用where关键字,分组之后条件使用having关键字

having只能和group by一起用

例:

/*查询总人数大于2的性别*/

select ssex from score group by ssex having count(*)>2;

查询总结:

注意顺序:

select [all | distinct] 字段或表达式列表 [from子句] [where子句] [group by子句] [having子句] [order by子句] [limit子句];

sql常用操作(一)的更多相关文章

  1. SQL 常用操作

    今天网龙笔试遇到了几个SQL题,现在顺便就总结一下常用的SQL操作. 内连接:只将符合条件的行显示出来 SELECT s.name,m.mark FROM student s,mark m WHERE ...

  2. Ubuntu 16.04安装、卸载mysql及怎么使用SQL常用操作语句

    以前都是在window上操作,连接数据库,最近转Ubuntu系统,故此,记下安装过程 一,安装mysql,Ctrl+Alt+T打开终端,一步步分别输入命令 //安装mysql服务 sudo apt-g ...

  3. My SQL常用操作汇总

    写这篇随笔的目的是我发现了在上一篇关于My SQL的随笔中存在一些不严谨的代码问题,在这里再次简单的总结一下并加以改进,以代码为主. # !每行命令必须以分号(;)结尾 先通过命令行进入数据库客户端 ...

  4. sql常用操作(三)多表查询

    1 连接查询 1.1连接就是指两个或2个以上的表(数据源)“连接起来成为一个数据源”. 实际上,两个表的完全的连接是这样的一个过程: 左边的表的每一行,跟右边的表的每一行,两两互相“横向对接”后所得到 ...

  5. sql 常用操作脚本代码

    ,--运行fy_mh库[use] use fy_mh ,--查询 mh_dblj表 select * from mh_dblj ,--更新 某个字段(把表的某个字段下的所有的数据清空)[update ...

  6. sql常用操作(二)数据约束

    1.1什么是数据约束: 对用户操作表的数据进行约束 1.2 默认值 作用: 当用户对使用默认值的字段不插入值的时候,就使用默认值. 注意: 1)对默认值字段插入null是可以的. 2)对默认值字段可以 ...

  7. sql server建库建表(数据库和数据表的常用操作)

    数据库和数据表 (开发常用 操作) 一,数据库的创建 一个SQLServer 是由两个文件组成的:数据文件(mdf) 和日志文件(ldf),所以我们创建数据库就是要为其指定数据库名.数据文件和日志文件 ...

  8. Spring Boot入门系列(十九)整合mybatis,使用注解实现动态Sql、参数传递等常用操作!

    前面介绍了Spring Boot 整合mybatis 使用注解的方式实现数据库操作,介绍了如何自动生成注解版的mapper 和pojo类. 接下来介绍使用mybatis 常用注解以及如何传参数等数据库 ...

  9. mysql常用操作语句

    mysql常用操作语句 1.mysql -u root -p   2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...

随机推荐

  1. element el-input 自动获取焦点和IE下光标位置解决方法

    在实际开发中我们经常会碰到这样的场景,就是有input的地方都喜欢切换过去input自动获取焦点. 如果这个问题是在input中,很容易就实现了,但是element里面的el-input看源码,其实不 ...

  2. Elasticsearch搜索引擎版本配置

    简要描述: 搜索引擎版本配置 产品 版本号 ES版本要求 说明 PHP =5.5.38     Java =1.8.0_73   用于支持ES Elasticsearch =2.3.5   搜索引擎 ...

  3. __setup宏简介

    内核组件用__setup宏来注册关键字及相关联的处理函数,__setup宏在include/linux/init.h中定义,其原型如下:             __setup(string, fun ...

  4. grep的用法(CentOS7)及有关正则表达式的使用

    环境准备:alias grep="grep --color" 1.grep以整行为单位进行处理,行中有的匹配显示出来 Last中取出符合root的行:grep  '查找字符串' l ...

  5. 【旧文章搬运】VC插件中如何获取当前工程的工作目录

    原文发表于百度空间,2014-09-24========================================================================== 好难找的资 ...

  6. caffe Dtype

    http://blog.luoyetx.com/2015/10/reading-caffe-2/

  7. Linq to Object 延迟标准查询操作符

    1.Where 操作符用于限定输入集合中的元素,将符合条件的元素组织声称一个序列结果.2.Select  操作符用于根据输入序列中的元素创建相应的输出序列中的元素,输出序列中的元素类型可以与输入序列中 ...

  8. MSSQl分布式查询(转)

    MSSQlServer所谓的分布式查询(Distributed Query)是能够访问存放在同一部计算机或不同计算机上的SQL Server或不同种类的数据源, 从概念上来说分布式查询与普通查询区别 ...

  9. 《Java多线程编程核心技术》读后感(十七)

    使线程具有有序性 正常情况下,线程在运行时多个线程之间执行任务的时机时无序的.可以通过改造代码的方式使它们运行具有有序性 package Seven; public class MyThread ex ...

  10. Python 数据分析:让你像写 Sql 语句一样,使用 Pandas 做数据分析

    Python 数据分析:让你像写 Sql 语句一样,使用 Pandas 做数据分析 一.加载数据 import pandas as pd import numpy as np url = ('http ...