> 文章列表 > MySQl_1

MySQl_1

MySQl_1

一.相关概念

数据库:存放数据的仓库

数据库管理系统:操作和管理数据库的大型软件,如mysql

SQL:一种操作 关系型数据库管理系统的语言,定义了一套操作关系型数据库管理系统的统一标准。

 关系型数据库:有多张相互连接二维组成的数据库。

 二.SQL

语句分类 

1.DDL

DDL操作数据库

查询

        查询所有数据库        SHOW DATABASES;

          

        可以看到有四个数据库,这些是安装完之后自带的数据库

        查询当前数据库        SELECT DATABASE(); 

        

创建

 [ ]括起来的是可以不写的内容

        

 删除

        DROP DATABASE [IF EXISTS] 数据库名;

        

使用

         USE 数据库名;

        

DDL操作表

 查询

        查询当前数据库所有表        SHOW TABLES;

        查询表结构        DESC 表名;

        查询指定表的建表语句        SHOW CREATE TABLE 表名;

创建  

        

 创建表时,要注意所在库,切到想要创建表的库。

修改

        添加字段        ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];

        修改字段的数据类型        ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);

        修改字段名和字段类型       

                  ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释][约束];

        删除字段        ALTER TABLE 表名 DROP 字段名;

        修改表名        ALTER TABLE 表名 RENAME TO 新表名;

删除

       删除表        DROP TABLE [IF EXISTS] 表名;

       删除指定表,并重新创建该表        TRUNCATE TABLE 表名;

数据类型

数值类型 

字符串类型

 日期类型 

2.DML

添加数据

        给指定字段添加数据        INSERT INTO 表名 (字段名1,字段名2,...) VALUES(值1,值2,...);

        给全部字段添加数据        INSERT INTO 表名 VALUES(值1,值2,...);

        批量添加数据

                INSERT INTO 表名 (字段名1,字段名2,...) VALUES(值1,值2),(值1,值2),(值1,值2);

                INSERT INTO 表名 VALUES(值1,值2),(值1,值2),(值1,值2);

注意:

  1. 字段顺序和值的顺序要一致
  2. 字符串和日期类型要用单引号
  3. 数据大小要在范围内

修改数据 

        UPDATA 表名 SET 字段名1=值1,字段名2=值2,...[where 条件];

注意:如果不写where,就会修改该字段的全部内容。

删除数据

        DELETE FROM 表名 [WHERE 条件];

注意:

  1. where不写,删除整张表的所有数据。
  2. DELETE不能删除某个字段,应使用updata。

3.DQL

基本查询

        SELECT 字段1[AS 别名1],字段2[AS 别名2],字段3[AS 别名3]... FROM 表名;

        SELECT FROM 表名;//查询所有字段

        SELECT DISTINCT 字段列表 FROM 表名;//去重        

WHERE条件

 以及AND &&  OR ||  !  NOT

聚合函数

        将一列数据作为整体,进行纵向计算

        SELECT 聚合函数(字段列表) FROM 表名;

常见的聚合函数,count max min avg sum

注意null不参与运算

分组查询(有点晕)

细节

执行顺序

where->分组->聚合函数->having

where为分组前过滤,having则是分组后过滤

where不能对聚合函数进行判断,而having可以

分组后,查询聚合函数或者分组字段,查询其他字段没有意义

排序查询

        SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;\\

ASC 升序,可省略

DESC 降序

先按字段1排序,后按字段2

分页查询

        SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;

注意:不同的数据库,实现分页查询的方式不一样

4.DCL

管理用户

        查询用户        UES mysql;//使用mysql库

                              SELECT * FROM user;//查询user表中的所有数据

        创建用户        CREATE USER '用户名‘@’主机名‘ IDENTIFIED BY '密码';

        若主机名为"%",可以在任意主机访问该数据库

       修改用户密码       

             ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';

        删除用户        DROP USER '用户名'@'主机名';

权限控制

        查询权限        SHOW GRANTS FOR '用户名'@'主机名‘;

        授予权限         GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

        撤销权限        REVOKE 权限列表 ON 数据库名.表名 FROM '用户名’@'主机名';

 grant all on *.* to  '用户名'@'主机名';//超级管理员

学习自黑马程序员,部分插图来源于黑马程序员