MySQL数据库系统学习(从入门到精通)_mysql学习

1.1.1.查询

查询所有数据库

show databases;

查询当前数据库

1.1.2.创建
create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则]

1.1.3.删除
drop database [is exists] 数据库名;

1.1.4.使用
use 数据库名;

1.2.表操作
1.2.1.查询当前数据库所有表
show table;

1.2.2.查询表结构
desc 表名;

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 中的小写字母转换成大写字母


## 结语

小编也是很有感触,如果一直都是在中小公司,没有接触过大型的互联网架构设计的话,只靠自己看书去提升可能一辈子都很难达到高级架构师的技术和认知高度。向厉害的人去学习是最有效减少时间摸索、精力浪费的方式。

我们选择的这个行业就一直要持续的学习,又很吃青春饭。

虽然大家可能经常见到说程序员年薪几十万,但这样的人毕竟不是大部份,要么是有名校光环,要么是在阿里华为这样的大企业。年龄一大,更有可能被裁。

送给每一位想学习Java小伙伴,用来提升自己。

![在这里插入图片描述](https://img-blog.csdnimg.cn/img_convert/81d3d6ebdba1c0670dc04b8a754bba71.webp?x-oss-process=image/format,png)

> 本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!

 的正切,其中 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 中的小写字母转换成大写字母


## 结语

小编也是很有感触,如果一直都是在中小公司,没有接触过大型的互联网架构设计的话,只靠自己看书去提升可能一辈子都很难达到高级架构师的技术和认知高度。向厉害的人去学习是最有效减少时间摸索、精力浪费的方式。

我们选择的这个行业就一直要持续的学习,又很吃青春饭。

虽然大家可能经常见到说程序员年薪几十万,但这样的人毕竟不是大部份,要么是有名校光环,要么是在阿里华为这样的大企业。年龄一大,更有可能被裁。

送给每一位想学习Java小伙伴,用来提升自己。

[外链图片转存中...(img-CgbMYcsl-1714426707370)]

> 本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**
  • 13
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【完整课程列表】 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第01章 初始MySQL(共19页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第02章 MySQL的安装与配置(共14页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第03章 数据库的基本操作(共6页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第04章 数据表的基本操作(共28页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第05章 数据类型和运算符(共17页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第06章 MySQL函数(共76页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第07章 查询数据(共50页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第08章 插入、更新与删除数据(共12页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第09章 索引(共13页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第10章 存储过程和函数(共20页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第11章 视图(共20页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第12章 触发器(共11页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第13章 MySQL权限与安全管理(共30页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第14章 数据备份与还原(共21页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第15章 MySQL日志(共23页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第16章 性能优化(共23页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第17章 MySQL Replication(共27页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第18章 MySQL Workbench 的使用(共18页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第19章 MySQL管理利器-MySQL Utilities(共5页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第20章 读写分离的利器-MySQL Proxy(共8页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第21章 精通MySQL存储引擎(共31页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第22章 PHP操作MySQL数据库(共16页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第23章 PDO数据库抽象类库(共12页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第24章 开发网上商城(共6页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第25章 论坛管理系统数据库设计(共6页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第26章 新闻发布系统数据库设计(共9页).ppt
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值