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  阅读(125)  评论(0)    收藏  举报