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;
  • 相关阅读:
    Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发
    Spring+SpringMVC+MyBatis深入学习及搭建(一)——MyBatis的基础知识
    Hibernate HQL语句
    spring的IO原理
    jsp概述
    java的常用接口
    java各种内部类
    Serlvet 处理http请求并保持长连接
    JVM高级特性与实践(一):Java内存区域 与 内存溢出异常
    JVM高级特性与实践(二):对象存活判定算法(引用) 与 回收
  • 原文地址:https://www.cnblogs.com/chechen/p/8310256.html
Copyright © 2011-2022 走看看