一、python数据库:mysql 数据库

一、SQL

在数据库中进行操作的脚本,称为sql,结构化查询语言,当前关系型数据库都支持使用sql语言进行操作,也就是说可以通过 sql 操作 oracle,sql server,mysql,sqlite 等等所有的关系型的数据库。

sql语句主要分为:

    1 DQL:数据查询语言,用于对数据进行查询,如 select

    2 DML:数据操作语言,对数据进行增、删、查、改,如 insert 、update 、delete

    3 TPL:事物处理语言,对事物进行处理,包括 begin transaction 、commit 、rollback

    4 DCL:数据控制语言,进行授权与权限回收,如 grant 、revoke

    5 DDL:数据定义语言,进行数据库、表的管理,如 creat 、drop

    6 CCL:指针控制语言,通过控制指针完成表的操作,如 declare cursor

对于web程序员来说,重点是数据的增删查改,必须熟练掌握DQL 、DEM 、DDL

SQL是一门特殊的语言,专门用来操作关系数据库,且不区分大小写

 

二、mysql 对数据库的相关操作

1、mysql -u root -p  进入mysql操作界面

      mysql  -h  192.168.126.128 -u root -p 访问该主机地址的mysql

2、查看数据库:    show  databases;

2、创建数据库:    create  database  数据库   charset=utf8;    ( 默认使用拉丁文字符串,不重置的话使用中文会报错)

3、查看创建出来的数据库:    show  create  database  数据库;

4、删除数据库:    drop  database  数据库;

5、选择数据库:   use  数据库;

6、查看正在使用的数据库:   select  database( );

7、查看默认存储引擎:   show  variables  like"%storage_engine%";

8、查看 mysql 数据库系统支持的储存引擎的类型

9、强调说明

数据库中,名字中带有中横线的,会当成特殊意义,需要使用 `  ` 将其括起来 ( Esc键下面, Tab键上面)

三、mysql 对数据库表的相关操作

1、创建数据库表:  create  table   表名( 字段1  约束 ,字段2  约束 . . . . . );

① 表名不能为 sql 语言的关键字,一个表中可以有多个字段,定义时,字母大小写均可,各字段之间使用逗号分隔开,最后一个字段后不需要加逗号,字段后面可以加上完整性约束条件

②完整性约束条件:完整性约束条件是对字段进行限制,要求用户对该属性进行的操作符合特定的要求,如果不满足完整性约束条件,数据库系统将不执行用户的操作,其目的是为了保证数据库中数据的完整性

主键  primary  key:物理上存储的顺序

非空  not  null:此字段不允许填写空值

唯一  unique:此字段的值不允许重复

默认  default:当不填写值时,会使用默认着,填写时,以填写内容为准

外键  foreign  key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常(虽然外键约束可以保证数据的有效性,但是在进行数据的增加、修改、删除、查询时,都会降低数据库的性能,所以不推荐使用,那么如何保证数据的有效性呢:在逻辑层进行控制)

auto_increment :标识该属性的值自动增加

③常用数据类型:

2、查看当前数据库中的数据库表:  show  tables;

3、修改表名:   alter  table  原表名  rename  新表名;   或    alter  table  原表名  rename  to  新表名;

4、删除没有被关联的普通数据表:  drop  table  表名;

5、查看数据表的基本结构 (字段):decs(describe)   表名; 或   show  create  table  表名;  或    show  create  table  表名  \G

6、查看表的所有字段数据信息:  select  *  from  表名;

图上,表示当前表的字段中没有任何数据

7、向表中添加新字段:

    ①向表的末尾添加字段: alter  table  表名  add   字段名  数据类型  约束;

    ②向表的首位添加字段: alter  table  表名  add   字段名  数据类型  约束  first;

    ③向表的指定位置添加字段: alter  table  表名  add   字段名  数据类型  约束   after  某一个已存在的字段名;

    ④一次性添加多个字段:alter  table  表名  add   (字段名1  数据类型1  约束1,字段名2  数据类型2  约束2  ......)

