浅谈数据库相关操作

如今,数据库管理系统的图形化操作使用起来非常的便捷。但是,作为一名计算机开发人员,掌握一些sql语句,也是很有必要的。因此,小王整理了一些有关Mysql数据库的sql语句。

数据库相关操作
  • create database 数据库名称 default charset 'UTF8';
    作用:创建数据库,指定字符编码
-- 创建指定命令、指定编码的数据库
create database xiaowangdb01 default charset 'UTF8';
  • drop database 数据库名称;
    作用:删除指定数据库
-- 删除数据库
drop database xiaowangdb01;
  • use 数据库名称;
    作用:指定数据库
-- 指定数据库
use xiaowangdb01;
  • create table 数据表名称(...);
    作用:创建数据表
-- 创建专题表
create table subjects(
  -- int类型
  -- primary key主键:可以表示一个数据的属性
  -- auto_increment:自动增长
  id int primary key auto_increment comment '专题编号';
  -- not null:表示这个属性增加数据时不能为空
  title varchar(50) not null comment '专题标题';
  intro text comment '专题信息'    
)
  • drop table 数据表名称;
    作用:按照指定名称,直接删除数据表
-- 删除专题数据表
drop table subjects;
  • insert into users(....) values(...);
    作用:增加数据
-- 增加用户数据
insert into users(username,userpass,nickname) values("tom","123","汤姆");
  • delete from 数据库名称 where key = value;
    作用:删除符合条件的数据
-- 删除用户表中编号为1的数据
delete from users where id=1;
  • update 数据表 set key1 = value1,key2 = value2 where key = value;
    作用:修改语句
    注意:慎重使用,必须非常明确where后面的条件是否准确!
-- 修改用户表中`tom`的相关数据
update users set age = 18,email = "tom@163.com" where username = "tom";
  • select * from 表名称;
    作用:查询表中的所有数据
-- 查询emp表中的所有数据
select * from emp;
  • select 列1,列2,列3... from 数据表名称;
    作用:查询表中的指定属性/列数据
-- 查询emp中的员工名称、薪水、奖金
select ename, salary, comm from emp;
  • select 列 as 别名 from 表名称;
    作用:查询数据时,可以让查询结果按照指定名称显示(as可以省略)
-- 查询emp表中的姓名,工资并将其作为列名称展示
select ename as 姓名, salary as 工资 from emp;
  • select * from 数据表名称 order by 列(需要排序的列)desc(倒序) | asc(顺序);
    作用:按照想要的顺序进行排列
-- 将emp表按照薪水倒序排列
select * from emp order by salary desc;
  • select * from 表名称 limit 起始id, 查询条数;
    作用:数据量较大的情况下,可以每次查询一部分数据,按照分页的方式查看
-- 起始id = (当前页码 - 1)*查询条数
-- 第一页,每页显示5条数据
select * from emp limit 0, 5;
  • select * from 数据表名称 where 列 like '%值%';
    作用:按照数据的一部分进行模糊搜索
-- %:模糊匹配任意一个或者多个字符
-- _:模糊匹配任意一个字符
select * from emp where ename like '%王%'
  • select * from 数据表名称 where 条件;
    作用:查询数据的同时,附加一定的条件进行数据过滤
-- 单条件查询
-- 工资大于10000的人
select * from emp where salary > 10000
-- 多条件查询
-- 工资大于10000同时奖金超过10000的人->and
select * from emp where salary > 10000 and comm > 10000;
-- 工资大于等于20000或者奖金大于等于18000的人-> or
select * from emp where salary >= 20000 or comm >= 18000
  • select * from 表1, 表2 where 关联条件 and 其他条件;
    作用:查询两张表的数据,得到一个完整信息
-- 查询小王属于哪个部门
-- select depid from emp where ename = "林冲";
-- select * from dept where id = 4;
-- 完整语法
select emp.id, emp.ename, dept.dname, dept.dloc from emp, dept where emp.deptid = dept.id and emp.ename = "林冲";
-- 别名改造
select e.id, e.ename, d.dname, d,dloc from emp e, dept d where e.deptid = d.id and e.ename = "林冲";
  • select * from A left join B on 条件A = 条件B;
    select * from A right join B on 条件A = 条件B;
    作用:通过左连接或者右链接查询两张表的完整数据
    注意:Left Join影响到的是右边的表,Right Join影响到的是左边的表。
-- 左(外)连接查询:以左表为主
select * from dept d left join emp e on d.id = e.depid
-- 右(外)连接查询:以右表为主
select * from emp e right join dept d on d.id = e.deptid
  • select * from 表1, 表2;
    注意:这是笛卡尔乘积现象,是多表关联时出现的问题,如果关联条件不变,查询的结果数据就会出现a表数据总数乘以b表数据总数的结果!
-- 笛卡尔乘积
select * from emp,dept;
关于聚合查询

作用:主要用于统计数据

-- 员工总数
select count(1) as cnt from emp;
-- 最高工资
select max(salary) from emp;
-- 平均工资
select avg(salary) from emp;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值