图片 1

2018-07-29上学mysql小结

    下边将会从多少个方面展开总括:

常用语法

#布署数据

insert into 表名(‘字段1′,’字段2′,’字段3′,’字段4’,…)
values(‘值1′,’值2′,’值3’,…);

insert into 表名 values(‘值1′,’值2′,’值3’,…);

例子:

    insert into c (id,name,sex,age,sno) values (null,’涛哥’,’男’,68,1);

    insert into student values(null,’aa’,’男’,’1988-10-2′,’……’);

#查询表中的数据

select * from student;

select id,name from student;

#修改某一条数据

update 表名 set 字段=值 where 条件;

#删去数据

delete from 表名 where条件;

# and 且

select * from student where date>’1988-1-2′ and
date<‘1988-12-1’;

# or 或

select * from student where date<‘1988-11-2’ or
date>’1988-12-1′;

#between

select * from student where date between ‘1988-1-2’ and
‘1988-12-1’
;

#in 查询制订集结内的数据

select * from student where id in (1,3,5);

#排序order by , asc 升序  desc 降序 

select * from student order by id asc;

#分组查询group by   #聚合函数

select max(id),name,sex from student group by sex;

select min(date) from student;

select avg(id) as ‘求平均’ from student;

select count(*) from student;  #计算表中总的数量

select count(sex) from student;  #计算表中性别总量 
若有一条数据中sex为空的话,就不授予计算~

select sum(id) from student;

#询问第i条现在到第j条的数额(不包蕴第i条)

select * from student limit 2,5;  #显示3-5条数据

#建表

create table c(

    id int primary key auto_increment,  #主键

    name varchar(10) not null,  #非空

    sex varchar(50) , 

    age int unsigned, #不可能为负值(如为负值 则默以为0)

    sno int unique    #不得重复

);

#删除表

drop table c;

#修改数据

update 表名 set 字段名=值 where 条件;

例子:

    update c set name=’名字’,age=21,sex=’女’ where id=2

#修改表的名字

alter table 表名_name rename to 新表名

#向表中加进三个字段(列)

alter table 表名 add 字段名 类型;

例子:

    alter table test add  columnname varchar(20);

    alter table test add(columnname char(10));

#修改表中某些字段的名字

alter table 表名 change 字段名 新字段名 类型;  #修改叁个表的字段名

例子:

    alter table test change name uname varchar(50);

#表position 修改列test 默认值

alter table position alter test set default ‘system’;

#表position 去掉test 默认值

alter table position alter test drop default;

#表position 去掉列test

alter table position drop column test;

#表depart_pos 删除主键

alter table depart_pos drop primary key;

#表depart_pos 扩张主键department_id,position_id

alter table depart_pos add primary key
PK_depart_pos(department_id,position_id);

#用文件方式将数据装入数据库表中(比如D:/mysql.txt)

load data local infile “D:/mysql.txt” into table MYTABLE;

    隔离性;

链接: 密码:qrie

sql常用语法总计

      begin

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

命令行使用mysql

进入mysql :

    mysql -uroot -p

显示全数数据库:

    show databases;

新建二个数据库命令:

    create database 数据库名称;

去除三个数据库命令:

     drop database 数据库名称;

运用有些数据库命令:

     use 数据库名称;

翻看表命令:

    show tables;

成立一个新表:

     create table 表名 (字段参数);

或 

    create table if not exists 表名(字段参数);

去除二个旧表:

    drop table 表名;

或 

    drop table if exists 表名;

退出:

    exit

查看表的构造:

    describe 表名;

导入.sql文件命令(例如D:/mysql.sql)

    source d:/mysql.sql;

  或

      /. d:/mysql.sql;


 

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

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

    create trigger
student_backup  //学生备份表随学生表的改动而改动

函数:

  drop database database_name;  //删除数据库

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)

    as select stu_num,stu_name

图片 1

    create view view_name(字段名,字段名,字段名)

insert(插入):

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

安排暗中同意数据:insert inro 表名 values(值1、值2…);

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

      having <条件表达式>    //分组后的条件

    2.数额操作语言(DML)

    持久性。

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

select * from test order by id desc;

代表通过id从大到小举办排序显示

    insert into
表名(字段名,字段名,字段名)  //当插入全部字段时,字段名能够省略

4.limit(偏移量):

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

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

3.3 数据修改-Update

replace(批量翻新数据)(也可用以数据拉长):replace into 表名(字段1、字段2…) values(值1、值2…)

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

未增多的数目会默认为null

    count(字段名)  //对一列中的值总结个数

    首先记住三个概念:

      stu_num int auto_increment,  //自增量

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 作为外键,指向t第11中学的主键id

