mysql基础知识

一.SQL语法要求

1、SQL语句可以单行或多行书写,以分号结尾;
2、可以用空格和缩进来来增强语句的可读性;
3、关键字不区别大小写,建议使用大写;
2. 数据类型(比较常用的一些数据类型)

    int:整型

    double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;

    decimal:泛型型(浮点型),在表单钱方面使用该类型,因为不会出现精度缺失问题;

    char:固定长度字符串类型;长度默认255。

    varchar:可变长度字符串类型;(65535)

    text:字符串类型;

    blob:字节类型;

    date:日期类型,格式为:yyyy-MM-dd;

    time:时间类型,格式为:hh:mm:ss

    timestamp:时间戳类型;

    bigint:

3.分类

  (1)DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等

  (2)DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据)

  (3)DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别

  (4)DQL(Data Query Language):数据查询语言,用来查询记录(数据)

DDL(数据定义语言)

现有一个gp_database数据库, 里面有表gp_table

基本操作:

查看所有数据库名称: show databases;
切换数据库: use test;
显示表: show tables;
查询表: select *from gp_table;

操作数据库:

 创建数据库: 
    create database   gp_database;   
    如果不存在创建,存在就不创建。create database if not exists  gp_database;

 删除数据库:
   drop database  gp_database;
   如果存在则删除,不存在就不删除   drop database if exists   gp_database;

 修改数据库编码: alter database  gp_database character set utf8;

操作表:

  创建表:
   CREATE TABLE 表名(
   列名 列类型,
   列名 列类型,
    ......
  );
  
删除表:drop   table   gp_table;
查看表结构: desc  gp_table;
查看当前数据库中所有表名称:show tables;
修改表:
    修改之添加列:alter table  gp_table add(列名 类型);
    修改表之修改列类型:alter table gp_table modify  列名  列名类型;
    修改表之修改列名:alter  table   gp_table change  旧列名   新列名  列名类型 ;
    修改之删除列:alter   table gp_table drop  列名;

DML(数据操作语言)

现有一个gp_database数据库, 里面有表gp_table

插入数据   insert into 表名 (列名1,列名2,...) values(值1,值2 , ...)
修改数据    update 表名  列名=值1,...列名n = 值n  where  条件;
删除数据    delete   from  表名   where 条件;

删除数据也可以使用 truncate table gp_table  删除表中的所有数据
TRUNCATE其实属于DDL语句,因为它是先DROP TABLE,再CREATE TABLE。
而且TRUNCATE删除的记录是无法回滚的,但DELETE删除的记录是可以回滚的(回滚是事务的知识)

DCL(数据控制语言)
---用来定义访问权限和安全级别
1、创建用户

【语法:CREATE USER 用户名@地址 IDENTIFIED BY '密码';】
  mysql> create user  testuser1@localhost identified by '111';   
  mysql> create user  testuser2 @'%' identified by '111';   

2、给用户授权

【语法:GRANT 权限1, … , 权限n ON 数据库.* TO 用户名】
  mysql> grant  create,alter,drop,insert,update,delete,select on test999.* to  testuser1@localhost;   
  mysql> grant all on  test999.* to testuser1@localhost;   

3、撤销授权

【语法:GRANT 权限1, … , 权限n ON 数据库.* TO 用户名】
  revoke create,alter,drop on  test999.* to testuser1@localhost;   

4、查看用户权限

【语法:SHOW GRANTS FOR 用户名】
  mysql> show grants for  testuser1@localhost;   

5、删除用户

【语法:DROP USER 用户名】
  drop user  testuser1@localhost;   

6、修改用户密码

【语法:USE mysql;
UPDATE USER SET PASSWORD=PASSWORD(‘密码’) WHERE User=’用户名’ andHost=’IP’;
FLUSH PRIVILEGES;】
举例:
  update user set password=password('1234') where user='user2' and host=’localhost’;  flush privileges;

DQL(数据查询语言)
---DQL就是数据查询语言,数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端。

查询数据    select  * from  表名   [where   条件];  *代表所有的列

(1)条件查询 where

条件表达式的意义,表达式为真,则该行取出
比较运算符 = ,!=,< >(与!=用处一样) ,<= ,  >= , <  , >
like , not like    ('%'匹配任意多个字符,'_'匹配任意单个字符)
in , not in , between and
is null , is not null

(2)分组 group by

一般要配合5个聚合函数使用:max,min,sum,avg,count

(3)筛选 having
(4)排序 order by
(5)限制 limit

  可通过limit进行分页查询
   如果一页记录为10条,希望查看第三页记录应该怎么查呢?
   方法:(当前页码-1)*每页展示条数  , 条数
   --第一页记录起始行为0,一共查询10行
   --第一页记录起始行为0,一共查询10行
   --第一页记录起始行为0,一共查询10行
posted @ 2021-05-13 21:38  IUReady  阅读(118)  评论(0)    收藏  举报