MySQL数据库基础知识汇总(学习笔记)

前言
此文章主要内容是简单的记录学习历程,主要通途是日后查找东西比较方便,当做字典来使用。内容的顺序也是从简单的入门开始的。内容无非就是增删改查。
~~ ~~
关系数据库往简单了说就是一个一个的表,每个表都有行和列,表与表之间又有联系。其中列,就是一个一个的字段,代表着你要存入数据的标题。行,就是一条一条的信息,就是你填入对应列的信息。
~~ ~~
入门操作:
登录MySQL:

>mysql -u root -p

进去xxx数据库:

>use mysql;    #进入mysql数据库

查看当前数据库中所有的表:

>show tables;

更改权限(变更本地登录权限为%):

>update user set Host=’%’ where User=’root’    #修改root的host为通配符%

刷新权限(一般用于修改密码和更改权限之类的)

>flush privileges

创建账户:

#语法是CREATE USER 'username'@'host' IDENTIFIED BY 'password';
>CREATE USER 'test'@'% *IDENTIFIED BY '123456';

设置或更改密码:

#语法:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
> SET PASSWORD FOR 'test'@'%' = PASSWORD("123456");

账户授权:

#语法是GRANT privileges ON databasename.tablename TO 'username'@'host':
#解析:privileges是用户的操作权限(增删改查什么的),如果给予所有权限使用ALL;databasename.tablename分别是数据库名和表名,如果提供全部权限使用*.*或者对某数据库的所有表就是:数据库名.*  ;后边俩不说了。完事要刷新权限。
> GRANT ALL ON *.* TO 'test'@'%':
> flush privileges;

撤销用户授权:

#语法:REVOKE privilege ON databasename.tablename FROM 'username'@'host';
> REVOKE ALL ON *.* FROM 'test'@'%;

删除用户:

#语法:DROP USER 'username'@'host';
>DROP USER ‘test’@’%’;

新建数据库命令:

CREATE DATABASE 数据库名;

删除数据库命令:

DROP DATABASE 数据库名

~~ ~~
常见操作(XXX代表某数据库,xxx代表某表):
查看所有数据库列表:

>SHOW DATABASES;

切换数据库(选择数据库):

>USE XXX;

查看数据库内所有表的列表:

>SHOW TABLES;

检索数据:

#检索x列,在xxx表中。(先切换数据库XXX) 
#ps:检索多个列,就加’,’然后加列名。检索所有列就用*
#ps2:也可以不进入表来操作,就是第一行直接用SELECT XXX.xxx
>USE XXX;
>SELECT x
>FROM xxx;

检索数据2:

#如果你检索的列存在很多重复项,可使用DISTINCT关键字,来过滤重复项,返回不同的值。
>SELECT DISTINCT x
>FROM xxx;

限制检索结果:

#使用LIMIT子句,来指定返回多少行。
>SELECT DISTINCT x
>FROM xxx
>LIMIT 5;

索引后数据的排序(升序和降序):

#使用ORDER BY子句,默认升序,如果降序需在子句最后加DESC关键字。
#经常使用两列同时排序,则可以使用‘,’隔开两列的名称。
>SELECT id ,name,age,tel
>FROM name_login
>ORDER BY id,name DESC;   #DESC需要时添加,仅标明参考位置

过滤数据(从检索出的所有数据中,过滤出符合条件的数据):
操作符 说明
= 等于
<> 不等于
!= 不等于
< 小于
<= 小于等于
> 大于
>= 大于等于
BETWEEN 在指定的两个值之间

#过滤条件使用WHERE子句
>SELECT id
>FROM name_login
>WHERE id = 1;   #这里可以使用大于小于不等于等操作符,也可以用IS NULL,进行空值检查。

数据过滤2(多重过滤):

#结合WHERE子句,使用AND,OR,IN或者NOT操作符(注意AND的优先级高)。
#IN操作符是给定范围的: IN (0,5)
#NOT是否定后边的关键字的。
>SELECT *
>FROM name_login
>WHERE id < 5 AND id < 3;

使用通配符过滤LIKE:

#%代表任意次数,_代表单个字符
>SELECT *
>FROM name_login
>WHERE id LIKE ‘%’;

使用正则表达式过滤REGEXP:

>SELECT *
>FROM name_login
>WHERE id REGEXP ‘[12345]’;

创建联结(创建两个表的关系的查询):

#联结表1列1和表2列1
>SELEST 列2,列2,列3
>FROM 表1,表2
WHERE 表1.列1 = 表2.列1
ORDER BY 列1,列1;

添加数据:
添加行INSERT:

#一共两种一种安位置,一种按关键字
>INSERT INTO name_login
>VALUES(’6’,’6’,’6’,’6’,’6’,’6’)
>INSERT INTO user_login(id,
login_name,
name,
age,
ad,
tel)
VALUES(‘6’,
‘login_name_6’,
‘666’,
‘6’,
‘6’,
‘6’);

更新数据(修改数据):

#可使用UPDATE语句
>UPDATE user_login
>set age = ‘7’
>where id = 6;   #一定要有where,否则就把所有行的age全给改了。
ps。此语句可以删除列。

删除数据(行):

>DELETE FROM user_login
>WHERE id = 7;
#请务必限定范围,否则就清库了。

你可能感兴趣的:(MySQL)