MySQL数据库系统学习(从入门到精通)_mysql学习(1),2024年最新不愧是Alibaba技术官

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

1.2.3.查询指定表的建表语句
show create table 表名(
	字段1 类型 [comment 注释],
    字段2 类型 [comment 注释],
    字段3 类型 [comment 注释]
)[comment 表注释];

1.2.4.删除表
drop table 表名;

1.2.5.删除指定表,并重新创建表
truncate table 表明;

1.3.表管理
1.3.1.添加字段
alter table 表名 add 字段名 类型 [comment 注释] [约束];

1.3.2.修改数据类型
alter table 表名 modify 字段名 新类型;

1.3.3.修改字段名和字段类型
alter table 表名 change 旧字段 新字段 类型 [comment 注释] [约束];

1.3.4.删除字段
alter table 表名 drop 字段名;

1.3.5.修改表名
alter table 表名 rename to 新表名;

2.管理数据库
1.查看MySQL创建格式
mysql> help create database;
Name: 'CREATE DATABASE'
Description:
Syntax:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_option] ...

create_option: [DEFAULT] {
    CHARACTER SET [=] charset_name
  | COLLATE [=] collation_name
}

解释: 
create:创建语句
database:创建数据库
schema:同database
if not exists:在创建数据库之前进⾏判断,只有该数据库⽬前尚不存在时才能执⾏操作。此选项可以⽤来避免数据库已经存在⽽重复创建的错误
db_name:自定义创建数据库名
create_option:字符编码选项
character set:字符编码
collate:校对排序规则
create database test default cartacter set=utf8 collate=utf8_bin;



2.查看系统支持的字符集
mysql> show charset;
+----------+---------------------------------+---------------------+--------+
| Charset  | Description                     | Default collation   | Maxlen |
+----------+---------------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese        | big5_chinese_ci     |      2 |
| dec8     | DEC West European               | dec8_swedish_ci     |      1 |
| cp850    | DOS West European               | cp850_general_ci    |      1 |
| hp8      | HP West European                | hp8_english_ci      |      1 |
| koi8r    | KOI8-R Relcom Russian           | koi8r_general_ci    |      1 |
| latin1   | cp1252 West European            | latin1_swedish_ci   |      1 |
| latin2   | ISO 8859-2 Central European     | latin2_general_ci   |      1 |
| swe7     | 7bit Swedish                    | swe7_swedish_ci     |      1 |
| ascii    | US ASCII                        | ascii_general_ci    |      1 |
| ujis     | EUC-JP Japanese                 | ujis_japanese_ci    |      3 |
| sjis     | Shift-JIS Japanese              | sjis_japanese_ci    |      2 |
| hebrew   | ISO 8859-8 Hebrew               | hebrew_general_ci   |      1 |
| tis620   | TIS620 Thai                     | tis620_thai_ci      |      1 |
| euckr    | EUC-KR Korean                   | euckr_korean_ci     |      2 |
| koi8u    | KOI8-U Ukrainian                | koi8u_general_ci    |      1 |
| gb2312   | GB2312 Simplified Chinese       | gb2312_chinese_ci   |      2 |
| greek    | ISO 8859-7 Greek                | greek_general_ci    |      1 |
| cp1250   | Windows Central European        | cp1250_general_ci   |      1 |
| gbk      | GBK Simplified Chinese          | gbk_chinese_ci      |      2 |
| latin5   | ISO 8859-9 Turkish              | latin5_turkish_ci   |      1 |
| armscii8 | ARMSCII-8 Armenian              | armscii8_general_ci |      1 |
| utf8     | UTF-8 Unicode                   | utf8_general_ci     |      3 |
| ucs2     | UCS-2 Unicode                   | ucs2_general_ci     |      2 |
| cp866    | DOS Russian                     | cp866_general_ci    |      1 |
| keybcs2  | DOS Kamenicky Czech-Slovak      | keybcs2_general_ci  |      1 |
| macce    | Mac Central European            | macce_general_ci    |      1 |
| macroman | Mac West European               | macroman_general_ci |      1 |
| cp852    | DOS Central European            | cp852_general_ci    |      1 |
| latin7   | ISO 8859-13 Baltic              | latin7_general_ci   |      1 |
| utf8mb4  | UTF-8 Unicode                   | utf8mb4_general_ci  |      4 |
| cp1251   | Windows Cyrillic                | cp1251_general_ci   |      1 |
| utf16    | UTF-16 Unicode                  | utf16_general_ci    |      4 |
| utf16le  | UTF-16LE Unicode                | utf16le_general_ci  |      4 |
| cp1256   | Windows Arabic                  | cp1256_general_ci   |      1 |
| cp1257   | Windows Baltic                  | cp1257_general_ci   |      1 |
| utf32    | UTF-32 Unicode                  | utf32_general_ci    |      4 |
| binary   | Binary pseudo charset           | binary              |      1 |
| geostd8  | GEOSTD8 Georgian                | geostd8_general_ci  |      1 |
| cp932    | SJIS for Windows Japanese       | cp932_japanese_ci   |      2 |
| eucjpms  | UJIS for Windows Japanese       | eucjpms_japanese_ci |      3 |
| gb18030  | China National Standard GB18030 | gb18030_chinese_ci  |      4 |
+----------+---------------------------------+---------------------+--------+
41 rows in set (0.00 sec)

