2019-03-14数据库的简单使用

查询数据库:show datebases;

创建数据库:create database db_name;

选择数据库:use 数据库名;

退出:exit;

查看所有表:show tables;

创建表:create TABLE biao_name(

                    字段  类型,

                    字段  类型,

                    ……

                    字段  类型);

查表详情:DESC biao_name;(describe)

添加数据:insert INTO biao_name  VALUES("","","",……,"");

数据类型:……

删除数据:delete FROM biao_name WHERE 条件;

修改数据:update biao_name SET 字段='' WHERE 条件;

查询数据:select 字段 FROM biao_name WHERE 条 件;

*************************************************

键表约束:

主键:此字段不能重复,且非空,

1、 CREATE TABLE biao_name(

            字段 类型  PRIMARY key,

                ……);

联合主键里:只要主键值加起来不重复

2、 CREATE TABLE biao_name(

            字段1 类型 ,

            字段2 类型 ,

            ……,

            PRIMARY KEY(字段1,字段2)

            );

自增,辅助与主键使用,实现自增长 ,自动生成

3、CREATE TABLE biao_name(

字段 类型  PRIMARY KEY auto_increment,

……);

后加主键

4、alter TABLE biao_name ADD PRIMARY KEY(字段);

删除主键:

5、alter TABLE biao_name DROP PRIMARY KEY;

修改:

6、alter TABLE biao_name modify 字段 类型 PRIMARY KEY;

-------------------------------

外键:两表,在添加数据时,应先添加主表数据,若主表内无其字段,则报错,如果附表使用了主表数据,主表改数据也无法删除

CREATE TABLE biao_name(

字段1 类型 ,

字段2 类型 ,

……,

FOREIGN KEY (本表字段) REFERENCES 主表名(主表字段)

);

-----------------------------------

唯一:约束字段的值不可以重复

1、 CREATE TABLE biao_name(

字段1 类型 ,

字段2 类型 ,

……,

UNIQUE(字段1,字段2)

);

2、ALTER TABLE biao_name UNIQUE(字段);

3、删除:

alter TABLE biao_name DROP INDEX 字段;

4、修改:

alter TABLE biao_name modify 字段 类型 UNIQUE;

-------------------------------------------

非空:约束字段不能为空

1、 CREATE TABLE biao_name(

字段1 类型  NOT NULL ,

字段2 类型 ,

……

);

--------------------------------------------

默认:如果没有给值,就会使用默认值

CREATE TABLE biao_name(

字段1 类型  DEFAULT 值 ,

字段2 类型 ,

……

);

***********************************************

范式设计的越详细,操作越好,但不一定能用到

第一范式:满足所有字段不可再拆分。

例:字段A是地址,可拆分为国、省、市……

第二范式:满足除主键外,其余每个字段都依赖主键;(除联合主键外)

t_name(

字段A主键

字段B

字段A_1 );(因B与A没关系应剔除,否则做联合主键)

第三范式:必须先满足第二范式,除主键以外,其他字段不能有依赖关系

***********************************************

事务:保持两工作能够同步完成;要么同时成功,要么同时失败

1*利用mysql事务

查看事务状态:SELECT @@autocommit;

SET autocommit=0;

查询事务状态:0为关1为开,当事务自动提交关闭后,若关闭,需要手动提交,否则无法储存

事务创建:语句1;语句2;

事务回滚:rollback;可恢复事务前的状态(事务回滚需要MYSQL  的自动提交关闭;)

事务提交:commit;提交后,数据将持久保存

2*手动开一个事务

事务创建:1、begin;

语句1;语句2;

  2、start TRANSACTION ;

语句1;语句2;

事务回滚:rollback;无需关心自动提交

事务提交:commit;提交后,数据将持久保存

---------------------------

事务四特征:原子性、一致性、隔离性、持久性

****************************************************

数据库的隔离性:脏读、不可重复读、幻读、串行化

查看数据库的隔离级别:8.x @@global.transaction_isolation;

5.x

select @@global.tx_isolation, @@tx_isolation;

修改隔离级别

help ISOLATION

Name: 'ISOLATION'

Description:

Syntax:

SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL

  {

      REPEATABLE READ

    | READ COMMITTED

    | READ UNCOMMITTED

    | SERIALIZABLE

  }

**********************************************

结果集:

平均值 AVG(结果)

最大 MAX(结果)

总和:count(结果)

日期 :年year(日期型结果)

命名 原名 AS  新名

任意一个ANY(结果集)

所有 all(结果集)

去重复 DISTINCT(结果)

条件:

求区间  1、字段 BETWEEN 最小值 AND 最大值;

2、字段 >最小值 AND 字段>最大值;

定值查询(或)  1、字段 IN(值1,值2,……);

2、字段1=值1 OR 字段2=值2;

升序(默认):order by 字段 asc 降序:order by 字段 desc

升降混用:order by 字段 asc,字段 desc;

分组:group BY 字段;

交集  结果1 UNION  结果2;  查询1 UNION  查询2; 

****************************************************

多表查询:

1、俩表查值

SELECT t1.a,t2.b FROM t1,t2 WHERE t1.a=t2.a;

2、仨表查询

SELECT t1.a,t2.b,t3.c FROM t1,t2,t3 WHERE t1.a=t2.a  AND t2.b=t3.b;

***************************************

