zoukankan      html  css  js  c++  java
  • MySQL学习笔记(二)

    m 转载:http://www.cnblogs.com/best/p/6517755.html

    1. 创建数据库

    create database databasename;

      例如: create database study;  创建一个study的数据库

      使用数据库

    use  databasename;

     例如: use  study;

      创建表:

    create table student(Id int , name varchar(20));

    插入数据:

    insert into student values(2001,'梅西');

    执行插入操作发现报错了:

    因为涉及到中文了,在此有两种解决办法:

    第一种:

     1.先把表删除:drop table student;

     2.alter database study character set gbk;

     3. create table student(Id int , name varchar(20));

     4. insert into student values(2001,'梅西');

     

    第二种:

     1. create database study default character set utf8 collate utf8_general_ci;

    db.opt 内容改为这样

     2.查看数据库编码

    show variables like 'character_set%';

    3.查看表结构

    desc tablename;

    4.外键:

      例子:员工表和部门表

    create table t_emp(empno int,deptno int ,ename varchar(20),esex char(2));
      
    alter table t_emp add constraint pk_empno primary key (empno);
    
    create table t_dept(deptno int , dname varchar(20));
    
    alter table t_dept add constraint pk_deptno primary key(deptno);

    增加外键

    alter table t_emp add constraint fk_depno foreign key(deptno) references t_dept(deptno);

    部门表是父(主)表  员工表是子(从)表

     5.外部导入数据库

     source C:UsersAdministratorDesktop	est.sql

     6.数据查询-列指定别名

    select empno  '工号',ename  '姓名' from emp;

    7.数据查询-连接符函数

    select empno , concat(ename,'#') from emp;

    oracle可以用 ||作为连接符

    select empno,ename||'#' from emp;

    8.where条件查询

    查询员工表中名字是Smith的员工信息

    select empno,ename,job from emp where ename='smith';

    查询员工表名字不等于Smith的员工信息

    select empno,ename,job from emp where ename <> 'smith';

    这里的<>用作不等于(!=)

    9.查询部分行-条件(and, or, between ... and ...)

     查询部门号是30同时工资大于1500的员工信息

    select empno,ename,job from emp where deptno=30 and sal >1500;

    查询职位是经理或者是销售员

    select empno,ename,job from emp where job='manager' or job='salesman';

    工资800到1500之间的员工

    select empno,ename,job from emp where sal between 800 and 1500;

    工资不在800到1500之间的员工

    select empno,ename,job from emp where sal between 800 and 1500;

    10.数据查询-空值(NULL)

    查询佣金是空的员工

    select empno,ename,sal from emp where comm is null;

    非空(not NULL)

    select empno,ename,sal from emp where comm is not null;

     11.数据查询-in

    select empno,ename,job from emp where ename in('smith','king');

    12.模糊查询-like

    查询时,字段中的内容并不一定与查询内容完全匹配,只要字段中含有这些内容

    通配符:'%'(0个多个字符)

    通配符:'-' (单个字符)

    查询名字的第一个字母是‘s’的员工名字

    select ename from emp where ename like's%';

    第二个字符任意匹配

    select ename from emp where ename like's_ith';

    13.数据查询-排序

    按单个列名排序

    select ename from emp order by ename desc;

    desc降序排列 asc升序排列

    按多个列名排序

    select job,sal from emp order by job asc, sal desc;

    按列的序号排序

    select empno,ename,job from emp order by 2;

     14.数据查询-limit

     查询工资前五名

    查询工资后五名

    15.表达式与条件查询

    where 关键词用于指定查询条件, 用法形式为: select 列名称 from 表名称 where 条件;

    以查询所有性别为女的信息为例, 输入查询语句: select * from students where sex="女";

    where 子句不仅仅支持 "where 列名 = 值" 这种名等于值的查询形式, 对一般的比较运算的运算符都是支持的, 例如 =、>、<、>=、<、!= 以及一些扩展运算符 is [not] null、in、like 等等。 还可以对查询条件使用 or 和 and 进行组合查询, 以后还会学到更加高级的条件查询方式, 这里不再多做介绍。

    示例:

    查询年龄在21岁以上的所有人信息: select * from students where age > 21;

    查询名字中带有 "王" 字的所有人信息: select * from students where name like "%王%";

    查询id小于5且年龄大于20的所有人信息: select * from students where id<5 and age>20;

    16.聚合函数

     

    获得学生总人数:select count(*) from students

    获得学生平均分:select avg(mark) from students

    获得最高成绩:select max(mark) from students

    获得最低成绩:select min(mark) from students

    获得学生总成绩:select sum(mark) from students

    得到一张表中的总记录数:

    select count(*) as 记录数 from emp; 

    select count(0) as 记录数 from emp;

    两者都是计算表的总记录数,count(0)计算表首的字段,如果为null也算一条记录

    select avg(sal) as 平均薪资 from  emp;
    
    select max(sal) as 最高工资 from emp;
    
    select min(sal) as 最低薪资 from emp;
    
    select sum(sal) as 薪资总和 from emp;
  • 相关阅读:
    使用 yo 命令行向导给 SAP UI5 应用添加一个新的视图
    SAP Fiori Elements 应用的 manifest.json 文件运行时如何被解析的
    SAP UI5 标准应用的多语言支持
    微软 Excel 365 里如何设置下拉菜单和自动高亮成指定颜色
    SAP Fiori Elements 应用里的 Title 显示的内容是从哪里来的
    本地开发好的 SAP Fiori Elements 应用,如何部署到 ABAP 服务器上?
    如何在 Cypress 测试代码中屏蔽(Suppress)来自应用代码报出的错误消息
    教你一招:让集群慢节点无处可藏
    应用架构步入“无服务器”时代 Serverless技术迎来新发展
    MySQL数据库事务隔离性的实现
  • 原文地址:https://www.cnblogs.com/chechen/p/8310256.html
Copyright © 2011-2022 走看看