mySQL数据库操作语句

1、表字段的操作
1、语法 :alter table 表名 执行动作;
2、添加字段(add)
alter table 表名 add 字段名 数据类型;
alter table 表名 add 字段名 数据类型 first;
alter table 表名 add 字段名 数据类型 after 字段名;
3、删除字段(drop)
alter table 表名 drop 字段名;
4、修改数据类型(modify)
alter table 表名 modify 字段名 新数据类型;
5、表重命名(rename)
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、查找二〇一八年七月2日有什么样用户充值了
select * from t7 where date(shijian)=”2018-07-02″;

认识mysql第三篇,发出的情节符合初大家,如若能不断关切自己的博客,可以圆满的领会mysql的常用知识,后续我也会陆续暴发python相关的学识,关心自我,和我合计升高呢!

   
以前在校学习期间,只是知道数据库很紧要,不过尚未主动去上学领悟。现在的读书进度中学了五遍mysql,就大致的做一个统计吧。

1.展现所有数据库

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 …
mySQL数据库操作语句。      5、order by …
      6、limit …
  2、group by
    1、功能 :给查询结果开展分组
    2、示例
      1、查询表中统计有多少个国家

    首先记住七个概念:

show databases;//显示所有数据库

4、查找7月30日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 (任意一个标准化建立时可)
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.数据库(Database)是根据数据结构来社团、存储和治本数据的确立在处理器存储设备上的堆栈。
  

2,创造数量管理种类
create database 数据库名字;

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 Language)

3,删除数据库
drop database 数据库名字;

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,协作主键一起利用)
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、删除自增加属性(modify)
  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:关系型数据库管理序列

4,使用数据库
use 数据库名字;–>database changed;

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进行操作。

5,创制数据表
creat table 表名(字段名 字段类型(约束),字段名2 字段类型(约束),);
字段类型有:int(Integer) 整数型;
float/double 单精度/双精度浮点型
date 日期类型
datetime 日期时间项目
char 定长字符串
varchar 可变长度字符串
text 大文本对象,可用来存储超长字符串
bold 二进制大对象,可用于存储图片等二进制数据

第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(用户名和密码在安装时举行安装)

6,查看创建的数据表
show tables;//仅仅是表名的来得;

每页突显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 不会被总结,””会被统计


7,查看表的布局
desc 表名//desc student;

3、总括金朝英雄的总攻击力
select sum(gongji) from MOSHOU.sanguo
where country=”蜀国”;
4、统计隋代英雄中攻击值大于200的神勇的多寡
select count(*) from MOSHOU.sanguo
where gongji>200 and country=”蜀国”;

    上面将会从四个方面展开统计:

8,修改数据表名称
alter table 表名 rename 新表名;//alter table student rename stu;

 

    1.数码定义语言(DDL)

9,删除数据表
drop table 表名;//delete table stu;

    2.数据操作语言(DML)

10,添加表字段
alter table 表名 add column 字段名 字段类型;//alter table student add
column phone varchar(20);
累加带默许值的字段名
alter table student add column sex varchar() default’男’;

    3.数目查询语言(DQL)

11,修改表字段类型
alter table 表名 modify 字段名 修改的项目;//alter table student modify
sex varchar(10);

    4.函数

12,删除表字段
alter table 表名 drop 字段名//alter table student drop phone;

 
  本篇小结超过一半是语句格式,假若急需代码完结的截图,以及一些额外知识点标注,可以下载安装xmind软件后,下载云盘里的思想导图举办查看。

13,约束 NOT NULL:非空约束;
UNIQUE:唯一约束;
PRIMARY KEY:主键,唯一标识该记录,非空且唯一;
FOREIGN KEY:外键,指定该记录从属的主表记录;
添加非空约束和主键;
主键添加:alter table student add column id int primary key;

链接: 密码:qrie

14,创立表数据时设置主键自增 ,以及名字非空;
create table student(
id int primary key auto_increment,
name varchar(20) not null,
age int,
birthday date,
xuefen float(3,1),//3代表共计有三位,1象征小数点后的位数.);

ximd内容如下:

15,索引:索引的效益类似于书的目录,一个表能够有三个目录,每个索引都可用于加快该列的询问速度
创办索引 creat index 索引名称 on 表名(字段名);
create index nameindex on student(name);//成立指向student name
删除索引 drop index 索引名称 on 表名;
create index nameindex on student;
劣势:当数码开展改动时,索引也亟需开展立异,较为麻烦,同时索引新闻须要自然的磁盘空间。

997755.com澳门葡京 1

16,中文乱码要求键入 set names gbk;//解决名字乱码难题;

 

17,插入数据 insert into 表名(字段名1,字段名2) values(数据1,数2);
不带自定义id的插入学生新闻:
insert into student(name,age,birthday,xuefen)
values(‘科比’,39,’1978-8-30′,1.8);
展现输入的学童拥有新闻:
select * from student;
显示表名中的部分学生音信:
select age,xuefen from student;
自带id的插入学生音信:
select into student(id,name,age,birthday,xuefen)
values(5,’杜兰特’,29,’1988-9-29′,1.9);
若此时再开展不带自定义id的花样插入学生新闻,则会从自带id的末端举行自拉长
insert into student(name,age,brithdaty,xuefen)
values(‘艾弗森’,42,’1975-6-7′,3.0);
若输入的逐条和出示出来表的字段的逐条相同,可省略字段局部;
insert into student values(2,’汤普森’,’27’,’1990-2-8′,’3.5′);

多少定义语言(DDL):

18,修改数据 update 表名 set 字段1=值1,字段2=值2,where条件,
未曾添加where条件的会修改总体记下,
uodate student set sex=男;
添加where 一般指定id;
update student set xuefen=3.0 where id=4;

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)