复制表:查询数据库:show datebases;

创建数据库:create database db_name;

选择数据库:use 数据库名;

退出:exit;

查看所有表:show tables;

创建表:create TABLE biao_name(

字段  类型,

字段  类型,

……

字段  类型);

查表详情:DESC biao_name;(describe)

添加数据:insert INTO biao_name

VALUES("","","",……,"");

数据类型:……

删除数据:delete FROM biao_name WHERE 条件;

修改数据:update biao_name SET 字段='' WHERE 条件;

查询数据:select 字段 FROM biao_name WHERE 条 件;

*************************************************

键表约束:

主键:此字段不能重复,且非空,

1、 CREATE TABLE biao_name(

字段 类型  PRIMARY key,

……);

联合主键里:只要主键值加起来不重复

2、 CREATE TABLE biao_name(

字段1 类型 ,

字段2 类型 ,

……,

PRIMARY KEY(字段1,字段2)

);

自增,辅助与主键使用,实现自增长 ,自动生成

3、CREATE TABLE biao_name(

字段 类型  PRIMARY KEY auto_increment,

……);

后加主键

4、alter TABLE biao_name ADD PRIMARY KEY(字段);

删除主键:

5、alter TABLE biao_name DROP PRIMARY KEY;

修改:

6、alter TABLE biao_name modify 字段 类型 PRIMARY KEY;

-------------------------------

外键:两表,在添加数据时,应先添加主表数据,若主表内无其字段,则报错,如果附表使用了主表数据,主表改数据也无法删除

CREATE TABLE biao_name(

字段1 类型 ,

字段2 类型 ,

……,

FOREIGN KEY (本表字段) REFERENCES 主表名(主表字段)

);

-----------------------------------

唯一:约束字段的值不可以重复

1、 CREATE TABLE biao_name(

字段1 类型 ,

字段2 类型 ,

……,

UNIQUE(字段1,字段2)

);

2、ALTER TABLE biao_name UNIQUE(字段);

3、删除:

alter TABLE biao_name DROP INDEX 字段;

4、修改:

alter TABLE biao_name modify 字段 类型 UNIQUE;

-------------------------------------------

非空:约束字段不能为空

1、 CREATE TABLE biao_name(

字段1 类型  NOT NULL ,

字段2 类型 ,

……

);

--------------------------------------------

默认:如果没有给值,就会使用默认值

CREATE TABLE biao_name(

字段1 类型  DEFAULT 值 ,

字段2 类型 ,

……

);

***********************************************

范式设计的越详细,操作越好,但不一定能用到

第一范式:满足所有字段不可再拆分。

例:字段A是地址,可拆分为国、省、市……

第二范式:满足除主键外,其余每个字段都依赖主键;(除联合主键外)

t_name(

字段A主键

字段B

字段A_1 );(因B与A没关系应剔除,否则做联合主键)

第三范式:必须先满足第二范式,除主键以外,其他字段不能有依赖关系

***********************************************

事务:保持两工作能够同步完成;要么同时成功,要么同时失败

1*利用mysql事务

查看事务状态:SELECT @@autocommit;

SET autocommit=0;

查询事务状态:0为关1为开,当事务自动提交关闭后,若关闭,需要手动提交,否则无法储存

事务创建:语句1;语句2;

事务回滚:rollback;可恢复事务前的状态(事务回滚需要MYSQL  的自动提交关闭;)

事务提交:commit;提交后,数据将持久保存

2*手动开一个事务

事务创建:1、begin;

语句1;语句2;

  2、start TRANSACTION ;

语句1;语句2;

事务回滚:rollback;无需关心自动提交

事务提交:commit;提交后,数据将持久保存

---------------------------

事务四特征:原子性、一致性、隔离性、持久性

****************************************************

数据库的隔离性:脏读、不可重复读、幻读、串行化

查看数据库的隔离级别:8.x @@global.transaction_isolation;

5.x

select @@global.tx_isolation, @@tx_isolation;

修改隔离级别

help ISOLATION

Name: 'ISOLATION'

Description:

Syntax:

SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL

  {

      REPEATABLE READ

    | READ COMMITTED

    | READ UNCOMMITTED

    | SERIALIZABLE

  }

**********************************************

结果集:

平均值 AVG(结果)

最大 MAX(结果)

总和:count(结果)

日期 :年year(日期型结果)

命名 原名 AS  新名

任意一个ANY(结果集)

所有 all(结果集)

去重复 DISTINCT(结果)

条件:

求区间  1、字段 BETWEEN 最小值 AND 最大值;

2、字段 >最小值 AND 字段>最大值;

定值查询(或)  1、字段 IN(值1,值2,……);

2、字段1=值1 OR 字段2=值2;

升序(默认):order by 字段 asc 降序:order by 字段 desc

升降混用:order by 字段 asc,字段 desc;

分组:group BY 字段;

交集  结果1 UNION  结果2;  查询1 UNION  查询2; 

****************************************************

多表查询:

1、俩表查值

SELECT t1.a,t2.b FROM t1,t2 WHERE t1.a=t2.a;

2、仨表查询

SELECT t1.a,t2.b,t3.c FROM t1,t2,t3 WHERE t1.a=t2.a  AND t2.b=t3.b;

***************************************

复制表:

你可能感兴趣的:(2019-03-14数据库的简单使用)