常用字符集解释:
gb2312:简体中文汉字编码国家标准
gbk:可以说是对 GB2312 编码的扩充
gb18030:完全支持 Unicode,无需动用造字区即可支持中国国内少数民族文字、中日韩和繁体汉字以及 emoji 等字符,编码空间庞大,最多可定义 161 万个字符。
Unicode:国际标准字符集
utf-8:是一种对Unicode的可变长度字符编码。它可以用一至四个字节对Unicode字符集中的所有有效编码点进行编码,它逐渐成为网络传输中优先采用的编码方式。
utf-16:UTF-16 也是一种变长字符编码, 这种编码方式比较特殊, 它将字符编码成 2 字节 或者 4 字节

3.创建数据库
mysql> create database if not exists test default character set=gb18030 collate=gb18030_bin;
Query OK, 1 row affected (0.00 sec)

解释:
创建一个字符集为gb18030排序规则gb18030_bin,名为test,如果存在将跳过创建,不出现报错信息,如果不存在进行创建

4.修改数据库字符集
mysql> alter database test default character set='utf8' ;	#修改库的
Query OK, 1 row affected (0.00 sec)

mysql> show create database test;
+----------+---------------------------------------------------------------+
| Database | Create Database                                               |
+----------+---------------------------------------------------------------+
| test     | CREATE DATABASE `test` /\*!40100 DEFAULT CHARACTER SET utf8 \*/ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)

5.修改表存储引擎
mysql> show create table test;
+-------+-----------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                |
+-------+-----------------------------------------------------------------------------------------------------------------------------+
| test  | CREATE TABLE `test` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+-----------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> alter table test engine=MyISAM;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show create table test;
+-------+-----------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                |
+-------+-----------------------------------------------------------------------------------------------------------------------------+
| test  | CREATE TABLE `test` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+-------+-----------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

6.删除数据库
mysql> drop database test;			#表内删除库
Query OK, 0 rows affected (0.00 sec)
mysql> mysqladmin -u root -p drop test	#表外删除库
password:

3.管理表
1.创建表
mysql> create table if not exists txt(id int,name varchar(10) not null,age int not null,primary key(id))engine=innodb default charset=utf8;
Query OK, 0 rows affected (0.00 sec)

