zoukankan      html  css  js  c++  java
  • SQL语句

    创建数据库操作

    10.1 创建数据库
    create database 数据库 数据库名
    CREATE DATABASE day35;

    设置数据库的编码格式
    CREATE DATABASE day35 CHARACTER SET utf8


    10.2: 查看mysql中所有的数据库
    show databases;
    查看某个库的定义的信息
    show create database 数据名;

    10.3删除数据库
    drop database 数据库名称;

    10.4: 其他的数据库操作命令
    切换数据库:use 数据库名


    10.5: 查看正在使用的数据库:
    select database();
    11 创建数据表格式
    create table 表名(
    字段名 类型(长度) 约束,
    uid INT PRIMARY KEY AUTO_INCREMENT,// 主键自增
    字段名 类型(长度) 约束
    uname varchar(20),
    uaddress varchar(200)
    );


    12约束
    约束的作用:
    create table 表名(
    列名 类型(长度) 约束,
    列名 类型(长度) 约束
    );
    限制每一列能写什么数据,不能写什么数据。

    哪些约束:
    主键约束 PRIMARY KEY AUTO_INCREMENT
    > create table tabklname(
    id int primary key
    );
    删除主键
    alter table 表名 drop primary key;
    非空约束
    唯一约束
    外键约束
    13 创建用户表
    需求:创建用户表,用户编号,姓名,用户的地址
    14 主键约束
    * A: 主键是用于标识当前记录的字段。它的特点是非空,唯一。
    在开发中一般情况下主键是不具备任何含义,只是用于标识当前记录。

    15 常见表的操作
    15.1: 查看数据库中的所有表:
    show tables;
    15.2: 格式:drop table 表名;
    drop table tabklname;
    16 修改表结构
    16.1: 修改表添加列
    alter table 表名 add 列名 类型(长度) 约束;
    alter table users add sex varchar(1);
    16.2: 修改表修改列的类型长度及约束
    alter table 表名 modify 列名 类型(长度) 约束;
    alter table users modify sex varchar(2) not null;
    例如:
    16.3: 修改表修改列名
    alter table 表名 change 旧列名 新列名 类型(长度) 约束;
    alter table users change sex gener varchar(20);
    16.4: 修改表删除列
    alter table 表名 drop 列名;
    alter table users drop gener;
    16.5: 修改表名
    rename table 表名 to 新表名;
    rename table users to qiang;
    16.6: 修改表的字符集
    alter table 表名 character set 字符集;
    17 数据表添加数据_1
    17.1 语法:
    insert into 表 (列名1,列名2,列名3..) values (值1,值2,值3..); -- 向表中插入某些列

    17.2: 添加数据格式,不考虑主键
    insert into 表名 (列名) values (值)
    17.3: 添加数据格式,所有值全给出
    格式
    insert into 表名 values (值1,值2,值3..); --向表中插入所有列

    17.4: 添加数据格式,批量写入
    格式:
    insert into 表名 (列名1,列名2,列名3) values (值1,值2,值3),(值1,值2,值3)
    mysql> insert into zhangwu values('zhichu' 1000);
    mysql> insert into zhangwu values('zhich',1000);

    mysql> insert into zhangwu values(6,'zhichu',500);

    mysql> insert into zhangwu(zname,zmony) values('zhichu',10000),('zhichu1',-20000),('shouru',10000);


    18更新数据
    18.1用来修改指定条件的数据,将满足条件的记录指定列修改为指定值
    语法:
    update 表名 set 字段名=值,字段名=值;
    update 表名 set 字段名=值,字段名=值 where 条件;
    update zhangwu set zname='qiangchifanzhichu' where id='1';
    19 删除数据
    delete from 表名 [where 条件];
    或者
    truncate table 表名;
    面试题:
    删除表中所有记录使用delete from 表名; 还是用truncate table 表名;
    20 命令行乱码问题
    show variables like 'character%'; 查看mysql客户端的编码格式 *
    set names gbk; ***** 只针对当前窗口有效
    永久解决 找知道mysql根目录 my.ini文件
    default-character-set=utf8 //客户端编码设置 default-character-set=gbk
    character-set-server=utf8 修改完后 重启服务
    21 数据表和测试数据准备
    账务表
    create table zhangwu(
    id int primary key auto_increment,
    zname varchar(200),
    zmony double);
    插入记录
    insert into zhangwu(zname,zmony) values (),();
    22 数据的基本查询

    22.1: 查询指定字段信息
    select 字段1,字段2,...from 表名;
    例如:
    select id,name from zhangwu;

    22.2: 查询表中所有字段
    select * from 表名;

    22.3: distinct用于去除重复记录
    select distinct 字段 from 表名;
    22.4: 别名查询,使用的as关键字,as可以省略的.
    别名可以给表中的字段,表设置别名。 当查询语句复杂时,使用别名可以极大的简便操作。
    表别名格式:
    select * from 表名 as 别名;

    select * from 表名 别名;
    列别名格式:
    select 字段名 as 别名 from 表名;

    select 字段名 别名 from 表名;
    23 数据的条件查询_1
    23.1:条件查询
    where语句表条件过滤。满足条件操作,不满足不操作,多用于数据的查询与修改。

    23.2 : 格式 :
    select 字段 from 表名 where 条件;

    23.3: while条件的种类如下:
    比较运算符
    > < <= >= = <> ---------- 大于、小于、大于(小于)等于、不等于
    BETWEEN ...AND... ----------- 显示在某一区间的值(含头含尾)
    IN(set) -----------显示在in列表中的值,例:in(100,200)
    LIKE 通配符 -----------模糊查询,Like语句中有两个通配符:
    % 用来匹配多个字符;例first_name like ‘a%’;
    _ 用来匹配一个字符。例first_name like ‘a_’;
    select * from zhangwu where zname like '胡%';
    IS NULL 判断是否为空
    ------------is null; 判断为空
    is not null; 判断不为空
    23.4 逻辑运算符
    and ------------ 多个条件同时成立
    or ------------ 多个条件任一成立
    not ------------ 不成立,例:where not(salary>100);

    23.5 模糊查询
    查询出账务名称包含”支出”的账务信息。

    23.6 查询出账务名称中是五个字的账务信息

    23.7 查询出账务名称不为null账务信息
    SELECT * FROM zhangwu WHERE name IS NOT NULL;
    SELECT * FROM zhangwu WHERE NOT (name IS NULL);


    24 排序查询
    24.1 使用格式
    * 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。
    * SELECT * FROM 表名 ORDER BY 字段ASC;
    * ASC 升序 (默认)
    * DESC 降序


    25 聚合函数
    函数介绍
    * 之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,
    它是对一列的值进行计算,然后返回一个单一的值;另外聚合函数会忽略空值。
    * count:统计指定列不为NULL的记录行数;
    * sum:计算指定列的数值和,如果指定列;
    * max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串类型不是数值类型,那么计算结果为0排0序运算;
    * min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
    * avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;
    26 分组查询

    26.1: 使用格式
    * 分组查询是指使用group by字句对查询信息进行分组,例如:我们要统计出zhanguw表中所有分类账务的总数量,这时就需要使用group by 来对zhangwu表中的账务信息根据parent进行分组操作。
    * SELECT 字段1,字段2… FROM 表名 GROUP BY 字段 HAVING 条件;
    * 分组操作中的having子语句,是用于在分组后对数据进行过滤的,作用类似于where条件。
    26.2: having与where的区别
    * having是在分组后对数据进行过滤.
    * where是在分组前对数据进行过滤
    * having后面可以使用分组函数(统计函数)
    * where后面不可以使用分组函数。

  • 相关阅读:
    Maven部署构件至远程仓库
    Maven远程仓库的认证
    Maven远程仓库的配置
    Maven实战系列文章
    使用Maven私服的好处
    使用Mavne生成可以执行的jar文件
    Visual Studio for Mac 简介
    HTTP 2.0与HTTP 1.1区别
    使用Microsoft的IoC框架:Unity来对.NET应用进行解耦
    围绕央行系统升级所产生的常见问题
  • 原文地址:https://www.cnblogs.com/yinziqiang0909/p/10421972.html
Copyright © 2011-2022 走看看