zoukankan      html  css  js  c++  java
  • Sql 知识点小结

    使用数据库的好处:
    1、安全
    2、支持多用户操作
    3、误删数据比较容易恢复
    4、存储较大容量的数据
    MySql:
    MYsql AB公司开发的数据库, 现在归属Oracle公司,开元的关系型数据库
    RDBMS:关系型数据库(Relationship Database Managerment System)
    1、数据是以表的形式存储
    2、row,代表一条数据,实体
    3、column,代表一个字段,属性
    4、多张表构成一个库
    一、DDL数据定义语言
    create
    drop
    alter
    二、DML数据操控语言
    insert
    update from table_name set 字段=值 where 条件
    delete 谨慎删除,如果没有条件可能会删除所有的数据
    三、SQL:Structured Query Language 结构化查询语言
    ================================================================

    一、创建库
    create database 库名
    二、创建表格
    create table 表名(
    字段1 数据类型,
    字段2 数据类型,
    字段3 数据类型
    );
    插入数据:
    insert into 表名 values(1,'zhang3',18);
    删除数据:
    delete from t_test
    删除表
    drop table 表名

    #带有序列的建表
    create table 表名(
    字段1 数据类型 关系属性,
    字段2 数据类型,
    字段3 数据类型
    );

    create table t_student(
    id int primary key auto_increment,#主键唯一标示,自动生成主键
    name varchar(100) not null,
    age int
    )default charset=UTF8 auto_increment=10;
    ① auto_increment 序列,主键可以自动生成,
    ② charset=UTF8字符集的处理
    ③ auto_increment=10,序列的起始位置
    三、MySQL的数据类型
    1、数字相关
    整数类型
    tinyint 1字节 小整数型
    int/integer 4
    浮点型
    float
    double
    2、日期时间
    date:YYYY-MM-DD
    time:HH-MM-SS
    3、字符串相关
    char:定长字符串
    varchar:不定长字符串
    四、查询
    1、查询所有
    select * from table_name;
    * 同配符号,所有字段
    2、查询某些字段
    select name,id,age from t_test
    3、根据条件查询
    select 字段 from 表名 where 条件
    查询id<3的信息
    SELECT * FROM `t_test` WHERE id<3
    4、多个条件查询
    select 字段 from 表名 where 条件1 and 条件2
    降序:DESC
    升序:ASC
    按照工资由高到低显示所有的person
    select * from t_person order by salary
    5、排序:order by 字段的名字--根据某个字段进行排序
    6、分页操作:工资排在前三位:limit 起始位置 ,长度(取多少条数据)
    select * from t_person order by salary desc limit 0 ,3

    注意:
    limit startVal,length:那么数据是从startVal+1开始查询,取length条数据
    7、模糊查询:like
    查询名字中含'z'的用户信息
    select * from t_person where name like '%z%'

    8、对null字段的处理
    查询工资为0的person信息
    select * from t_person where salary=0
    查询没有工资的person信息

    9、连接查询 join
    select tb1.id,tb1.name,tb1.salary,tb2.name from t_person as tb1 join t_passport as tb2 on tb1.p_id=tb2.id


    join:连接两张表
    on:连接条件
    as:取别名:为了区分两张表的相同字段名

    五、表的约束
    主键约束:primary key 非空唯一
    非空约束:not null
    自定义约束:check(salary>0) 对于MySQL数据库来讲自定约束没效果(Oracle可以)
    外键约束:references table_name(字段名)
    create table t_yy(
    id int,
    name varchar(100),
    birthday date
    )
    ①id加上主键约束:alter table t_yy modify id int primary key auto_increment
    ②给birthday加上非空约束:alter table t_yy modify birthday date not null
    ③获取当前的系统时间:current_date
    select current_date from dual
    注意:dual 哑表
    添加一列:
    alter table t_person add column p_id int references t_passport(id)
    六、事务:数据库做数据的最小原子操作(由一条或者多条sql构成)
    事务的提交:commit 把影响数据库操作的多条sql(暂时放在本地client的缓存中)
    commit之后,直接影响数据库
    事务的回滚:rollback,如果对于事务中的某一条sql错误,不会将缓存中的sql执行而
    影响数据库,恢复原来的数据状态
    七、视图view 是一张虚表 把查询到的数据作为一张临时表,简化sql












  • 相关阅读:
    C#通过正则表达式统计词频的一个方法
    本地服务器远程连接其它数据库
    拼字符串成为时间,和两个计算时间点的中间值
    删除文件夹里的图片,打印删除日志
    行转列SQL语句
    加载出一个有层次的下拉框
    查询结果列传行
    【Java&Python双管齐下复健002】回文数和反转数
    【Java&Python双管齐下复健001】冒泡排序和质数判断
    【LeetCode记录】初级算法:数组之删除排序数组中的重复项
  • 原文地址:https://www.cnblogs.com/IamJiangXiaoKun/p/4646483.html
Copyright © 2011-2022 走看看