除去外键:constraint i,把外键命名成i,方便了大家删除此之外键

alter table t2 drop foreign key i; 

    from student

DML(数据操作语言):

      primary key(stu_num),  //主键

ximd内容如下:

  1.3 内一连和外接连

充实字段:alter table 表名 add 字段名1 数据类型

alter table test add address char(30);

    以上境况均为事务A已拉开,但未提交时发出!

   
从前在校学习期间,只是知道数据库很要紧,可是尚未主动去上学领会。未来的就学进程中学了叁遍mysql,就大致的做多个总计吧。

      (‘值1′,’值2′,’值3’);

3.对表操作

    (

    4.函数

    sum(字段名)   //求一列值得总和(数值型数)

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

 


  create database database_name  DEFAULT CHARACTE大切诺基 SET
utf8;  //创制三个数据库  

1.合集函数:操作面向一多级的值,并赶回八个纯粹的值

写法都无异:

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

回到某列的行数:select count(字段) from 表名;

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

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

回来某列总和:select sum(字段) from 表名;

分组展现总和:select sum(字段) from 表名 group by 字段;

      mysqld install      // 安装MySQL数据库服务

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

alter table test rename as father;

    select xxx  //重返值个数应和需插入字段个数同样

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

  2. 常用聚合函数

1.交叉查询:select 表1.字段,表2.字段 from 表1,表2;

  6.1 事务第四次全国代表大会特征

批量立异(通过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);

    for insert,delete,update

2.查询不另行的数目:select distinct 字段 from 表名;

select distinct id from test;

      if((select count(*) from inserted) > 0)

    1.数目定义语言(DDL)

      source d:\myDB\demo.sql

1.索引:

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

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

五、触发器

DQL(数据查询语句insert):

      begin

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)

    drop view stu_sub;  //删除视图

修改字段名:alter table 表名 change 字段名 新字段名 数据类型; 

alter table test change name address char(50);

    insert into 表名()

 
  本篇小结大多数是语句格式,即使必要代码达成的截图,以及一些额外知识点注解,能够下载安装xmind软件后,下载云盘里的构思导图实行查看。

      from student;

   
database中蕴藏着各样数据,sql语句用于从database中找寻我们供给的数额,mysql是一种接纳软件,通过说话对database进行操作。

   数据类型:int,char,varchar,text(字符串类型),blob(字节类型);double(5,2)表示最多5位,在那之中2位小数。

3.字段属性

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

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

3.AUTO_INCREMENT(自动拉长),寄生于主键

4.NOT NULL:强制约束列不守NULL值,即不增多数值就不能插入数据

5.缺省值(default):给多少三个默许值(系统暗中认可值是NULL),不能够与auto_increment同期用于一个字段上

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

 


    avg(字段名)    //求一列值得平均值(数值型数)


      字段名2 数据类型,

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举行温馨多少的对待

  2. 插入多条记下

    3.数量查询语言(DQL)

        from inserted

   
1.数据库(Database)是依据数据结构来协会、存款和储蓄和保管数据的创制在计算机存款和储蓄设备上的货仓。
  

      字段名1 数据类型 [not null] [默认值],

6.like(用于where子句中寻觅列中的钦赐情势):select 字段 from 表名 where 字段 like 表达式;

比方寻找王姓青少年:

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

%:表示0~五个字符

_:表示三个字符

      desc table _name;   //呈现表的字段消息

多少定义语言(DDL):

    on student        

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
表名;(有多少个数据就应际而生多少个)

 


   
此小说即便是谐和的上学小结,何况照旧身为初学者的自家写的,但也目的在于更加多的对象能观望笔者的小说,假若有不足之处或难题,招待到留言区留言。

  例如:

 

        select  t1.id,t1.name,t1.age,t2.score  from table1_name
t1 full join table2_name t2 on t1.id=t2.id    //全连接,MySQL不支持!

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

alter table test drop address;

 


  update student(表名)

5.in(在where后鲜明八个值):select 字段 from 表名 where 字段 in(值1,值2);

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

                net start mysql 或 net stop mysql     //
运行或甘休MySQL服务

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

delete from test where id=001;

 

8.join连接:

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

full join(全连接)(mysql不帮忙全连接)

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

    min(字段名)    //求一列值得最小值

 

    虚读(幻读):三个事务A读取另叁个事务B插入的数目(insert),前后不等同。

2.对数码操作:

      stu_gender char(2),

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

alter table test modify id char(10);

 

    2.SQL :结构化查询语言(Structured Query Language)

    非空约束: 字段名 数据类型 not null

六、事务

    insert into 表名(字段名,字段名,字段名)

    1.1.2 数据表操作命令

       

    drop table [if exist] 表名;