2.查看表结构和类型
mysql> desc txt;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name  | varchar(10) | NO   |     | NULL    |       |
| age   | int(11)     | NO   |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> show create table txt;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                     |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| txt   | CREATE TABLE `txt` (
  `id` int(11) NOT NULL,
  `name` varchar(10) NOT NULL,
  `age` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

3.插入数据
mysql> insert into txt (id,name,age) values(1,'zhangsan',12);
Query OK, 1 row affected (0.00 sec)
mysql> insert into txt values(2,'lisi',15),(3,'wangwu',18);
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0
mysql> select \* from txt;
+----+----------+-----+
| id | name     | age |
+----+----------+-----+
|  1 | zhangsan |  12 |
|  2 | lisi     |  15 |
|  3 | wangwu   |  18 |
+----+----------+-----+
3 rows in set (0.00 sec)

4.对表的字符集进行修改
mysql> alter table txt convert to character set gb18030;
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> show create table txt;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                        |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| txt   | CREATE TABLE `txt` (
  `id` int(11) NOT NULL,
  `name` varchar(10) NOT NULL,
  `age` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb18030 |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

5.对表重命名
mysql> alter table a2 rename a3;
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| a3             |
+----------------+

6.删除表
mysql> drop table txt;
Query OK, 0 rows affected (0.00 sec)

4.对表内数据进行修改
1.查看表内字符集
mysql> show full columns from txt;
+-------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| Field | Type        | Collation       | Null | Key | Default | Extra | Privileges                      | Comment |
+-------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| id    | int(11)     | NULL            | NO   | PRI | NULL    |       | select,insert,update,references |         |
| name  | varchar(10) | utf8_general_ci | NO   |     | NULL    |       | select,insert,update,references |         |
| age   | int(11)     | NULL            | NO   |     | NULL    |       | select,insert,update,references |         |
+-------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+

2.对表内字段进行修改字符集
格式:alter table 表名 modify 字段 属性 character set 字符集 collate 校验集;

mysql> alter table txt modify age varchar(50) character set utf8 collate utf8_general_ci;
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> show full columns from txt;
+-------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| Field | Type        | Collation       | Null | Key | Default | Extra | Privileges                      | Comment |
+-------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| id    | int(11)     | NULL            | NO   | PRI | NULL    |       | select,insert,update,references |         |
| name  | varchar(50) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         |
| age   | varchar(50) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         |
+-------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
3 rows in set (0.00 sec)

3.对字段属性进行修改
mysql> alter table txt modify age int;
Query OK, 3 rows affected (0.02 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> show full columns from txt;
| Field | Type        | Collation       | Null | Key | Default | Extra | Privileges                      | Comment |
+-------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| id    | int(11)     | NULL            | NO   | PRI | NULL    |       | select,insert,update,references |         |
| name  | varchar(50) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         |
| age   | int(11)     | NULL            | YES  |     | NULL    |       | select,insert,update,references |         |
3 rows in set (0.00 sec)

4.创建字段的属性
1.字段属性
数据类型:类型
int:整型
float浮点型(单精度)
double浮点型(双精度)
date日期值(YYYY-MM-DD)
time时间值(HH:MM:SS)
datetime混合日期和时间(YYYY-MM-DD hh:mm:ss)
char定义长字符串
varchar变长字符字符串
2.其他选项
选项解释
null数据可以包含为空的内容
not null数据列不能为空
default默认值
[constraint <约束名>] primary key主键(唯一,不能为空)
primary key (字段1,字段2)多字段联合主键
foreign key(字段) references 表(字段)外键
auto_increment自动递增,适用于整形
unsigned无符号
character set 字符集指定字符集
comment注释
3.使用命令
mysql> create table a1 (
    -> id int primary key auto\_increment,
    -> name varchar(10) not null unique,
    -> age int default 18,
    -> stu_id int );
Query OK, 0 rows affected (0.00 sec)

mysql> create table a2 (
    -> id int primary key auto\_increment,
    -> name varchar(10),
    -> foreign key(id) references a1(id));
Query OK, 0 rows affected (0.00 sec)

5.修改字段内容
mysql> update txt set name='zhaoliu' where name='zhangsan';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select \* from txt;
+----+---------+------+
| id | name    | age  |
+----+---------+------+
|  1 | zhaoliu |   12 |
|  2 | lisi    |   15 |
|  3 | wangwu  |   18 |
+----+---------+------+
3 rows in set (0.00 sec)

6.删除字段内容
mysql> delete from txt where name='zhaoliu';
Query OK, 1 row affected (0.00 sec)

mysql> select \* from txt;
+----+--------+------+
| id | name   | age  |
+----+--------+------+
|  2 | lisi   |   15 |
|  3 | wangwu |   18 |
+----+--------+------+
2 rows in set (0.00 sec)

7.查看字段类型
mysql> show create table a1;
| a1    | CREATE TABLE `a1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(10) NOT NULL,
  `age` int(11) DEFAULT '18',
  `stu_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+---------------------------------------------------------------------------------------------------
1 row in set (0.00 sec)

mysql> desc a2;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(10) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

8.添加字段
mysql> alter table a1 add stu_number varchar(10) not null unique;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc a1;
+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| id         | int(11)     | NO   | PRI | NULL    | auto\_increment |
| name       | varchar(10) | NO   | UNI | NULL    |                |
| age        | int(11)     | YES  |     | 18      |                |
| stu_id     | int(11)     | YES  |     | NULL    |                |
| stu_number | varchar(10) | NO   | UNI | NULL    |                |
+------------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
mysql> alter table a1 add stu_number_1 varchar(10) not null unique first;		#添加到首行
mysql> alter table a1 add stu_number_2 varchar(10) not null unique after id;	#添加到id行之后
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

9.删除字段
mysql> alter table a1 drop stu_number_1;

10.修改字段排序顺序
mysql> alter table a1 modify stu_number varchar(10) first;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc a1;
+--------------+-------------+------+-----+---------+----------------+
| Field        | Type        | Null | Key | Default | Extra          |
+--------------+-------------+------+-----+---------+----------------+
| stu_number   | varchar(10) | YES  | UNI | NULL    |                |
| id           | int(11)     | NO   | PRI | NULL    | auto\_increment |
| stu_number_2 | varchar(10) | NO   | UNI | NULL    |                |
| name         | varchar(10) | NO   | UNI | NULL    |                |
| age          | int(11)     | YES  |     | 18      |                |
| stu_id       | int(11)     | YES  |     | NULL    |                |
+--------------+-------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

mysql> alter table a1 modify age int after id ;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc a1;
+--------------+-------------+------+-----+---------+----------------+
| Field        | Type        | Null | Key | Default | Extra          |
+--------------+-------------+------+-----+---------+----------------+
| stu_number   | varchar(10) | YES  | UNI | NULL    |                |
| id           | int(11)     | NO   | PRI | NULL    | auto\_increment |
| age          | int(11)     | YES  |     | NULL    |                |
| stu_number_2 | varchar(10) | NO   | UNI | NULL    |                |
| name         | varchar(10) | NO   | UNI | NULL    |                |
| stu_id       | int(11)     | YES  |     | NULL    |                |
+--------------+-------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

11.删除外键约束
mysql> create table test4(id int primary key ,name varchar(10),constraint `test` foreign key(id) references test2(id));
Query OK, 0 rows affected (0.01 sec)

mysql> alter table test4 drop foreign key test;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc test4;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

四,数据类型和操作符

1.数据类型简介
数值数据类型:TINYINT 、SMALINT 、MEDIUMINT 、INT 、BIGINT 、FLOAT 、DOUBLE 、DECIMAL
日期/时间类型:YEAR 、TIME 、DATE 、DATETIME 、TIMESTAMP
字符串类型:CHAR 、VARCHAR 、BINARY 、VARBINARY 、BLOB 、TEXT 、ENUM 、SET

2.数据类型
1.整数类型
类型说明存储需求有符号的取值范围无符号的取值范围
tinyint1字节-128-1270~255
smallint2字节-32768-327670~65535
mediumint3字节-8388608-83886070~16777215
int4字节-2147483648-21474836470~4294967295
bigint8字节-9223372036854775808 - 92233720368547758070~18446744073709551615
2.浮点型和定点型
类型说明说明存储需求无符号的取值范围
float单精度浮点型4字节3.402823466EE+38 ~ -1.175494251E-38
double双精度浮点型8字节-1.7976931348623157E+308 ~ -2.2250738585072014E-308
decimal压缩的严格定点数M+2个字节 不固 定不固定
3.日期/时间类型
类型说明存储需求日期格式日期范围
year1字符YYYY1901~2155
time3字符HH:MM:SS-838:59:59 ~ 838:59:59
date3字节YYYY-MM-DD1000-01-01 ~ 9999-12-31
datetime8字节YYYY-MM-DD HH:MM:SS1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
timestamp4字节YYYY-MM-DD HH:MM:SS1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC
4.字符串类型
类型说明存储需求
char()固定长度的文本字符串M 字节,1 <= M <= 255
varchar()可变长度的文本字符串L+1 字节,在此 L <= M 和 1 <= M <= 255
tinytext非常小的文本字符串L+1 字节,在此 L < 2^8
text小的文本字符串L+2 字节,在此 L < 2^16
mediumtext中等大小的文本字符串L+3 字节,在此 L < 2^24
longtext大的文本字符串L+4 字节,在此 L < 2^32
enum枚举类型,只有一个枚举字符串值1 或 2 个字节,取决于枚举值的数目(最大值 65535)
set一个设置,字符串对象可以有零个或所得set成员1, 2, 3, 4 或 8 个字节,取决于集合成员的数量 (最多64个成员)
5.二进制字符串
二进制类型说明存储需求
bit(M)位字段类型大约(M+7)/8 个字节
binary(M)固定长度的二进制字符串M个字节
varbinary(M)可变长度的二进制字符串M+1个字节
tinyblob(M)小的BLOBL+1 字节,在此 L < 2^8
blob(M)小的BLOBL+2 字节,在此 L < 2^16
meidumblob(M)中等大小的BLOBL+3 字节,在此 L < 2^24
longblob(M)非常大的blobL+4 字节,在此 L < 2^32
3.操作符
1.算数运算符
运算符作用
+加法
-减法
*乘法
/除法
%求余
2.其他运算符
运算符作用
=等于
<=>安全的等于
<>不等于
>大于
<小于
>=大于等于
<=小于等于
is null判断一个值是否为null
is not null判断一个值是否不为null
least当有两个或多个参数时,返回最小值
greatest当有两个或多个参数时,返回最大值
between … and …判断一个值是否落在两个值之间
in (值1,值2,值3)判断一个值是否是in列表中的任意一个值
not in (值1,值2,值3)判断一个值是否不是in列表中的任意一个值
like通配符匹配
regexp正则表达式匹配
3.逻辑运算符
运算符作用
not或!逻辑非
and或&&逻辑与
or或
xor逻辑异或
4.位运算符
运算符作用
&位与
^位异或
<<位左移
>>位右移
~位取反

五,数据库用户权限(DCL)

一,基本用户权限命令
1.创建用户并赋予权限
mysql> grant all on test.\* to zhangsan@'%' identified by '123.com';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show grants for zhangsan@'%';
+----------------------------------------------------+
| Grants for zhangsan@%                              |
+----------------------------------------------------+
| GRANT USAGE ON \*.\* TO 'zhangsan'@'%'               |
| GRANT ALL PRIVILEGES ON `test`.\* TO 'zhangsan'@'%' |
+----------------------------------------------------+
2 rows in set (0.00 sec)

2.撤销删除权限
mysql> revoke drop,delete on test.\* from zhangsan@'%';
Query OK, 0 rows affected (0.00 sec)

3.查看权限
mysql> show grants for zhangsan@'%';
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for zhangsan@%                                                                                                                                                                                              |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON \*.\* TO 'zhangsan'@'%'                                                                                                                                                                               |
| GRANT SELECT, INSERT, UPDATE, CREATE, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `test`.\* TO 'zhangsan'@'%' |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

六,数据库查询(DQL)

1.select单独使用
mysql> select @@basedir;	#mysql安装目录
mysql> select @@port;		#mysql端口号
mysql> select @@innodb\_flush\_log\_at\_trx\_commit;		#日志刷新策略
mysql> show variables like 'innodb%';	#模糊查看innodb开头的配置
mysql> select database();	#查看当前库名
mysql> select now();		#查看当前系统时间
mysql> select @@server\_id;	#查看本实例id号,群集中不能重复

2.select通用语法
select {字段列表} from <表1>,<表2> [where 表达式] [group by] [having] [order by] [limit <>]

字段作用
select显示的列名(多列逗号分开)
from表名(多个表逗号分开)
where过滤条件的列
group by分组的列
having分组后的过滤聚合函数
order by排序的列(desc降序 默认:asc升序)
limit显示前几行 LIMIT M,N:跳过M行,显示一共N行 LIMIT Y OFFSET X: 跳过X行,显示一共Y行
like %_模糊查询 %:任意字符 _:一个字符
union多个结果集合并查询的功能
union all多个结果集合并查询的功能,去重

通用符:

选项作用
and并且
or或者
in与or相同
between …and…在什么范围之内
is not查询空值
distinct查询结果不重复

七,数据库操作语言(DML)

1.添加数据

给指定字段添加数据

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); 

注意

  • 插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
  • 字符串和日期型数据应该包含在引号中。
  • 插入的数据大小,应该在字段的规定范围内
2.修改数据

修改数据

update 表名 set 字段=值1,字段2=值2 [where 条件];

3.删除数据

删除数据

delete from 表名 [where 条件]

注意

  • delete语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。
  • delete语句不能删除某一个字段的值(可以使用update)

八,MySQL函数

一.数学函数
(1) 绝对值函数:ABS(x) 用于返回 x 的绝对值

(2) 返回圆周率的函数:PI() PI() 返回圆周率值

(3) 平方根函数:SQRT(x) SQRT(x) 返回非负数 x 的二次方根

(4) 求余函数:MOD(x,y) MOD(x,y) 返回 x 被 y 除后的余数,MOD(x,y) 对于带有小数部分的数值也起作用,它 返回除法运算后的精确余数

(5) 获取整数的函数:CEIL(x) 、CEILING(x) 、FLOOR(x) CEIL(x) 用于返回不小于 x 的最小整数值

​	CEILING(x) 用于返回不小于 x 的最小整数

​	FLOOR(x) 返回不大于 x 的最大整数值

(6) 获取随机数的函数:RAND() 、RAND(x) RAND() 用于返回一个随机浮点值,范围在 0 ~ 1 之间

​	RAND(x) 用于返回一个随机浮点值,范围在 0~1 之间,x 被用作种子值,用来产生重复序列

(7) 四舍五入的函数:ROUND(x) 、ROUND(x,y) ROUND(x) 用于对 x 进行四舍五入

​	ROUND(x,y) 用于对 x 进行四舍五入,并保留小数点后 y 位

(8) 截取数值的函数:TRUNCATE(x,y) TRUNCATE(x,y) 用于对 x 进行截取,结果保留小数点后 y 位

(9) 符号函数:SIGN(x) SIGN(x) 用于返回参数 x 的符号,当 x 为负数时返回 -1 ,当 x 为正数时返回 1 , 当 x 为 零时返回 0

(10) 幂运算函数:POW(x,y) 、POWER(x,y) 、EXP(x) POW(x,y) 用于返回 x 的 y 次方的结果

(11) 对数运算函数:LOG(x) 、LOG10(x) LOG(x) 返回 x 的自然对数

​	使用 LOG10(x) 计算以 10 为基数的对数

(12) 角度与弧度相互转换的函数:RADIANS(x) 、DEGREES(x) RADIANS(x) 用于将参数 x 由角度转化为弧度

​	DEGREES(x) 用于将参数 x 由弧度转化为角度

(13) 正弦函数和反正弦函数:SIN(x) 、ASIN(x) SIN(x) 用于返回 x 的正弦值,其中 x 为弧度值

​	ASIN(x) 用于返回 x 的反正弦,即正弦为 x 的值

(14) 余弦函数和反余弦函数:COS(x) 、ACOS(x) COS(x) 用于返回 x 的余弦,其中 x 为弧度值

​	ACOS(x) 用于返回 x 的反余弦,即余弦是 x 的值

(15) 正切函数、反正切函数、余切函数:TAN(x) 、ATAN(x) 、COT(x) TAN(x) 返回 x 的正切,其中 x 为给定的弧 度值

​	ATAN(x) 用于返回 x 的反正切,即正切为 x 的值

​	COT(x) 用于返回 x 的余切

二,字符串函数

 (1) 计算字符串长度的函数:CHAR_LENGTH(str) 、LENGTH(str) CHAR_LENGTH(str) 用于统计 str 的字符个数
LENGTH(str) 用于统计 str 的字节长度,使用 utf8 编码字符集时,一个汉字是3个字节,一个数字或字母是1个 字节

(2) 合并字符串的函数:CONCAT(s1,s2,...) 、CONCAT_WS(x,s1,s2,...) CONCAT(s1,s2,...) 用于合并字符串 s1, s2, ..... ,如果有一个参数为 NULL,则结果为 NULL CONCAT_WS(x,s1,s2,...) 以 x 作为分隔符,将 s1, s2, .... 合并,如果 分隔符为 NULL ,则结果为 NULL

(3) 替换字符串的函数:INSERT(s1,x,len,s2) (1) INSERT(s1,x,len,s2) 用于返回字符串 s1,其子字符串起始于 x 位 置和被字符串 s2 取代的 len 字符 (2) 如果 x 超过字符串长度,则返回值为原始字符串,如果 len 的长度大于其 他字符串的长度则从位置 x 开始替换 (3) 如果任何一个参数为 NULL ,则返回值为 NULL

(4) 转换大小写的函数:LOWER(str) 、LCASE(str) 、UPPER(str) 、UCASE(str) LOWER(str) 用于将字符串 str 中的 字母字符全部转换成小写字母

​	LCASE(str) 用于将字符串 str 中的字母字符全部转换成小写字母

​	UPPER(str) 用于将 str 中的小写字母转换成大写字母

​	UCASE(str) 用于将 str 中的小写字母转换成大写字母

(5) 获取指定长度的字符串的函数:LEFT(s,n) 、RIGHT(s,n) LEFT(s,n) 用于返回字符串 s 开始的最左边 n 个字符

​	RIGHT(s,n) 用于返回字符串 s 中右边 n 个字符

(6) 填充字符串的函数:LPAD(s1,len,s2) 、RPAD(s1,len,s2) LPAD(s1,len,s2) 返回字符串 s1 ,其左边由字符串 s2 填充到 len 字符长度,如果 s1 的长度大于 len ,则返回值被缩短至 len 长度

​	RPAD(s1,len,s2) 返回字符串 s1 ,其右边由字符串 s2 填充到 len 字符长度,如果 s1 的长度大于 len ,则返回值 被缩短至 len 长度

(7) 删除空格的函数:LTRIM(s) 、RTRIM(s) 、TRIM(s) LTRIM(s) 用于删除字符串 s 左侧的空格

​	RTRIM(s) 用于删除字符串 s 右侧的空格

​	TRIM(s) 用于删除字符串 s 两侧的空格

(8) 删除指定字符串的函数:TRIM(s1 FROM s) TRIM(s1 FROM s) 用于删除字符串 s 中两端所有的子字符串 s1 , 如果没有指定 s1 ,则默认删除字符串 s 两侧的空格

(9) 重复生成字符串的函数:REPEAT(s,n) REPEAT(s,n) 用于重复字符串 s ,n 表示重复多少次

(10) 空格函数:SPACE(n) SPACE(n) 用于返回 n 个空格

(11) 替换函数:REPLACE(s,s1,s2) REPLACE(s,s1,s2) 表示使用字符串 s2 替换字符串 s 中所有的字符串 s1

(12) 比较字符串大小的函数:STRCMP(s1,s2) STRCMP(s1,s2) 用于比较字符串 s1 和 s2 的大小,若所有字符串相 同则返回 0 ,若第一个字符串大于第二个字符串则返回 1 ,若第一个字符串小于第二个字符串则返回 -1

(13) 获取子字符串的函数:SUBSTRING(s,n,len) 、MID(s,n,len) SUBSTRING(s,n,len) 用于获取指定位置的子字符 串

​	MID(s,n,len) 用于获取指定位置的子字符串

(14) 匹配子字符串开始位置的函数:LOCATE(str1,str) 、POSITION(str1 IN str) 、INSTR(str, str1) LOCATE(str1,str) 用于返回字符串 str1 在字符串 str 中的开始位置

​	POSITION(str1 IN str) 用于返回字符串 str1 在字符串 str 中的开始位置
​	INSTR(str, str1) 用于返回子字符串 str1 在字符串 str 中的开始位置

(15) 反转字符串的函数:REVERSE(s) REVERSE(s) 用于将字符串 s 反转

(16) 返回指定位置的字符串的函数:ELT(n, s1, s2, s3, .....) ELT(n, s1, s2, s3, .....) 用于返回第 n 个字符串,如果 n 超出范围则返回 NULL

(17) 返回指定字符串位置的函数:FIELD(s, s1, s2, .....) FIELD(s, s1, s2, .....) 用于返回字符串 s 在列表 s1, s2, .... 中 的位置,如果不存在字符串 s 则返回 0 ,如果字符串 s 是 NULL 也返回 0
(18) 返回子字符串位置的函数:FIND_IN_SET(s1, s2) FIND_IN_SET(s1, s2) 用于返回字符串 s1 在字符串列表 s2 中的位置

三,日期和时间函数

(1) 获取当前日期的函数:CURDATE() 、CURRENT_DATE() CURDATE() 用于获取系统当前日期
	CURRENT_DATE() 用于系统获取当前日期
(2) 获取当前时间的函数:CURTIME() 、CURRENT_TIME() CURTIME() 用于获取系统当前时间

(3) 获取当前日期和时间的函数:CURRENT_TIMESTAMP() 、LOCALTIME() 、NOW() 、SYSDATE() CURRENT_TIMESTAMP() 用于获取系统当前日期和时间

​	LOCALTIME() 用于获取系统当前日期和时间

​	NOW() 用于获取系统当前日期和时间

​	SYSDATE() 用于获取系统当前日期和时间

![](https://img-blog.csdnimg.cn/img_convert/9a8cb5f8c0ec69e6499adead0da6e95b.png)



最全的Linux教程,Linux从入门到精通

======================

1.  **linux从入门到精通(第2版)**

2.  **Linux系统移植**

3.  **Linux驱动开发入门与实战**

4.  **LINUX 系统移植 第2版**

5.  **Linux开源网络全栈详解 从DPDK到OpenFlow**



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/59742364bb1338737fe2d315a9e2ec54.png)



第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)



**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**

> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
![img](https://img-blog.csdnimg.cn/img_convert/56ad045191ceca5d9c85ed90669af35b.jpeg)

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
convert/9a8cb5f8c0ec69e6499adead0da6e95b.png)



最全的Linux教程,Linux从入门到精通

======================

1.  **linux从入门到精通(第2版)**

2.  **Linux系统移植**

3.  **Linux驱动开发入门与实战**

4.  **LINUX 系统移植 第2版**

5.  **Linux开源网络全栈详解 从DPDK到OpenFlow**



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/59742364bb1338737fe2d315a9e2ec54.png)



第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)



**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**

> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
[外链图片转存中...(img-iFnP06q3-1713382572707)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值