sql常用操作(一)
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常用操作(一)的更多相关文章
- SQL 常用操作
今天网龙笔试遇到了几个SQL题,现在顺便就总结一下常用的SQL操作. 内连接:只将符合条件的行显示出来 SELECT s.name,m.mark FROM student s,mark m WHERE ...
- Ubuntu 16.04安装、卸载mysql及怎么使用SQL常用操作语句
以前都是在window上操作,连接数据库,最近转Ubuntu系统,故此,记下安装过程 一,安装mysql,Ctrl+Alt+T打开终端,一步步分别输入命令 //安装mysql服务 sudo apt-g ...
- My SQL常用操作汇总
写这篇随笔的目的是我发现了在上一篇关于My SQL的随笔中存在一些不严谨的代码问题,在这里再次简单的总结一下并加以改进,以代码为主. # !每行命令必须以分号(;)结尾 先通过命令行进入数据库客户端 ...
- sql常用操作(三)多表查询
1 连接查询 1.1连接就是指两个或2个以上的表(数据源)“连接起来成为一个数据源”. 实际上,两个表的完全的连接是这样的一个过程: 左边的表的每一行,跟右边的表的每一行,两两互相“横向对接”后所得到 ...
- sql 常用操作脚本代码
,--运行fy_mh库[use] use fy_mh ,--查询 mh_dblj表 select * from mh_dblj ,--更新 某个字段(把表的某个字段下的所有的数据清空)[update ...
- sql常用操作(二)数据约束
1.1什么是数据约束: 对用户操作表的数据进行约束 1.2 默认值 作用: 当用户对使用默认值的字段不插入值的时候,就使用默认值. 注意: 1)对默认值字段插入null是可以的. 2)对默认值字段可以 ...
- sql server建库建表(数据库和数据表的常用操作)
数据库和数据表 (开发常用 操作) 一,数据库的创建 一个SQLServer 是由两个文件组成的:数据文件(mdf) 和日志文件(ldf),所以我们创建数据库就是要为其指定数据库名.数据文件和日志文件 ...
- Spring Boot入门系列(十九)整合mybatis,使用注解实现动态Sql、参数传递等常用操作!
前面介绍了Spring Boot 整合mybatis 使用注解的方式实现数据库操作,介绍了如何自动生成注解版的mapper 和pojo类. 接下来介绍使用mybatis 常用注解以及如何传参数等数据库 ...
- mysql常用操作语句
mysql常用操作语句 1.mysql -u root -p 2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...
随机推荐
- Money Systems
链接 分析:来看看背包九讲里面的一段话: 对于一个给定了背包容量.物品费用.物品间相互关系(分组.依赖等) 的背包问题,除了再给定每个物品的价值后求可得到的最大价值外,还可以得 到装满背包或将背包装至 ...
- 3170: [Tjoi 2013]松鼠聚会
题目大意 给定n个点,找到一个点使这个点到其他所有点的切比雪夫距离之和最小. 题解 我们知道切比雪夫距离和曼哈顿距离的转化公式 \(1\)表示切比雪夫距离,\(2\)表示曼哈顿距离 我们有: \(x_ ...
- poj3208启示录——数位DP
题目:http://poj.org/problem?id=3208 数位DP,首先按位数预处理出每一种位数的情况,包括有多少个魔鬼数和有多少个以6开头的非魔鬼数,以便递推.累加等等: 然后先找出第X个 ...
- rmmod: chdir(/lib/modules): No such file or directory
内核版本:linux3.4.20 交叉编译器:arm-linux-gcc 4.3.3 busybox : busybox 1.20 问题: 使用rmmod会出现 rmmod : chdir(/lib ...
- algorithm-exercise
https://github.com/billryan/algorithm-exercise Part I - Basics Basic Data Structure string: s2 = &qu ...
- UVaLive 4727 Jump (递推)
题意:约瑟夫环,求最后三个数. 析:f[i] = (f[i-1] + k) % i 这是求最后一个数时候,我们倒着推到第一个数时,只有一个数,所以当只有两个数时,就是另一数, 同理,我们可以求得第三个 ...
- VS中运行后控制台窗口一闪就没了
使用VS2010后,用Ctrl+F5运行程序,结果控制台窗口一闪就没了,也没有出现”press any key to continue…” 或者“请按任意键继续”. 出现这种原因,主要是建立工程时选用 ...
- codeforces1009G Allowed Letters【贪心+hall定理】
因为是字典序所以贪心选当前能选的最小的,所以问题就在于怎么快速计算当前这个位置能不能选枚举的字母 重排之后的序列是可以和原序列完美匹配的,而完美匹配需要满足hall定理,也就是左边任意k个集合一定和右 ...
- nginx 初了解
随着现代web开发的发展,restful,前后端分离,前端js框架的应用越来越普遍.很多web应用请求的接口可能根本就存在于不同的服务器,类似于微信,支付宝等等.这其中就会存在跨域的问题.简单来说,跨 ...
- IT兄弟连 JavaWeb教程 经典案例
案例需求:编写一个jsp servlet程序,在login.jsp发起login.do登录请求,当输入的用户名是abc密码是123时,则判断是登录成功,其它暂时认为是登录失败.当用户登录成功时,将用户 ...