澳门新葡萄京娱乐网站-澳门新葡萄京888官网-所有平台

热门关键词: 澳门新葡萄京娱乐网站,澳门新葡萄京888官网

认知mysql(2State of Qatar

作者: MySQL数据库  发布:2020-01-04

1、表字段的操作
1、语法 :alter table 表名 实行动作;
2、增添字段(add卡塔尔(قطر‎
alter table 表名 add 字段名 数据类型;
alter table 表名 add 字段名 数据类型 first;
alter table 表名 add 字段名 数据类型 after 字段名;
3、删除字段(dropState of Qatar
alter table 表名 drop 字段名;
4、校订数据类型(modifyState of Qatar
alter table 表名 modify 字段名 新数据类型;
5、表重命名(renameState of Qatar
alter table 表名 rename 新表名;
6、练习
1、创建库 studb2
2、在库中开创表 t1 ,字段有3个:name、age、phnumber
use studb2;
create table t1(
name char(20),
age tinyint unsigned,
phnumber char(11)
);
3、查看表构造
desc t1;
4、在表中首先列增多二个 id 字段
alter table t1 add id int first;
5、把 phnumber 的数据类型改为 bigint
alter table t1 modify phnumber bigint;
6、在表中最终一列增多一个字段 address
alter table t1 add address varchar(50);
7、删除表中的 age 字段
alter table t1 drop age;
8、查看表构造
desc t1;
2、数据类型
1、数值类型
2、字符类型
1、字符类型宽度和数值类型宽度的区分
1、数值类型宽度为浮现上升的幅度,只用于select查询展现,和占领存款和储蓄非亲非故,可用zerofill查看效果
2、字符类型的拉长率超过之后则无法积攒
3、枚举类型
1、单选(enum) :字段名 enum(值1,值2,...)
2、多选(set) :字段名 set(值1,值2,...)
## 插入记录时: "F,study,Python"
create table t5(
id int(3) zerofill,
name varchar(15),
sex enum("M","F","Secret"),
likes set("F","M","study","Python")
);
insert into t5(likes) values("F,study,Python");
4、日期时间等级次序
1、date :"YYYY-MM-DD"
2、time :"HH:MM:SS"
3、datetime :"YYYY-MM-DD HH:MM:SS"
4、timestamp :"YYYY-MM-DD HH:MM:SS"
5、注意
1、datetime :不给值私下认可重回NULL值
2、timestamp :不给值暗许再次来到系统当下时光
create table t7(
id int,
name varchar(15),
birthday date,
money int,
shijian datetime
);
insert into t7 values(2,"王",date(now()),10000,now());
3、日期时间函数
1、now(卡塔尔国 重临服务器当前光阴
2、curdate(卡塔尔国 重返当明天期
3、curtime(卡塔尔(قطر‎ 重临当前天子
4、year(date卡塔尔 再次回到指依时期的年度
5、date(date) 重返指准时间的日期
6、time(date卡塔尔(قطر‎ 重临指准时期的大运
7、练习
1、在表中插入3条记下
insert into t7 values
(3,"小昭",19000520,3000,20180630000000),
(4,"赵敏",19000521,4000,20180702000000),
(5,"周芷若",19010522,3500,20180702100000);
2、查找2018年11月2日有啥样客商充钱了
select * from t7 where date(shijian)="2018-07-02";

认知mysql第三篇,发出的内容相符初学者,如果能持续关切自身的博客,能够完备的牵线mysql的常用知识,后续笔者也会陆陆续续发生python相关的知识,关怀自身,和自家风华正茂共提升吧!

    以前在校学习时期,只是知道数据库很关键,不过未有主动去学习通晓。现在的读书进程中学了叁遍mysql,就归纳的做多个总计吧。

3、查找二零一八年十3月份充值的消息
select * from t7
where
date(shijian)>="2018-07-01" and date(shijian)<="2018-07-31";

1、SQL查询
  1、实行各种
    3、select ...聚合函数 from 表名
      1、where ...
      2、group by ...
      4、having ...
      5、order by ...
      6、limit ...
  2、group by
    1、功用 :给查询结果进行分组
    2、示例
      1、查询表中总结有多少个国家

    首先记住四个概念:

4、查找1七月19日10:00-12:00充钱的新闻
select * from t7
where
date(shijian)="2018-07-31" and
time(shijian)>="10:00:00" and
time(shijian)<="12:00:00";
4、日期时间运算
1、语法格式
select * from 表名
where 字段名 运算符 (时间-interval 时间隔开分离单位卡塔尔;
日子距离单位:
1 day | 2 hour | 1 minute | 2 year | 3 month
2、练习
1、查询1天以内的记录
select * from t7
where shijian > (now()-interval 1 day);
age > 20
2、查询1年从前的笔录
select * from t7
where shijian < (now()-interval 1 year);
3、查询1天从前,3天以内的记录
select * from t7
where
shijian < (now()-interval 1 day) and
shijian > (now()-interval 3 day);
5、表记录管理
1、删除表记录
1、delete from 表名 where 条件;
2、注意
delete语句后要是不加where条件,全数记录整个清空
2、更新表记录
1、update 表名 set 字段1=值1,字段2=值2,... where 条件;
2、注意
必须加where条件
3、练习(表hero)
1、查找全体金朝人的音讯
select * from hero where country="蜀国";
2、查找全部女铁汉的姓名、性别和国度
select name,sex,country from hero
where sex="女";
3、把id为2的记录改为典韦,性别男,国家楚国
update hero set name="典韦",sex="男",country="魏国" where id=2;
4、删除全数金朝铁汉
delete from hero where country="蜀国";
5、把任红昌的国籍改为卫国
update hero set country="魏国"
where name="貂蝉";
6、删除全体表记录
delete from hero;
4、运算符操作
1、数值相比/字符比较
1、数值相比 := != > >= < <=
2、字符相比 := !=
3、练习
1、查找攻击力高于150的豪杰的名字和攻击值
select name,gongji from sanguo where gongji>150;
2、将赵子龙的攻击力设置为360,防卫力设置为68
update sanguo set gongji=360,fangyu=68
where name="赵云";
2、逻辑相比
1、and (多个或多个规格还要创建卡塔尔(قطر‎
2、or (任性二个规格创立时可State of Qatar
3、练习
1、寻找攻击值高于200的东晋大侠的名字、攻击力
select name as n,gongji as g from sanguo
where gongji>200 and country="蜀国";
2、将西魏好日喀则攻击值为110的强悍的攻击值改为100,防守力改为60
update sanguo set gongji=100,fangyu=60
where country="吴国" and gongji=110;
3、查找北周和秦国的现身说法音信
select * from sanguo
where country="蜀国" or country="魏国";
3、范围内相比
1、between 值1 and 值2
2、where 字段名 in(值1,值2,...)
3、where 字段名 not in(值1,值2,...)
4、练习
1、查找攻击值100-200的汉代民代表大会侠音讯
select * from sanguo
where gongji between 100 and 200 and
country="蜀国";
2、找到大顺和辽朝以外的国度的女英豪音讯
select * from sanguo
where country not in("蜀国","吴国")
and sex="女";
3、找到id为1、3或5的蜀汉英雄 和 貂蝉的音信
select * from sanguo
where
(id in(1,3,5) and country="蜀国") or name="貂蝉";
4、匹配空、非空
1、空 :where name is null
2、非空:where name is not null
3、示例
1、姓名称为NULL值的北周女铁汉消息
select * from sanguo
where
name is null and country="蜀国" and sex="女";
2、姓名字为 "" 的无畏音讯
select * from sanguo where name="";
4、注意
1、NULL :空值,只能用 is 或者 is not 去匹配
2、"" :空字符串,用 = 可能 != 去匹配
5、模糊相比
1、where 字段名 like 表达式
2、表达式
1、_ : 相称单个字符
2、% : 相配0到多个字符
3、示例
select name from sanguo where name like "_%_";
select name from sanguo where name like "%";
## NULL不会被计算,只好用is、is not去匹配
select name from sanguo where name like "___";
select name from sanguo where name like "赵%";
5、SQL查询
1、总结
3、select ...聚合函数 from 表名
1、where ...
2、group by ...
4、having ...
5、order by ...
6、limit ...;
2、order by
1、给查询结果实行排序
2、... order by 字段名 ASC/DESC
3、升序:ASC(默认)
降序:DESC
4、示例
1、将大胆按防守值从高到低排序

      2、总结每种国家的平分攻击力
      select country,avg(gongji) from sanguo
      group by country;
    3、查找全部国家中最先受到灾殃数量最多的前2名的 国家名称和勇于数量
      select country,count(id) as number from sanguo
      group by country
      order by number desc
      limit 2;
3、注意
  1、group by之后的字段名必须要为select之后的字段名
  2、借使select之后的字段名和group by之后的字段不相同等,则必须对该字段举办联谊管理(聚合函数卡塔尔
  3、having语句
1、作用
对查询的结果开展更进一层筛选
2、示例
  1、搜索平均攻击力>105的国度的前2名,呈现国家名和平均攻击力
  select country,avg(gongji) as pjgj from sanguo
  group by country
  having pjgj>105
  order by pjgj DESC
  limit 2;
3、注意
  1、having语句常常和group by语句联合利用,过滤由group by语句重返的记录集
  2、where只可以操作表中实际存在字段,having可操作由聚合函数生成的显得列
4、distinct
  1、功效 :不显得字段重复值
  2、示例
1、表中都有如何国家
  select distinct country from sanguo;
2、总结齐国风度翩翩共有微微个大胆
  select count(distinct id) from sanguo
  where country="蜀国";
3、注意
  1、distinct和from之间具有字段都同样才会去重
  2、distinct无法对其余字段做聚合管理
5、查询表记录时做数学生运动算
1、运算符
  + - * / %
2、示例
1、查询时全数勇于攻击力翻倍
select id,name,gongji*2 as gj from sanguo;

    1.数据库(DatabaseState of Qatar是依据数据布局来公司、存款和储蓄和管理数据的创建在微微机存储设备上的货仓。   

2、将南陈豪杰按攻击值从高到低排序

## sudo apt-get install python3-pip
## sudo pip3 install pymysql
2、约束
  1、功能 :保证数据的完整性、后生可畏致性、有效性
2、限定分类
  1、默许约束(default卡塔尔
  1、插入记录,不给该字段赋值,则动用暗中认可值
2、非空限制(not NULL卡塔尔国
  1、分歧意该字段的值有NULL记录
  sex enum("M","F","S") not null defalut "S"

    2.SQL :构造化查询语言(Structured Query LanguageState of Qatar

3、将魏蜀二国硬金昌名叫四个字的按防范值升序排列
select * from sanguo
where
country in("蜀国","魏国") and name like "___"
order by fangyu ASC;

3、索引
  1、定义
  对数码库表的一列或多列的值进行排序的黄金时代种构造(Btree形式卡塔尔
  2、优点
  加快数据检索速度
3、缺点
  1、占用物理存款和储蓄空间
  2、当对表中数量更新时,索引要求动态维护,裁减数据保护速度
4、索引示例
  1、开启运营时刻检验 :set profiling=1;
  2、实行查询语句
  select name from t1 where name="lucy99999";
3、查看施行时间
  show profiles;
4、在name字段创设索引
  create index name on t1(name);
5、再实行查询语句
  select name from t1 where name="lucy88888";
6、查看实施时间
  show profiles;
5、索引
1、普通索引(index卡塔尔国
1、使用准绳
1、可设置多个字段
2、字段值无束缚
3、key标志 :MUL
2、创建index
1、创设表时
  create table 表名(...
  index(字段名),index(字段名));
2、已有表
  create index 索引名 on 表名(字段名);
  create index name on t3(name);
3、查看索引
  1、desc 表名; --> KEY标志为:MUL
  2、show index from 表名G;
  4、删除索引
  drop index 索引名 on 表名;
2、独一索引(unique卡塔尔
  1、使用法规
    1、可安装八个字段
    2、限制 :字段值不一样意再次,但可为 NULL
    3、KEY标志 :UNI
    2、创建
    1、创制表时成立
    unique(字段名),
    unique(字段名)
2、已有表
  create unique index 索引名 on 表名(字段名);
3、查看、删除 同普通索引
3、主键索引(primary key卡塔尔(قطر‎
自增加属性(auto_increment,合作主键一同利用State of Qatar
1、使用准绳
1、只好有三个主键字段
2、限定 :不相同意再一次,且不能够为NULL
3、KEY标志 :PRI
4、平日设置记录编号字段id,能唯后生可畏锁定一条记下
2、创建
1、创造表时
  (id int primary key auto_increment,
  )auto_increment=10000;##安装自拉长初步值
原来就有表加多自增进属性:
  alter table 表名 modify id int auto_increment;
原来就有表重新钦点起首值:
  alter table 表名 auto_increment=20000;
2、已有表
  alter table 表名 add primary key(id);
3、删除
1、删除自增加属性(modifyState of Qatar
  alter table 表名 modify id int;
2、删除主键索引
  alter table 表名 drop primary key;
4、外键索引
4、数据导入
1、效率 :把文件系统的内容导入到数据库中
2、语法
load data infile "/var/lib/mysql-files/文件名"
into table 表名
fields terminated by "分隔符"
lines terminated by "n";
3、将scoretable.csv文件导入到数据库的表中
1、在数据库中开创对应的表
create table scoretab(
id int,
name varchar(15),
score float(5,2),
number bigint,
class char(7)
);
2、把公文拷贝到数据库的暗许寻找路线中
1、查看暗中同意寻觅路线
  show variables like "secure_file_priv";
  /var/lib/mysql-files/
2、拷贝文件
  sudo cp ~/scoretable.csv /var/lib/mysql-files/
3、施行多少导入语句
load data infile "/var/lib/mysql-files/scoretable.csv"
into table scoretab
fields terminated by ","
lines terminated by "n";
4、文件权限
rwxrw-rw- 1 tarena tarena scoretable.csv
所有者 所属组
rwx : tarena用户
rw- : 同组别的客商
rw- : 别的组的别的客户(mysql客户卡塔尔

    3.MySQL:关系型数据库管理种类

select * from sanguo
where
(country="魏国" or country="蜀国") and name like "___"
order by fangyu;
3、limit (永久放在SQL语句的结尾写卡塔尔
1、功用 :约束显示查询记录的个数
2、用法
1、limit n -> 显示 n 条记录
2、limit m,n
m 表示 从第m+1条记下起头显得,呈现 n 条
limit 2,3 : 第 3、4、5 三条记下
3、示例
1、在明朝挺身中,查找防御值倒数第二名至尾数第四名的勇敢的记录
select * from sanguo
where country="蜀国"
order by fangyu asc
limit 1,3;
2、在蜀汉首当其冲中,查找攻击值前3名且名字不为 NULL 的勇猛的姓名、攻击值和江山
select name,gongji,country from sanguo
where
country="蜀国" and name is not NULL
order by gongji DESC
limit 3;
4、分页
每页展现5条记下,显示第4页的原委

r -> 4
w -> 2
x -> 1
chmod 644 文件名 rw-r--r--
5、Excel表格怎么着转变为CSV文件
1、展开Excel文件 -> 另存为 -> CSV(逗号分隔卡塔尔
6、纠正文件编码格式
1、用记事本/编辑器 展开,文件->另存为->选用编码
5、数据导出
1、作用
将数据库中表的笔录导出到系统文件里
2、语法格式
select ... from 表名
into outfile "/var/lib/mysql-files/文件名"
fields terminated by "分隔符"
lines terminated by "n";
3、把MOSHOU库下的sanguo表大侠的姓名、攻击值、国家导出来,sanguo.txt
select name,gongji,country from MOSHOU.sanguo
into outfile "/var/lib/mysql-files/sanguo.txt"
fields terminated by " "
lines terminated by "n";
$ sudo -i
$ cd /var/lib/mysql-files/
$ ls
$ cat sanguo.txt
4、将mysql库下的user表中 user、host五个字段的值导出到 user.txt
select user,host from mysql.user
into outfile "/var/lib/mysql-files/user.txt"
fields terminated by " "
lines terminated by "n";

    database中蕴藏着各个数码,sql语句用于从database中寻找大家需求的数量,mysql是大器晚成种接纳软件,通过言语对database进行操作。

第1页 :limit 0,5 # 1 2 3 4 5
第2页 :limit (2-1)*5,5 # 6 7 8 9 10
第3页 :limit (3-1)*5,5 # 11 12 13 14 15
第4页 :limit (4-1)*5,5 # 16 17 18 19 20

本节完!

    MySQL笔者利用的是5.6本子,通过管理员身份张开cmd后,启用mysql服务为:net start mysql56,关闭服务为:net stop mysql56。登陆:mysql -h localhost -u root -p     回车的前边输入密码:123456(顾客名和密码在设置时打开设置)

每页展现n条记录,突显第m页 :limit (m-1卡塔尔国*n,n
4、聚合函数
1、分类
avg(字段名卡塔尔国 : 求该字段平均值
sum(字段名) : 求和
max(字段名) : 最大值
min(字段名) : 最小值
count(字段名卡塔尔国 : 总括该字段记录的个数
2、示例
1、攻击力最强值是稍微
select max(gongji) from MOSHOU.sanguo;
2、计算id 、name 五个字段分别有几条记下
select count(id),count(name) from sanguo;
## 空值 NULL 不会被计算,""会被计算


3、总结大顺铁汉的总攻击力
select sum(gongji) from MOSHOU.sanguo
where country="蜀国";
4、总结曹魏英雄中攻击值大于200的强悍的数量
select count(*) from MOSHOU.sanguo
where gongji>200 and country="蜀国";

    下边将会从多少个地方扩充总计:

 

    1.数量定义语言(DDL)

    2.数码操作语言(DML)

    3.多少查询语言(DQL)

    4.函数

    本篇小结超越1/4是语句格式,即便急需代码达成的截图,以至一些额外知识点标明,能够下载安装xmind软件后,下载云盘里的思虑导图举行查看。

链接: 密码:qrie

ximd内容如下:

图片 1

 

数码定义语言(DDL):

1.建表:

create table 表名(                                                    create table test(

          列名称1 数据类型 ,                                                           id int,

          列名称2 数据类型,                                                            name char(10卡塔尔,

          .........                                                                                    ......

          列名称n 数据类型);                                                       birthday date卡塔尔(قطر‎;

常用的数据类型:整数(int,tinyint,smallint),小数(float,decimal),字符串(char,varchar),时间(date,time)

2.约束:

primary key(主键):节制唯大器晚成标记数据库表中的每条记下

foreign key(外键):foreign key正是表与表之间的某种约定的涉及,从三个表指向另二个表

unique:约束用于约束参与表的数额的花色

建表时可在数据类型后增多:

create table test(id int primary key);

create table test(id int,primary key(id);

抑或建表时未加多,前边要求时再增添:

alter table test add primary key(id);

剔除主键:alter table test drop primary key;

unique的用法与primary key 相仿。

外键的用法:

create table t1(id int primary key,name char(10));

create table t2(id int primary key,pri_id int,name char(10),

constraint i foreign key(pri_id) references t1(id));

意思为:把t2中的pri_id 作为外键,指向t1中的主键id

删除此而外键:constraint i,把外键命名成i,方便了我们删除此之外键

alter table t2 drop foreign key i; 

3.字段属性

1.unsigned(无符号型),只可以用在数值型字段

2.zerofill(自动补零),只可以用在数值型字段,前导零,相同的时候该字段自动式UNSIGNED

3.AUTO_INCREMENT(自动增加),寄生于主键

4.NOT NULL:免强约束列不守NULL值,即不加多数值就不恐怕插入数据

5.缺省值(default):给多少多个默许值(系统默许值是NULLState of Qatar,不能够与auto_increment同期用于八个字段上

写法均为:create table test(id int 字段属性卡塔尔国;

 


DML(数据操作语言):

1.索引:

创建:create index 索引名 on 表名(字段);            create index i on test(id);

删除:drop index 索引名;                                        drop index i;

2.对数据操作:

insert(插入):

插入单独数据:insert into 表名 字段1、字段2... values(值1、值2...);

安排私下认可数据:insert inro 表名 values(值1、值2...卡塔尔(قطر‎;

insert into test(id,name) values(008,'周星星');

update(修改、更新):修改(更新)数据:update 表名 set 字段=新值 where 列名称=某值

update test set name='詹姆斯' where id=008;

修正多条数据:

update test set name=case id

when 001 then 'qwe'

when 002 then 'asd'

end

where id in(001,002)

replace(批量翻新数据)(也可用以数据增加):replace into 表名(字段1、字段2...卡塔尔 values(值1、值2...卡塔尔

replace into test(id,name) values(002,'777');

未增多的数码会私下认可为null

批量立异(通过update):

insert into test(id,name) values(001,'i am 001'),(002,'i am 002')

on duplicate key update

id=values(id),name=values(name);

delete删除数据(一条):delete from 表名 where 条件

delete from test where id=001;

 

3.对表操作

改过表名:alter table 旧表名 rename as 新表名;

alter table test rename as father;

改正字段的数据类型:alter table 表名 modify 字段名 数据类型

alter table test modify id char(10);

校正字段名:alter table 表名 change 字段名 新字段名 数据类型; 

alter table test change name address char(50);

日增字段:alter table 表名 add 字段名1 数据类型

alter table test add address char(30);

剔除字段:alter table 表名 drop 字段名;

alter table test drop address;

 


DQL(数据查询语句insert):

1.接力查询:select 表1.字段,表2.字段 from 表1,表2;

多表联合查询:select 表1.字段,表2.字段 from 表1,表2 where 表1.id=表2.id;

select * from t1,t2 where t1.id=t2.id;

2.询问不重复的数据:select distinct 字段 from 表名;

select distinct id from test;

3.取别名alias:select * from 表名 as 别名;

自连接:select b.* from shop as a,shop as b where a.name='包子' and a.price

把shop表取外号字为a,b,通过a和b进行友繁多少的比较

4.limit(偏移量):

查询前n条数据:select *from 表名 limit n;

查询前n条数据后的i条数据:select *from 表名 limit n,i;

5.in(在where后显著五个值):select 字段 from 表名 where 字段 in(值1,值2卡塔尔(قطر‎;

select * from test where id in(1,2,3);

6.like(用于where子句中搜索列中的钦赐形式):select 字段 from 表名 where 字段 like 表明式;

比如找出王姓青少年:

select *from test where name like'王%';

%:表示0~多少个字符

_:表示三个字符

7.order by(排序):select 字段 from 表名 order by 字段(排序格局) [desc](使用倒序排列)

select * from test order by id desc;

代表经过id从大到小举行排序突显

8.join连接:

inner jor(内连接),left join(左连接),right join(右连接)

full join(全连接)(mysql不扶持全连接)

格式都相近:select 字段 from 表1 inner/left/right join 表2 on 表1.字段=表2.字段;

9.union(联合查询):select *from 表1 union select *from 表2;

 


函数:

1.合集函数:操作面向意气风发多元的值,并回到三个单纯的值

写法都同生龙活虎:

询问某列的平均值:select avg(字段) from 表名;

回来某列的行数:select count(字段卡塔尔 from 表名;

查询某列最大值:select max(字段) from 表名;

询问某列最小值:select min(字段) from 表名;

归来某列总和:select sum(字段State of Qatar from 表名;

分组突显总和:select sum(字段卡塔尔国 from 表名 group by 字段;

2.标量函数:操作面向有个别单生龙活虎的值,并赶回基于输入值的二个十足的值

写法也都平等:

ucase(把字段的值转换为题写):select ucase(字段) from 表名;

lcase(把字段的值转变为题写):select lcase(字段) from 表名;

mid(提取字符):mid(字段,开始,截至):

select mid(name,2,3) from test;

代表从name列的首个数据开端,每一种数据只体现3位

len(重返文本长度):select length(字段State of Qatar from 表名;

round(把数值四舍五入,并保存相应小数位):select round(字段,数字卡塔尔 from 表名;

now()(查询当前时光):select now(卡塔尔 from 表名;(有多少个数据就出现多少个)

 


    此文章即便是本身的上学小结,何况依旧身为初读书人的自家写的,但也指望越来越多的相爱的人能收看作者的篇章,假如有白璧微瑕或难题,招待到留言区留言。

本文由澳门新葡萄京娱乐网站发布于MySQL数据库,转载请注明出处:认知mysql(2State of Qatar

关键词: