• MYSQL 基础


    注释:  

    每行sql语句后加; 和java一样.

    分类:

    数据定义语言DDL:

      C create

           R 查询

      U update 

      D delete

    /*
    方式1 直接指定数据库名进行创建
    默认数据库字符集为:latin1
    */
    CREATE DATABASE db1;
    /*
    方式2 指定数据库名称,指定数据库的字符集
    一般都指定为 utf8,与Java中的编码保持一致
    */
    CREATE DATABASE db1_1 CHARACTER SET utf8;

    -- 切换数据库 从db1 切换到 db1_1
    USE db1_1;
    -- 查看当前正在使用的数据库
    SELECT DATABASE();
    -- 查看Mysql中有哪些数据库
    SHOW DATABASES;
    -- 查看一个数据库的定义信息
    SHOW CREATE DATABASE db1_1;

    mysql 默认数据库:

    information_schema  #信息数据库,保存其他数据库的信息

    mysql  #用户和权限相关信息

    performance_schema #性能相关数据

    sys  记录了dba所需要的一些信息

    DDL 修改和删除:

    -- 将数据库db1 的字符集 修改为 utf8
    ALTER DATABASE db1 CHARACTER SET utf8;
    -- 查看当前数据库的基本信息,发现编码已更改
    SHOW CREATE DATABASE db1;
    -- 删除某个数据库
    DROP DATABASE db1_1;

    常见数据类型:

    varchar 和char都代表字符串:

      varchar 是可变长度的类型,存储字符串,只使用所需空间.

      char 固定长度. 

    创建表:

    create table  test1(
        tid int,
        tdata date
    );

    --复制表结构:

    create table test2 like test1;

    --查看表结构:

    desc test1;

    --查看表:

    -- 查看当前数据库中的所有表名
    SHOW TABLES;
    -- 显示当前数据表的结构
    DESC category;
    -- 查看创建表的SQL语句
    SHOW CREATE TABLE category;

    --删除表: 

    -- 直接删除 test1 表
    DROP TABLE test1;
    -- 先判断 再删除test2表
    DROP TABLE IF EXISTS test2;

    --修改表:

      --修改表名:   

    RENAME TABLE category TO category1;

      --修改表的字符集: 

    alter table 表名 character set 字符集
    alter table category character set gbk;

      --添加一个字段:

    alter table 表名 add 字段名 字段类型;
    
    alter table category add desc varchar(20);

      --修改表中列的类型或长度:

    alter table 表名 modify 字段名 字段类型
    
    alter table category modify desc char(50);

      --修改列的名称: 

     alter table 表名 change 旧列名 新列名 类型(长度)
    
     alter table category change desc  cdesc varchar(30);

      --删除列:

      alter table 表名 drop 列名;
    
      alter table category drop desc;

    --DML插入:

      insert into 表名(字段1,字段2,...) values(值1,值2,...);
      insert into student(sid,sname,age,sex,address) values(1,'悟空',18,'','花果山');
      insert into student   values(2,'悟空',5,'','地球');
      insert into student(sid,sname) values(3,'蜘蛛精');

    --DML 修改:

    update 表名 set 列名=update 表名 set 列名=[where 条件表达式]

    --DML 删除:

       delete from 表名;
      delete from 表名 [where 条件]
      delete from student where sid=6;
      truncate table 表名; #删除所有数据 ,删除整张表,再创建一个一模一样的表.

    --DQL简单查询:

      select 列名 from 表名
      select * from emp;
      select eid,name from emp;  #指定列查询
      select eid as '编号' ,name as '姓名'  from emp; //别名查询,as可以省略
      select distinct dept_name from emp; # 去重
      select name,salary+1000 as salary from emp;

    --DQL 条件查询

    # 查询员工姓名为黄蓉的员工信息
    SELECT * FROM emp WHERE ename = '黄蓉';
    # 查询薪水价格为5000的员工信息
    SELECT * FROM emp WHERE salary = 5000;
    # 查询薪水价格不是5000的所有员工信息
    SELECT * FROM emp WHERE salary != 5000;
    SELECT * FROM emp WHERE salary <> 5000;
    # 查询薪水价格大于6000元的所有员工信息
    SELECT * FROM emp WHERE salary > 6000;
    # 查询薪水价格在5000到10000之间所有员工信息
    SELECT * FROM emp WHERE salary BETWEEN 5000 AND 10000;
    # 查询薪水价格是3600或7200或者20000的所有员工信息
    -- 方式1: or
    SELECT * FROM emp WHERE salary = 3600 OR salary = 7200 OR salary = 20000;
    -- 方式2: in() 匹配括号中指定的参数
    SELECT * FROM emp WHERE salary IN(3600,7200,20000);

    # 查询含有''字的所有员工信息
    SELECT * FROM emp WHERE ename LIKE '%精%';
    # 查询以''开头的所有员工信息
    SELECT * FROM emp WHERE ename LIKE '孙%';
    # 查询第二个字为''的所有员工信息
    SELECT * FROM emp WHERE ename LIKE '_兔%';
    # 查询没有部门的员工信息
    SELECT * FROM emp WHERE dept_name IS NULL;
    -- SELECT * FROM emp WHERE dept_name = NULL;
    # 查询有部门的员工信息
    SELECT * FROM emp WHERE dept_name IS NOT NULL;

       

      

  • 相关阅读:
    重构代码
    我的菜单在母版页,如何更改菜单点击后的效果
    ASP.NET网页显示LED字体
    点击一次铵钮产生一个新文本框,分别输入值,然后获取
    linux不同信号之间发送信号测试
    UCOSII移植ARM的笔记
    C语言 return返回值的作用
    C语言 return没有返回值.
    linux c语言链表的简单应用之创建链表
    sizeof与strlen的用法
  • 原文地址:https://www.cnblogs.com/wanghzh/p/14792300.html
Copyright © 2020-2023  润新知