网络编程

  1. 查询ip:ipconfig
  2. 端口取值范围:0~65535,1024以下为内置端口

    inetadress

  3. 获取域名:InetAddress.getByName(域名).getHostName()

  4. 获得ip:InetAddress.getByName(域名).getHostAddress()
  5. 获得本机名称:InetAddress.getLocalHost().getHostName()
  6. 获得本机ip:InetAddress.getLocalHost().getHostAddress()

    URL

    URL url=new URL(网址);

  7. 获得主机名:url.getHost()

  8. 获得URI:url.getPath()
  9. 获得通讯协议:url.getprotocol()
  10. 获得端口号:url.getPort()
  11. 获得默认端口号:url.getDefaultPort()
  12. 获得查询参数:url.getQuery()

数据库

DDL 对库、表操作

  1. 创建
    1. 数据库
      create database 库名 character set 'utf8mb4'
    2. 表:

CREATE TABLE 表名(<br />id INT PRIMARY KEY auto_increment,<br />sname VARCHAR ( 20 ),<br />sex VARCHAR ( 5 ),<br />Degree INT,<br />remarks VARCHAR ( 200 ),-- 备注<br />address VARCHAR ( 200 ) -- 地址<br />);

  1. 新增

    1. 建表后添加列:alter table 表名 add column 列名 属性 after 列;
  2. 修改

    1. 修改表名
      ALTER table 表名 rename 新表名;

    2. 修改列属性

alter table 表名 modify 列名 VARCHAR(200);

  1. 修改列名
    ALTER TABLE 表名 change 旧列名 新列名 VARCHAR ( 20 );
  1. 删除

    1. 删除库

      1. drop database 库名
    2. 删除表

      1. drop table 表名

DML 对数据操作

  1. 添加insert 表名~~(字段名,可不加)~~ values(字段名)
  2. 修改 update 表名 set 字段名='' where 表中的某一个字段名=''
  3. 删除

    1. 删除某列
      after table 表名 drop 列名

    2. 删除某列数据
      delete from 表名 where 列名

    3. 删除包含某数据的行

delete from 表名 where 列名= '水浒传'

  1. 删除表数据
    delete from 表名

  2. 删除表数据并重头排列

truncate table 表名//truncate 先drop,再create,数据无法恢复

约束

  1. 主键约束

    1. 建表时添加:PRIMARY KEY
    2. 建表后添加:alter table 表名 add constraint 主键代号 primary key(列名)
  2. 外键约束

    1. 直接设名为:fk_主键名
    2. 建表时添加:foregin key(外键列名) references 主键表名(主键列名)
    3. 建表后添加:alter table reader_info add ~~constraint FK_DNO(设置外键名)~~ foreign key(book_id) references book_info(book_no)
  3. 唯一值约束:unique

  4. 默认值:default

  5. 自增长:auto_increment

  6. 字段备注:comment

设计三范式

  1. 字段拆分至不可拆分,例:地址拆分为省、市、区、详细地址
  2. 所有的列必须跟主键有关
  3. 所有列必须跟主键有直接关系,否则就再拆分表

DQL查询语句

  1. 常用运算符
    image.pngimage.png

  2. 模糊查询

    1. “_” 单个模糊查询 例:select * from Cattle where name like '_牛';
    2. “%” 多个模糊查询 例:select * from drink where coke like'%可乐';
  3. 分页查询
    limit :返回指定数量的语句 例:select * from Cattle **limit **5;

  4. 去重查询
    distinct给指定的列去重,例:select distinct name from student;

  5. 排序查询
    order by 默认asc正序,desc倒序 例:select id,name from student order by age desc limit 5;

  6. 多条件查询
    or 或者 and 并且,例:select * from student where lenght(name)<=6 and age<18

  7. 区间范围查询
    between 例:select * from student where age between 12 and 18

  8. null值查询
    is null 、is not null 例:select * from student where score is null

  9. 聚合查询

    1. 1. 常用函数:count()、sum()、avg()、max()、min()
    2. 1. ifnull(a,b) 如果a的值有null,则把a改为替换成b 例:`avg(ifnull(score,0))`
    3. 1. nullif(a,b) 如果a=b,则返回null,否则返回a
  10. 分组查询
    group by
    group_concat 多字段放一个组里,例:select group_concat(name) from student group by gender
    having 对分组后的结果再过滤

  11. 多表查询

    1. 1. 内联接:默认的联接,查询两张表都对的上的字段
    2. 1. 左右联接:以左右边字段为准进行联接
    3. 1. 自联接:表和自己联接,主要查询省市县

DCL

Data Controller Language 数据控制语言,作用,给其他用户授权
Database Administrator 数据库管理员
权限列表:
image.png

  1. 1. 创建账号并授权<br /> grant 权限列表 on 数据库.表 to '用户名称' @ '允许登录的IP地址' [identified by '密码']<br />例:`grant select on student.* to '16014'@'%' identified by '123' ;flush privileges;`<br />意为:把查询权限给16014,密码为123ip为%;更新权限
  2. 1. 移除权限<br />revoke 权限列表 on 数据库.表 from '用户名称'@'允许登录的IP地址'<br />例:`revoke insert,update,delete on student.* from '16014'@'%';flush privileges;`