当前位置: 移动技术网 > IT编程>数据库>Mysql > MySql(一):基本操作

MySql(一):基本操作

2019年05月11日  | 移动技术网IT编程  | 我要评论

  sql语句其实不难,尤其对于那些英语稍好一些的人来说!

最最最重要的就是搞清楚sql语句的执行顺序!!!数据就像沙子, 语句就是筛子, 沙子按照顺序经过给定的筛子,留下来的就是你要的!!!

并不是写在前面的就先执行!!! 如下:

select *, sum(pnum) '商品总数量' (4)

from products (1)

group by con (2)

having sum(pnum) > 200; (3)

这句sql语句其实是先执行 (1) from products 从products表中筛选所有数据

再执行(2) group by con 将数据按照con字段进行分组

再执行(3) having sum(pnum) > 200 筛选出pnum总数大于200的分组

最后执行(4) select * , sum(pnum) 将层层过滤的数据显示出来

注意: 顶哥较懒, 下文的sql语句统统小写啦

如遇诸如 : incoreect string value : ..... 之类的报错请通过以下sql语句查看自己的数据库默认编码是否和输入环境的编码一致:

show variables like 'character%';

l 数据定义语言:简称ddl(data definition language),用来定义数据库对象:数据库, 表, 列等. 关键字: create , alter , drop 等

l 数据操作语言:简称 dml(data manipulation language), 用来对数据库中表的记录进行更新. 关键字:insert , delete, update等

l 数据控制语言:简称 dcl(data control language), 用来定义数据库的访问权限和安全级别,及创建用户

l 数据查询语言:简称dql(data query language), 用来查询数据库中表的记录. 关键字:select, from, where 等

 

ddl --database相关操作

 

create database demo; # 创建名为demo的数据库(默认编码)

create database if not exists demo; # 不存在则创建demo数据库

create database demo character set ‘gbk’; # 创建名为demo gbk编码的数据库

​ show databases; # 列出mysql服务器中所有的数据库

​ show create database demo; # 查看demo数据库的定义信息

​ crop database demo; # 删除数据库demo

​ select database(); # 查看正在使用的数据库

​ use demo; # 使用demo 数据库

 

ddl—table相关操作

​ create table demo( # 创建demo表, 指定 id 字段为主键约束,

id int primary key, # name 字段为非空约束

name varchar(12) not null

);

create table demo1 like demo; # 创建demo1表,表结构和demo表相同

show tables ; # 查看数据库中所有的表

desc demo; # 查看demo表的结构(tips:为何是desc? describe是秒速的意思!

drop table demo; # 删除demo表

drop table if exists demo; # demo表存在则删除

alter table demo add address varchar(20); # 为demo表增加地址字段

alter table demo modify address varchar(30); # 修改表中字段的类型长度

alter table demo change address addr varchar(30); # 修改表中字段名

alter table demo drop addr; # 删除表中的字段

rename table demo to dmeo1; # 将demo表重命名为demo1

alter tabel demo1 character set 'gbk'; #将demo1表的编码修改为gbk

dml 相关操作

插入表记录: insert

insert into demo(id, name) values(1, "song");

insert into demo(id) values(2); # 无数据字段会使用null

更新表记录:update

update demo set id = 1, name = 'song'; # 将demo表中记录全部更新

update demo name = 'hui' where id = 2; # 将id为2的记录名字更新为hui

删除表记录

delete from demo; # 删除demo表中的所有数据

delete from demo where name = 'song'; # 删除demo表中name为song的记录

truncate table demo; # 摧毁demo表并重建同结构的表

dql 相关操作

select * from demo ; # 查询demo表中所有的数据

select id, name from demo; # 查询demo表中id 和 name 列的数据

select id as 编号, name as 姓名 from demo as 学生表; # 使用别名,as 可以省略

select distinct name, age from demo; # 去除重复值

select math + english 总成绩 from student; # 从学生表中查询熟悉和英语的总分并使用别名

select name , age + 10 from student; # 查询姓名年龄,并将每个人的年龄增加10岁

select * from student where math > 100 or english > 100; # 查询任意一科超过100的学生

select * from student where name like '_宋%宝'; # 查询所有名字第二个字是宋且以宝结尾的学生

select * from student where age > 12 order by id asc, age desc; # 查询年龄大于12的按照id升序排序显示,id一样时按照年龄降序排序

select max(age) from student; # 查询学生表中年龄最大的

select * from student where age > 18 group by sex having name is not null; # 查询 年龄大于18的按照性别进行分组,且姓名不为空的记录

tips: having 和where的区别:

having 是在分组后对数据进行过滤

where 是在分组前对数据进行过滤

having 后面可以使用聚合函数

where 后面不可以使用聚合函数

select * from student limit 0, 3 ; # 查询索引从0开始,共3条记录

tips: 起始索引 = (当前页页码数 -1 ) * 每页显示条数

#查询第一页的数据信息

select * from sudent limit 0, 3;

#查询第二页的数据信息

select * from student limit 3, 3;

 

可关注公众号,随时随地查阅相关文章

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网