8、删除字段:  alter  table  表名  drop  字段名;

9、修改字段

  ①修改字段(不重命名):   alter  table  表名  modify  字段名  数据类型  约束  ;

  ②修改字段并移到首位    :   alter  table  表名  modify  字段名  数据类型  约束  first ;

  ③修改字段并移到指定位置:   alter  table  表名  modify   字段名   数据类型  约束  after  某个已存在的字段名;

  ③修改字段(重命名)    :   alter  table  表名  change  原字段名   新字段名   数据类型  约束  ;

10、向表中插入数据

  表的字段如下: 其中 sex 字段为枚举类型

   ①全列插入数据:  insert  into  表名  values( 数据内容1 ),(数据内容2)...... ;

  插入数据时,数据的类型需要与对应字段的数据类型一致,字符串需要加上引号,

  可以使用 0 、null 、default 三种方法,为主键以及自动增加的 id 字段的值进行占位(不占位的话不符合格式要求,会报错)

当字段为枚举类型时,也可以这样插入内容:

  ②部分插入数据:  insert  into  表名( 字段1,字段2,字段3 ......)  values( 值1,值2,值3 ),values( 值1 ',值2 ',值3 ' ) ......

  没有赋值的字段,数据库系统会为其插入默认值,如果某个字段没有设置默认值,而且是非空属性,那么就必须为其赋值,否则会报错,通过这种方式也可以随意的设置字段的内容,不一定非要按照定义时的字段顺序,一 一对应的为其赋值

 

11、更改数据内容:  update  列表名  set  字段=值   where  条件;(如果不加上条件,默认全部修改)

12、删除数据 ( 物理删除 ):  delete  from  表名  where  条件;(删除时需要小心,不加上条件,默认全部删除)

13、逻辑删除:向表中添加 is_delete 字段,数据类型为 bit ,默认值为 0 ,当默认值修改为1时,表示逻辑删除,可恢复

 

 

四、mysql 数据查询

1、基础查询: 

①select  *  from  列表名;                                查询列表的全部数据内容

   select  列表名.*  from  列表名;                    查询列表的全部数据内容

   select  数据库名.列表名.*  from  列表名;   查询列表的全部数据内容

 

②查询列表的字段1和字段2数据内容

    select  列表名.字段1,,列表名.字段2   from  列表名;         

 

③ 去重查询(去重时只看一个字段条件)

     select  distinct  字段1,字段2    from  列表名; 

 

④条件查询 (比较运算符,逻辑运算符)

    select  *  from  列表名   where  条件;     

 

⑤模糊查询(kile     %表示任意字符,  _表示一位字符)

    select  *  from  列表名   where  模糊条件;     

 

⑥范围查询     in表示非连续范围, between  ...  and  ... 表示连续范围

    select  *  from  列表名   where  字段 in (范围)  ;   

  

 

⑦null 查询,使用 is  或 is  not  来进行判断,这里需要注意的是 null 与 " " 并不相等

    select  *  from  列表名   where  字段  is  null ;    查询某个字段为 null 的信息

    select  *  from  列表名   where  字段  is  not  null ;    查询某个字段不为 null 的信息

 

⑧排序查询  order  by  ( asc 升序,desc 降序)

   select  *  from  列表名   order   by   height    desc;    按照身高,降序查询所有信息

 

 select  *  from  列表名   order   by   height    desc,age  desc;    先按照身高,降序查询所有信息,若身高相同,再按照年龄降序查询

 

 

⑨聚合函数

⑴ count ( * )  查询总数量

     select   count( * )   from  表名;

 

⑵ min(字段) 求此字段的最小值  ,  max(字段) 求此字段的最大值

猜你喜欢

转载自blog.csdn.net/weixin_42834609/article/details/81782344