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行
.

浙公网安备 33010602011771号