网络编程
- 查询ip:ipconfig
-
inetadress
获取域名:
InetAddress.getByName(域名).getHostName()
- 获得ip:
InetAddress.getByName(域名).getHostAddress()
- 获得本机名称:
InetAddress.getLocalHost().getHostName()
获得本机ip:
InetAddress.getLocalHost().getHostAddress()
URL
URL url=new URL(网址);
获得主机名:
url.getHost()
- 获得URI:
url.getPath()
- 获得通讯协议:
url.getprotocol()
- 获得端口号:
url.getPort()
- 获得默认端口号:
url.getDefaultPort()
- 获得查询参数:
url.getQuery()
数据库
DDL 对库、表操作
- 创建
- 数据库
create database 库名 character set 'utf8mb4'
- 表:
- 数据库
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 />);
新增
- 建表后添加列:
alter table 表名 add column 列名 属性 after 列;
- 建表后添加列:
修改
修改表名
ALTER table 表名 rename 新表名;
修改列属性
alter table 表名 modify 列名 VARCHAR(200);
- 修改列名
ALTER TABLE 表名 change 旧列名 新列名 VARCHAR ( 20 );
删除
删除库
drop database 库名
删除表
drop table 表名
DML 对数据操作
- 添加
insert 表名~~(字段名,可不加)~~ values(字段名)
- 修改
update 表名 set 字段名='' where 表中的某一个字段名=''
删除
删除某列
after table 表名 drop 列名
删除某列数据
delete from 表名 where 列名
删除包含某数据的行
delete from 表名 where 列名= '水浒传'
删除表数据
delete from 表名
删除表数据并重头排列
truncate table 表名
//truncate 先drop,再create,数据无法恢复
约束
主键约束
- 建表时添加:
PRIMARY KEY
- 建表后添加:
alter table 表名 add constraint 主键代号 primary key(列名)
- 建表时添加:
外键约束
- 直接设名为:
fk_主键名
- 建表时添加:
foregin key(外键列名) references 主键表名(主键列名)
- 建表后添加:
alter table reader_info add ~~constraint FK_DNO(设置外键名)~~ foreign key(book_id) references book_info(book_no)
- 直接设名为:
唯一值约束:
unique
默认值:
default
自增长:
auto_increment
字段备注:
comment
设计三范式
- 字段拆分至不可拆分,例:地址拆分为省、市、区、详细地址
- 所有的列必须跟主键有关
- 所有列必须跟主键有直接关系,否则就再拆分表
DQL查询语句
常用运算符
模糊查询
- “_” 单个模糊查询 例:
select * from Cattle where name like '_牛';
- “%” 多个模糊查询 例:
select * from drink where coke like'%可乐';
- “_” 单个模糊查询 例:
分页查询
limit :返回指定数量的语句 例:select * from Cattle **limit **5;
去重查询
distinct:给指定的列去重,例:select distinct name from student;
排序查询
order by 默认asc正序,desc倒序 例:select id,name from student order by age desc limit 5;
多条件查询
or 或者 and 并且,例:select * from student where lenght(name)<=6 and age<18
区间范围查询
between 例:select * from student where age between 12 and 18
null值查询
is null 、is not null 例:select * from student where score is null
聚合查询
1. 常用函数:count()、sum()、avg()、max()、min()
1. ifnull(a,b) 如果a的值有null,则把a改为替换成b 例:`avg(ifnull(score,0))`
1. nullif(a,b) 如果a=b,则返回null,否则返回a
分组查询
group by
group_concat 多字段放一个组里,例:select group_concat(name) from student group by gender
having 对分组后的结果再过滤多表查询
1. 内联接:默认的联接,查询两张表都对的上的字段
1. 左右联接:以左右边字段为准进行联接
1. 自联接:表和自己联接,主要查询省市县
DCL
Data Controller Language 数据控制语言,作用,给其他用户授权
Database Administrator 数据库管理员
权限列表:
1. 创建账号并授权<br /> grant 权限列表 on 数据库.表 to '用户名称' @ '允许登录的IP地址' [identified by '密码']<br />例:`grant select on student.* to '16014'@'%' identified by '123' ;flush privileges;`<br />意为:把查询权限给16014,密码为123,ip为%;更新权限
1. 移除权限<br />revoke 权限列表 on 数据库.表 from '用户名称'@'允许登录的IP地址'<br />例:`revoke insert,update,delete on student.* from '16014'@'%';flush privileges;`