19,删除数据 delete from 表名 where 条件;//以行为单位进行整行删除
delete from student where id=7;

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; 

20,查询数据{单表查询,联合查询};
单表查询:单条件查询,去重查询,查询条件中的运算符,函数查询,分组查询,分页查询,结果排序

3.字段属性

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

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

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

4.NOT NULL:强制约束列不守NULL值,即不添加数值就不可以插入数据

5.缺省值(default):给多少一个默认值(系统默许值是NULL),无法与auto_increment同时用于一个字段上

写法均为:create table test(id int 字段属性);

 


20.1 单条件查询:select * from 表名;(全部元素都会彰显出来);
select * from student;
来得独特字段 select 字段1,字段2 from 表名
select name,age from student;
查询特殊条件的 select * from 表名 where 条件;
select * from student where age>30;
询问五个特殊规格的;条件1 and 条件2;//与
条件2 or 条件2;//或

DML(数据操作语言):

20.2 去重查询:可以使用distinct关键字从询问结果中清除重复数据;
select distinct 字段1,字段2 from 表名;
select distinct name,xuefen from student;name和学分都再度才会删除;

1.索引:

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

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

20.3 查询条件中的运算符;对比运算符=,!=,<>
,>,>=,<,<=;
逻辑运算符 and:与 or 或 not:非 优先级 not>and>or
事先级的检测;
select * from student where 1<>1 and 1=1 or 1=1 or 1=1;
select * from student where 1=1 or 1=1 or 1=1 and 1<>1;
使用between and
between 16 and 20 ;//可以取到16 和20,那七个边界值。
使用in运算符
select * from student where age in(10,30,40,29);
跟表中的年龄进行比对,看有没有可以兼容相等的,有,则显示
使用like运算符
混淆运算符,像
select * from student where name like ‘%张’;
‘%’代表无限个字符 ‘%张’是指以张结尾的名字
‘%张%’中间有张字的名字 ‘张%’是指以张开端的名字
‘_张’以’张’字结尾的七个字的名字,’‘代表一个字符;
使用is null运算符

2.对数据操作:

20.4 函数查询
max:求最大值,min:求最小值,avg:求平均值,sum:求和,count:求数量
case 函数,类似于switch;
select max(age) from student;//接纳最大岁数;
最大年纪对应的名字
select age,max(age) from student;
//体现max(age)对应的享有新闻;
//select max(age) from student–>再次回到的是一个最大岁数的表单
select * from student where age=(select max(age) from student);
count的应用:
select count(1) from student;
case:的应用
select * ,case
where age>30 then ‘老年人’
where age<30 then ‘中年人’
end
from student;
实例1:查询所有大于平均年龄的学习者记录
//平均年龄 select avg(age) from student;
//select * from student when age>(select avg(age) from student);

insert(插入):

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

插入默许数据:insert inro 表名 values(值1、值2…);

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

20.5 分组查询
group by 分组字段;
//案例:平均年龄根据子女性别分组
select avg(age) from student gronp by sex;
//突显孩子性别,同时平均年龄依照子女性别分组
select age,avg(age) from student group by sex;
having 分组条件
//案例,显示孩子性别,同时平均年龄依据子女性别分组不过超越平均年龄的要自愧不如3个
select sex avg(age) from student group by sex having count<3;
where 和having 的区别
where用于过滤行,having 用于过滤组,where 子句中不可以使用组函数,
having子句中能够使用组函数

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)

20.6 分页查询 limit x,y;x代表下标,y代表个数
select * from student limit 0,2;起先下标为0的职责显得两日消息;

replace(批量立异数据)(也可用于数据增加):replace into 表名(字段1、字段2…) values(值1、值2…)

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

未添加的数码会默认为null

20.7 排序查询 order by 字段//默许是升序
select * from student order by age (asc);//默许按年龄升序排列
select * from studnet order by age desc;//按年龄降序排列;
案例1:先按年龄升序排序,再取出年龄最大的八个
select * from student by age asc limit 0,2;
案例2:先按年龄升序排序,假设年龄同样再按学分降序排序
select * from student by age ase,xuefen desc;

批量翻新(通过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);

分组的依次优先级:

select * from student group by () having where order by limit;

21 关联查询
21.1 连接查询
交叉连接,使用on子句的连日,左连接,右连接;

  21.1.1 交叉连接
  select * from student cross join class;
  添加别名进行交叉连接选择
  //用于挑选一个学生选择一门课程时的展示数据
  select * from student s cross join class c where s.kid=c.id; 
  //挑选所有选了某个课程的学生
  select s.* from studnet s cross join class c where s.kid=c.id and c.classname="crossover";

  21.1.2 on连接
     select * from student s join class c on;

  21.1.3 左连接
    select * from student s left join class c on s.kid=c.id;

21.1.4 右连接
select *997755.com澳门葡京 , from student s right join class c on s.kid=c.id;

21.2 子查询
1.油可是生在from语句后当成数据表,
2.冒出在where条件后当做过滤条件的值,
//案例查询所有选用某门科目中学生年龄最大的;
//所有选取某门学科的学习者
select * from student s join class c on s.kid=c.kid and classname=””;
//筛选年龄最大的
先举办排序再拓展分页
select * from( select * from student s join class c on s.kid=c.kid and
classname=””) t
order by t.age desc limit 0,1;

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(字段) 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(字段) from 表名;

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

now()(查询当前时光):select now() from
表名;(有几个数据就现身多少个)

 


   
此小说固然是自己的上学小结,而且依然身为初学者的本身写的,但也指望愈来愈多的爱侣能收看我的篇章,假使有不足之处或难题,欢迎到留言区留言。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website